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
						
					
					
						
							1012 B
						
					
					
				
			
		
		
	
	
							41 lines
						
					
					
						
							1012 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()
 |