]> git.phdru.name Git - xsetbg.git/blobdiff - reload_db.py
Style: Fix `flake8` errors E302,E305 expected 2 blank lines, found 1
[xsetbg.git] / reload_db.py
index ff1c3a697386c344c1a94937714ffd05d11fa93b..fe25e864781546343bd97233a1c87786913c161d 100755 (executable)
@@ -19,10 +19,10 @@ def convert_str(s):
         return int(float(s))
 
 
-fs_encoding = xsetbg_conf.get("images", "fs_encoding")
 dump_file = open(sys.argv[1], 'r')
 xsetbg_db = recreate_db()
-count_new = count_old = 0
+count_new = count_old = count_updated = 0
+fs_encoding = xsetbg_conf.get("images", "fs_encoding")
 
 with SQLiteMassInsert() as txn:
     for line in dump_file:
@@ -31,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')}
@@ -44,9 +47,14 @@ with SQLiteMassInsert() as txn:
             assert id is None or row.id == id
             if row.last_shown is not None:
                 assert row.last_shown == timestamp
-            count_old += 1
+            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