From 9fa9f8e2a975c72d9735e572897c118dae26176d Mon Sep 17 00:00:00 2001 From: Bryce Allen Date: Thu, 2 Apr 2015 22:52:46 -0500 Subject: [PATCH] add quest rank to db --- db/_pathfix.py | 11 +++++ db/mh4u.db | Bin 2634752 -> 2640896 bytes db/schema-update.sql | 1 + db/set_quest_ranks.py | 111 ++++++++++++++++++++++++++++++++++++++++++ mhapi/db.py | 49 +++++++++++-------- 5 files changed, 152 insertions(+), 20 deletions(-) create mode 100644 db/_pathfix.py create mode 100644 db/schema-update.sql create mode 100755 db/set_quest_ranks.py diff --git a/db/_pathfix.py b/db/_pathfix.py new file mode 100644 index 0000000..d44515e --- /dev/null +++ b/db/_pathfix.py @@ -0,0 +1,11 @@ +""" +Hack to get scripts to run from source checkout without having to set +PYTHONPATH. +""" + +import sys +from os.path import dirname, join, abspath + +db_path = dirname(__file__) +project_path = abspath(join(db_path, "..")) +sys.path.insert(0, project_path) diff --git a/db/mh4u.db b/db/mh4u.db index 3f3ea6cc47257a561d66aa1d1f4fdd7c34a03bf7..9d37aa74efae5efafd48807deb70f8947e08724c 100644 GIT binary patch delta 15613 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 delta 13505 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 max_min_rank and min_rank != 3: + max_min_rank = min_rank + if not has_flesh_rewards: + # Can't make useful guess from the rewards + return None + return RANK_NAME[max_min_rank] + + +if __name__ == '__main__': + from _pathfix import db_path + db_file = os.path.join(db_path, "mh4u.db") + db = MHDB(db_file) + + import sys + sys.stdout = get_utf8_writer(sys.stdout) + sys.stderr = get_utf8_writer(sys.stderr) + set_quest_ranks(db) + db.commit() + db.close() diff --git a/mhapi/db.py b/mhapi/db.py index 3704db2..3bba446 100644 --- a/mhapi/db.py +++ b/mhapi/db.py @@ -6,16 +6,19 @@ import string import sqlite3 - class Quest(object): def __init__(self, quest_row, quest_rewards=None): self._row = quest_row self.rewards = quest_rewards - self._template = string.Template( + self._full_template = string.Template( + "$name ($hub $stars* $rank)" + "\n Goal: $goal" + "\n Sub : $sub_goal" + ) + + self._one_line_template = string.Template( "$name ($hub $stars* $rank)" - + "\n Goal: $goal" - + "\n Sub : $sub_goal" ) self.id = quest_row["_id"] @@ -24,25 +27,16 @@ class Quest(object): self.hub = quest_row["hub"] self.goal = quest_row["goal"] self.sub_goal = quest_row["sub_goal"] - self.rank = get_rank(self.hub, self.stars) + self.rank = quest_row["rank"] - def __unicode__(self): - return self._template.substitute(self.__dict__) + def one_line_u(self): + return self._one_line_template.substitute(self.__dict__) + def full_u(self): + return self._full_template.substitute(self.__dict__) -def get_rank(hub, stars): - if hub == "Caravan": - if stars < 6: - return "LR" - elif stars < 10: - return "HR" - return "G" - if hub == "Guild": - if stars < 4: - return "LR" - elif stars < 8: - return "HR" - return "G" + def __unicode__(self): + return self.full_u() class MHDB(object): @@ -66,6 +60,15 @@ class MHDB(object): self.cache[key][args] = v return v + def cursor(self): + return self.conn.cursor() + + def commit(self): + return self.conn.commit() + + def close(self): + return self.conn.close() + def get_item_names(self): v = self._get_memoized("item_names", """ SELECT _id, name FROM items @@ -129,6 +132,12 @@ class MHDB(object): """, quest_id) return v[0] if v else None + def get_quests(self): + v = self._get_memoized("quests", """ + SELECT * FROM quests + """) + return v + def get_quest_rewards(self, quest_id): v = self._get_memoized("quest_rewards", """ SELECT * FROM quest_rewards