You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1009 B
41 lines
1009 B
#!/usr/bin/env python
|
|
|
|
import os.path
|
|
import codecs
|
|
import csv
|
|
|
|
import _pathfix
|
|
|
|
from mhapi.db import MHDB
|
|
|
|
|
|
def apply_update(db, row):
|
|
quest = db.get_quest(row["id"])
|
|
if quest.goal == row["goal"]:
|
|
print "quest", row["id"], row["name"], "already updated, skipping"
|
|
return
|
|
cur = db.cursor()
|
|
cur.execute("""UPDATE quests SET
|
|
goal=?
|
|
WHERE _id=?
|
|
AND name=?""",
|
|
(row["goal"], row["id"], row["name"]))
|
|
if cur.rowcount == 1:
|
|
print "quest", row["id"], row["name"], "goal updated:", row["goal"]
|
|
else:
|
|
print "ERROR", "quest", row["id"], row["name"], "update failed"
|
|
|
|
|
|
if __name__ == '__main__':
|
|
db = MHDB()
|
|
delta_file_path = os.path.join(_pathfix.db_path, "delta",
|
|
"quests.csv")
|
|
|
|
with open(delta_file_path) as f:
|
|
reader = csv.DictReader(f)
|
|
for row in reader:
|
|
apply_update(db, row)
|
|
|
|
db.commit()
|
|
db.close()
|