X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=reload_db.py;h=f6dff81d39e69b6fa6e3d5b95520ff594bacb6a4;hb=778d0abde846c75deba123796ed633788927ccf8;hp=060b05c3c08009d09e377945309a9a162d73c1ca;hpb=1bf04fe0782d08411f0ee876defd6fc11dd3f884;p=xsetbg.git diff --git a/reload_db.py b/reload_db.py index 060b05c..f6dff81 100755 --- a/reload_db.py +++ b/reload_db.py @@ -15,10 +15,6 @@ from sqlobject.sqlbuilder import Insert from xsetbg_conf import xsetbg_conf from xsetbg_db import recreate_db, SQLiteMassInsert -fs_encoding = xsetbg_conf.get("images", "fs_encoding") -dump_file = open(sys.argv[1], 'rU') -xsetbg_db = recreate_db() - def convert_str(s): if s == "None": @@ -27,23 +23,34 @@ def convert_str(s): return int(float(s)) +fs_encoding = xsetbg_conf.get("images", "fs_encoding") +dump_file = open(sys.argv[1], 'rU') +xsetbg_db = recreate_db() +count_new = count_old = 0 + with SQLiteMassInsert() as txn: for line in dump_file: id, timestamp, filename = line.strip().split(None, 2) id = convert_str(id) timestamp = convert_str(timestamp) - if fs_encoding != 'utf-8': - filename = filename.decode(fs_encoding).encode('utf-8') + filename = filename.decode(fs_encoding) try: row = xsetbg_db.byFull_name(filename) except SQLObjectNotFound: - values = {'last_shown': timestamp, 'full_name': filename} + values = {'last_shown': timestamp, + 'full_name': filename.encode('utf-8')} if id: values['id'] = id query = txn.sqlrepr(Insert(xsetbg_db.sqlmeta.table, values=values)) txn.query(query) + count_new += 1 else: assert id is None or row.id == id - assert row.last_shown == timestamp + if row.last_shown is not None: + assert row.last_shown == timestamp + count_old += 1 dump_file.close() + +print "New images:", count_new +print "Existing images:", count_old