DB Compresso

This commit is contained in:
Alhaziel01
2021-10-06 18:58:36 +02:00
parent ca29ea7216
commit a578a095ff
+9 -1
View File
@@ -15,6 +15,7 @@ from . import filetools
from platformcode import config from platformcode import config
from collections import defaultdict from collections import defaultdict
from lib.sqlitedict import SqliteDict from lib.sqlitedict import SqliteDict
import zlib, pickle, sqlite3
class nested_dict_sqlite(defaultdict): class nested_dict_sqlite(defaultdict):
@@ -29,8 +30,15 @@ class nested_dict_sqlite(defaultdict):
self[key].close() self[key].close()
self.clear() self.clear()
def encode(obj):
return sqlite3.Binary(zlib.compress(pickle.dumps(obj, pickle.HIGHEST_PROTOCOL)))
def decode(obj):
return pickle.loads(zlib.decompress(bytes(obj)))
db_name = filetools.join(config.get_data_path(), "db.sqlite") db_name = filetools.join(config.get_data_path(), "db.sqlite")
db = nested_dict_sqlite(lambda table: SqliteDict(db_name, table, 'c', True)) db = nested_dict_sqlite(lambda table: SqliteDict(db_name, table, 'c', True))
vdb_name = filetools.join(config.get_videolibrary_path(), "videolibrary.sqlite") vdb_name = filetools.join(config.get_videolibrary_path(), "videolibrary.sqlite")
videolibrarydb = nested_dict_sqlite(lambda table: SqliteDict(vdb_name, table, 'c', True)) # videolibrarydb = nested_dict_sqlite(lambda table: SqliteDict(vdb_name, table, 'c', True))
videolibrarydb = nested_dict_sqlite(lambda table: SqliteDict(vdb_name, table, 'c', True, encode=encode, decode=decode))