2 """Reload a dump into DB
4 This file is a part of XSetBg.
8 __author__ = "Oleg Broytman <phd@phdru.name>"
9 __copyright__ = "Copyright (C) 2007-2015 PhiloSoft Design"
10 __license__ = "GNU GPL"
13 from sqlobject import SQLObjectNotFound
14 from sqlobject.sqlbuilder import Insert
15 from xsetbg_conf import xsetbg_conf
16 from xsetbg_db import recreate_db, SQLiteMassInsert
18 fs_encoding = xsetbg_conf.get("images", "fs_encoding")
19 dump_file = open(sys.argv[1], 'rU')
20 xsetbg_db = recreate_db()
30 with SQLiteMassInsert() as txn:
31 for line in dump_file:
32 id, timestamp, filename = line.strip().split(None, 2)
34 timestamp = convert_str(timestamp)
35 filename = filename.decode(fs_encoding)
37 row = xsetbg_db.byFull_name(filename)
38 except SQLObjectNotFound:
39 values = {'last_shown': timestamp,
40 'full_name': filename.encode('utf-8')}
43 query = txn.sqlrepr(Insert(xsetbg_db.sqlmeta.table, values=values))
46 assert id is None or row.id == id
47 assert row.last_shown == timestamp