Skip to content

Commit 4185bb3

Browse files
committed
2 parents 653b824 + 8de8fc2 commit 4185bb3

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

resources/lib/common.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ def update_game_dl_path(self,path_in=None,new_folder=None):
209209
def extract_addon_db(self,use_backup=False):
210210
success = False
211211
if use_backup:
212-
current_file = self.config.files.get('addon_data_db_zipped_backup')
212+
current_file = self.config.files.get('db_zipped_backup')
213213
else:
214214
current_file = self.config.files.get('addon_data_db_zipped')
215215
if current_file.exists():
@@ -266,7 +266,8 @@ def check_db(self):
266266
new_matches = []
267267
no_matches = []
268268
xbmc.log(msg='IAGL: Extracted zipped db with version {} to path {}'.format(self.config.addon.get('version'),str(self.config.files.get('db').parent)),level=xbmc.LOGDEBUG)
269-
self.config.files.get('addon_data_db_zipped').rename(self.config.files.get('addon_data_db_zipped_backup')) #Rename new zipped db to backup
269+
#Rename or copy new zipped db to backup
270+
self._move_or_copy_zipped_db()
270271
if old_uids is not None:
271272
new_uids = db.query_db(db.get_query('get_all_uids_in_new_db',old_uids=','.join(['"{}"'.format(x) for x in old_uids])),return_as='dict')
272273
no_match_uids = [x for x in old_uids if x not in [y.get('uid') for y in new_uids if isinstance(y.get('uid'),str)]]
@@ -380,7 +381,7 @@ def check_db(self):
380381
selected = xbmcgui.Dialog().select(heading=self.get_loc(30373),list=[self.get_loc(30377),self.get_loc(30378)],useDetails=False)
381382
if selected == 1:
382383
xbmc.log(msg='IAGL: User requested not to be asked about update again. Moving new db to backup.',level=xbmc.LOGDEBUG)
383-
self.config.files.get('addon_data_db_zipped').rename(self.config.files.get('addon_data_db_zipped_backup'))
384+
self._move_or_copy_zipped_db()
384385
else:
385386
xbmc.log(msg='IAGL: User will be asked about update again later...',level=xbmc.LOGDEBUG)
386387
else:
@@ -394,7 +395,7 @@ def check_db(self):
394395
if result:
395396
xbmcaddon.Addon(id=self.config.addon.get('addon_name')).setSetting(id='db_version',value=self.config.addon.get('version'))
396397
xbmc.log(msg='IAGL: Extracted zipped db with version {} to path {}'.format(self.config.addon.get('version'),str(self.config.files.get('db').parent)),level=xbmc.LOGDEBUG)
397-
self.config.files.get('addon_data_db_zipped').rename(self.config.files.get('addon_data_db_zipped_backup'))
398+
self._move_or_copy_zipped_db()
398399
else:
399400
xbmc.log(msg='IAGL: Error extracting addon db: {}'.format(self.config.files.get('addon_data_db_zipped')),level=xbmc.LOGERROR)
400401
else:
@@ -404,14 +405,23 @@ def check_db(self):
404405
xbmc.log(msg='IAGL: addon database file not found, unable to restore from backup.',level=xbmc.LOGERROR)
405406
return result
406407

408+
def _move_or_copy_zipped_db(self):
409+
try:
410+
self.config.files.get('addon_data_db_zipped').rename(self.config.files.get('db_zipped_backup'))
411+
except Exception:
412+
try:
413+
xbmcvfs.copy(str(self.config.files.get('addon_data_db_zipped')), str(self.config.files.get('db_zipped_backup')))
414+
except Exception as e:
415+
xbmc.log(msg='IAGL: Error creating a backup of the db: {}'.format(e),level=xbmc.LOGERROR)
416+
407417
def reset_db(self):
408418
result = False
409419
xbmc.log(msg='IAGL: userdata db reset requested',level=xbmc.LOGDEBUG)
410420
pDialog = xbmcgui.DialogProgressBG()
411421
pDialog.create('Please Wait','Reset in progress...')
412422
if self.config.files.get('addon_data_db_zipped').exists():
413423
use_backup=False #Use the non-backup if it exists
414-
elif self.config.files.get('addon_data_db_zipped_backup').exists():
424+
elif self.config.files.get('db_zipped_backup').exists():
415425
use_backup=True #If it doesnt exist (likely), use the backup version
416426
else:
417427
use_backup = None

resources/lib/config.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,8 @@ def __init__(self):
4646
self.paths['assets_url'] = 'special://home/addons/plugin.program.iagl/assets/default/{}'
4747

4848
#Files
49-
self.files['addon_data_db'] = self.paths['addon_data'].joinpath('iagl.db')
5049
self.files['addon_data_db_zipped'] = self.paths['addon_data'].joinpath('iagl.db.zip')
51-
self.files['addon_data_db_zipped_backup'] = self.paths['addon_data'].joinpath('iagl_backup.db.zip')
50+
self.files['db_zipped_backup'] = self.paths['userdata'].joinpath('iagl_backup.db.zip')
5251
self.files['db'] = self.paths['userdata'].joinpath('iagl.db')
5352
self.files['ia_cookie'] = self.paths['userdata'].joinpath('ia.cookie')
5453
self.files['sounds'] = dict()

0 commit comments

Comments
 (0)