X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=reload_db.py;h=fe25e864781546343bd97233a1c87786913c161d;hb=1d0a0014b008e5428fb63ed21109f70d39682661;hp=9dbbd02f68e0d48dfcb6241e411d280c036bb9d2;hpb=18151a095e176678f48555b53083c96c2b995501;p=xsetbg.git diff --git a/reload_db.py b/reload_db.py index 9dbbd02..fe25e86 100755 --- a/reload_db.py +++ b/reload_db.py @@ -5,20 +5,12 @@ This file is a part of XSetBg. """ -__author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2007-2015 PhiloSoft Design" -__license__ = "GNU GPL" - import sys from sqlobject import SQLObjectNotFound 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,6 +19,11 @@ def convert_str(s): return int(float(s)) +dump_file = open(sys.argv[1], 'r') +xsetbg_db = recreate_db() +count_new = count_old = count_updated = 0 +fs_encoding = xsetbg_conf.get("images", "fs_encoding") + with SQLiteMassInsert() as txn: for line in dump_file: id, timestamp, filename = line.strip().split(None, 2) @@ -34,7 +31,10 @@ with SQLiteMassInsert() as txn: timestamp = convert_str(timestamp) filename = filename.decode(fs_encoding) try: - row = xsetbg_db.byFull_name(filename) + if id: + row = xsetbg_db.get(id) + else: + row = xsetbg_db.byFull_name(filename) except SQLObjectNotFound: values = {'last_shown': timestamp, 'full_name': filename.encode('utf-8')} @@ -42,8 +42,19 @@ with SQLiteMassInsert() as txn: 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 + if row.full_name == filename: + count_old += 1 + else: + row.full_name = filename + count_updated += 1 dump_file.close() + +print "New images:", count_new +print "Existing images:", count_old +print "Updated images:", count_updated