def updateArchiv(self, callback=None, verbose=True): try: if not callback: log.logDebug("ArchivUpdater update canceled.") self.continueToArchiv() else: # copy files self.downloadZip() log.logDebug( "ArchivUpdater download zip archivCZSK complete...") # remove tree self.backupOrRevertUpdate(True) self.BackupCreate = True self.removeArchivTree() # maybe zipper replace the file log.logDebug( "ArchivUpdater remove archivCZSK files complete...") # unzip unzipper = unzip.unzip() #.../Plugins/Extensions/ log.logDebug("ArchivUpdater extracting to %s" % settings.ENIGMA_PLUGIN_PATH) unzipper.extract(self.updateZipFilePath, settings.ENIGMA_PLUGIN_PATH) log.logDebug("ArchivUpdater unzip archivCZSK complete...") self.removeTempFiles() # restart enigma strMsg = "%s" % _("Update archivCZSK complete.") self.archiv.session.openWithCallback( self.archiv.ask_restart_e2, MessageBox, strMsg, type=MessageBox.TYPE_INFO) except: strMsg = "%s" % _("Update archivCZSK failed.") try: if self.BackupCreate: self.backupOrRevertUpdate(False) except: strMsg = strMsg + "\n\nFATAL ERROR\n\n" + _( "Please revert archivCZSK manualy from following location before restart!!!" ) + "\n\n" + toString(self.backupDir) pass log.logError( "ArchivUpdater update archivCZSK from zip failed.\n%s" % traceback.format_exc()) self.archiv.session.openWithCallback(self.updateFailed, MessageBox, strMsg, type=MessageBox.TYPE_INFO) pass
def updateArchiv(self, callback=None, verbose=True): try: if not callback: log.logDebug("ArchivUpdater update canceled.") self.continueToArchiv() else: # copy files self.downloadZip() log.logDebug("ArchivUpdater download zip archivCZSK complete...") # remove tree self.backupOrRevertUpdate(True) self.BackupCreate = True self.removeArchivTree() # maybe zipper replace the file log.logDebug("ArchivUpdater remove archivCZSK files complete...") # unzip unzipper = unzip.unzip() #.../Plugins/Extensions/ log.logDebug("ArchivUpdater extracting to %s" % settings.ENIGMA_PLUGIN_PATH) unzipper.extract(self.updateZipFilePath, settings.ENIGMA_PLUGIN_PATH) log.logDebug("ArchivUpdater unzip archivCZSK complete...") self.removeTempFiles() # restart enigma strMsg = "%s" % _("Update archivCZSK complete.") self.archiv.session.openWithCallback(self.archiv.ask_restart_e2, MessageBox, strMsg, type=MessageBox.TYPE_INFO) except: strMsg = "%s" % _("Update archivCZSK failed.") try: if self.BackupCreate: self.backupOrRevertUpdate(False) except: strMsg = strMsg + "\n\nFATAL ERROR\n\n"+_("Please revert archivCZSK manualy from following location before restart!!!")+"\n\n"+toString(self.backupDir) pass log.logError("ArchivUpdater update archivCZSK from zip failed.\n%s"%traceback.format_exc()) self.archiv.session.openWithCallback(self.updateFailed, MessageBox, strMsg, type=MessageBox.TYPE_INFO) pass
def update_addon(self, addon): """updates addon""" log.debug("updating %s", addon.name) self._get_server_addon(addon) local_base = os.path.join(self.local_path, addon.id) zip_file = self._download(addon) if zip_file is not None and os.path.isfile(zip_file): if os.path.isdir(local_base): shutil.rmtree(local_base) unzipper = unzip.unzip() unzipper.extract(zip_file, self.local_path) log.debug("%s was successfully updated to version %s", addon.name, self.remote_addons_dict[addon.id]['version']) return True log.debug("%s failed to update to version %s", addon.name, addon.version) return False
def updatePremium(self, callback=None): try: #download ZIP util.download_to_file( 'https://raw.githubusercontent.com/mtester270/archivczskpremium/master/archiv.zip', '/tmp/archivpremium.zip') #unpack unzipper = unzip.unzip() exDir = '/tmp/archivpremiumuzip' if os.path.isdir(exDir): shutil.rmtree(exDir) os.mkdir(exDir) unzipper.extract('/tmp/archivpremium.zip', exDir) os.remove('/tmp/archivpremium.zip') #copy shutil.copytree( os.path.join(exDir, 'archivCZSKpremium'), os.path.join(settings.ENIGMA_PLUGIN_PATH, 'archivCZSKpremium')) pthsite = os.path.join(exDir, 'site-packages') for i in os.listdir(pthsite): sitepck = os.path.join(pthsite, i) cpDir = os.path.join('/usr/lib/python2.7/site-packages', i) if not os.path.isdir(cpDir): log.logDebug("UpdatePremium: add site-pckage %s" % i) shutil.copytree(sitepck, cpDir) else: log.logDebug( "UpdatePremium: site-pckage %s already installed" % i) shutil.rmtree(exDir) #some custom setting val = self.getSetting('plugin_video_sosac_ph', 'streamujtv_user') self.saveSetting('plugin_video_sosac_ph', 'streamujtv_user', val, True) val = self.getSetting('plugin_video_sosac_ph', 'streamujtv_pass') self.saveSetting('plugin_video_sosac_ph', 'streamujtv_pass', val) val = self.getSetting('plugin_video_sosac_ph', 'auto_addon_order') self.saveSetting('plugin_video_sosac_ph', 'auto_addon_order', val) val = self.getSetting('plugin_video_orangetv', 'orangetvuser') self.saveSetting('plugin_video_orangetv', 'orangetvuser', val) val = self.getSetting('plugin_video_orangetv', 'orangetvpwd') self.saveSetting('plugin_video_orangetv', 'orangetvpwd', val) val = self.getSetting('plugin_video_orangetv', 'auto_addon_order') self.saveSetting('plugin_video_orangetv', 'auto_addon_order', val) val = self.getSetting('plugin_video_stream-cinema', 'wsuser') self.saveSetting('plugin_video_stream-cinema', 'wsuser', val) val = self.getSetting('plugin_video_stream-cinema', 'wspass') self.saveSetting('plugin_video_stream-cinema', 'wspass', val) val = self.getSetting('plugin_video_stream-cinema', 'trakt_enabled') self.saveSetting('plugin_video_stream-cinema', 'trakt_enabled', val) val = self.getSetting('plugin_video_stream-cinema', 'deviceid') self.saveSetting('plugin_video_stream-cinema', 'deviceid', val) val = self.getSetting('plugin_video_stream-cinema', 'trakt_filter') self.saveSetting('plugin_video_stream-cinema', 'trakt_filter', val) val = self.getSetting('plugin_video_stream-cinema', 'trakt_token') self.saveSetting('plugin_video_stream-cinema', 'trakt_token', val) val = self.getSetting('plugin_video_stream-cinema', 'trakt_refresh_token') self.saveSetting('plugin_video_stream-cinema', 'trakt_refresh_token', val) val = self.getSetting('plugin_video_stream-cinema', 'trakt_token_expire') self.saveSetting('plugin_video_stream-cinema', 'trakt_token_expire', val) val = self.getSetting('plugin_video_stream-cinema', 'use_https') self.saveSetting('plugin_video_stream-cinema', 'use_https', val) val = self.getSetting('plugin_video_stream-cinema', 'auto_addon_order') self.saveSetting('plugin_video_stream-cinema', 'auto_addon_order', val) val = self.getSetting('plugin_video_o2tv', 'o2tvuser') self.saveSetting('plugin_video_o2tv', 'o2tvuser', val) val = self.getSetting('plugin_video_o2tv', 'o2tvpwd') self.saveSetting('plugin_video_o2tv', 'o2tvpwd', val) val = self.getSetting('plugin_video_o2tv', 'login_method') self.saveSetting('plugin_video_o2tv', 'login_method', val) val = self.getSetting('plugin_video_o2tv', 'deviceid') self.saveSetting('plugin_video_o2tv', 'deviceid', val) val = self.getSetting('plugin_video_o2tv', 'auto_addon_order') self.saveSetting('plugin_video_o2tv', 'auto_addon_order', val) val = self.getSetting('plugin_video_online-files', 'webshare_enabled') self.saveSetting('plugin_video_online-files', 'webshare_enabled', val) val = self.getSetting('plugin_video_online-files', 'webshare_user') self.saveSetting('plugin_video_online-files', 'webshare_user', val) val = self.getSetting('plugin_video_online-files', 'webshare_pass') self.saveSetting('plugin_video_online-files', 'webshare_pass', val) val = self.getSetting('plugin_video_online-files', 'auto_addon_order') self.saveSetting('plugin_video_online-files', 'auto_addon_order', val) val = self.getSetting('plugin_video_markiza_sk', 'auto_addon_order') self.saveSetting('plugin_video_markiza_sk', 'auto_addon_order', val) val = self.getSetting('plugin_video_joj_sk', 'auto_addon_order') self.saveSetting('plugin_video_joj_sk', 'auto_addon_order', val) val = self.getSetting('plugin_video_rtvs_sk', 'auto_addon_order') self.saveSetting('plugin_video_rtvs_sk', 'auto_addon_order', val) self.saveSettingArchiv('skin', self.getSettingArchiv('skin')) self.saveSettingArchiv('showVideoInfo', self.getSettingArchiv('showVideoInfo')) self.saveSettingArchiv('downloadPoster', self.getSettingArchiv('downloadPoster')) self.saveSettingArchiv('posterImageMax', self.getSettingArchiv('posterImageMax')) self.saveSettingArchiv('csfdMode', self.getSettingArchiv('csfdMode')) self.saveSettingArchiv('downloadsPath', self.getSettingArchiv('downloadsPath')) self.saveSettingArchiv('posterPath', self.getSettingArchiv('posterPath')) self.saveSettingArchiv('tmpPath', self.getSettingArchiv('tmpPath')) self.saveSettingArchiv('defaultCategory', self.getSettingArchiv('defaultCategory')) self.saveSettingArchiv('clearMemory', self.getSettingArchiv('clearMemory')) # save settings bcpPath = '/tmp/oldarchivBackup' pth = settings.PLUGIN_PATH if os.path.isdir(bcpPath): shutil.rmtree(bcpPath) os.mkdir(bcpPath) os.mkdir(os.path.join(bcpPath, 'resources')) osr = os.path.join(pth, 'osref.pyo') if os.path.isfile(osr): shutil.copyfile(osr, os.path.join(bcpPath, 'osref.pyo')) shutil.copyfile(os.path.join(pth, 'categories.xml'), os.path.join(bcpPath, 'categories.xml')) if os.path.isdir(os.path.join(pth, 'resources')): try: from distutils import dir_util dir_util.copy_tree( os.path.join(pth, 'resources', 'data'), os.path.join(bcpPath, 'resources', 'data')) except: log.logError("Restore archiv data failed. %s" % traceback.format_exc()) # remove old archivCZSK if callback: shutil.rmtree(pth) #restore if os.path.isfile(os.path.join(bcpPath, 'osref.pyo')): shutil.copy( os.path.join(bcpPath, 'osref.pyo'), os.path.join(settings.ENIGMA_PLUGIN_PATH, 'archivCZSKpremium')) shutil.copy( os.path.join(bcpPath, 'categories.xml'), os.path.join(settings.ENIGMA_PLUGIN_PATH, 'archivCZSKpremium')) if os.path.exists(os.path.join(bcpPath, 'resources', 'data')): try: from distutils import dir_util dir_util.copy_tree( os.path.join(bcpPath, 'resources', 'data'), os.path.join(settings.ENIGMA_PLUGIN_PATH, 'archivCZSKpremium', 'resources', 'data')) except: log.logError("Restore archiv data failed. %s" % traceback.format_exc()) shutil.rmtree(bcpPath) strMsg = "%s" % _("Install ArchivCZSK premium complete.") self.archiv.session.openWithCallback(self.archiv.ask_restart_e2, MessageBox, strMsg, type=MessageBox.TYPE_INFO) except: log.logDebug("UpdatePremium failed.\n%s" % traceback.format_exc()) self.downloadCommit()
def updatePremium(self, callback=None): try: #download ZIP util.download_to_file('https://raw.githubusercontent.com/mtester270/archivczskpremium/master/archiv.zip', '/tmp/archivpremium.zip') #unpack unzipper = unzip.unzip() exDir = '/tmp/archivpremiumuzip' if os.path.isdir(exDir): shutil.rmtree(exDir) os.mkdir(exDir) unzipper.extract('/tmp/archivpremium.zip', exDir) os.remove('/tmp/archivpremium.zip') #copy shutil.copytree(os.path.join(exDir, 'archivCZSKpremium'), os.path.join(settings.ENIGMA_PLUGIN_PATH, 'archivCZSKpremium')) pthsite =os.path.join(exDir, 'site-packages') for i in os.listdir(pthsite): sitepck = os.path.join(pthsite,i) cpDir = os.path.join('/usr/lib/python2.7/site-packages', i) if not os.path.isdir(cpDir): log.logDebug("UpdatePremium: add site-pckage %s"%i) shutil.copytree(sitepck, cpDir) else: log.logDebug("UpdatePremium: site-pckage %s already installed"%i) shutil.rmtree(exDir) #some custom setting val = self.getSetting('plugin_video_sosac_ph', 'streamujtv_user') self.saveSetting('plugin_video_sosac_ph', 'streamujtv_user', val, True) val = self.getSetting('plugin_video_sosac_ph', 'streamujtv_pass') self.saveSetting('plugin_video_sosac_ph', 'streamujtv_pass', val) val = self.getSetting('plugin_video_sosac_ph', 'auto_addon_order') self.saveSetting('plugin_video_sosac_ph', 'auto_addon_order', val) val = self.getSetting('plugin_video_orangetv', 'orangetvuser') self.saveSetting('plugin_video_orangetv', 'orangetvuser', val) val = self.getSetting('plugin_video_orangetv', 'orangetvpwd') self.saveSetting('plugin_video_orangetv', 'orangetvpwd', val) val = self.getSetting('plugin_video_orangetv', 'auto_addon_order') self.saveSetting('plugin_video_orangetv', 'auto_addon_order', val) val = self.getSetting('plugin_video_stream-cinema', 'wsuser') self.saveSetting('plugin_video_stream-cinema', 'wsuser', val) val = self.getSetting('plugin_video_stream-cinema', 'wspass') self.saveSetting('plugin_video_stream-cinema', 'wspass', val) val = self.getSetting('plugin_video_stream-cinema', 'trakt_enabled') self.saveSetting('plugin_video_stream-cinema', 'trakt_enabled', val) val = self.getSetting('plugin_video_stream-cinema', 'deviceid') self.saveSetting('plugin_video_stream-cinema', 'deviceid', val) val = self.getSetting('plugin_video_stream-cinema', 'trakt_filter') self.saveSetting('plugin_video_stream-cinema', 'trakt_filter', val) val = self.getSetting('plugin_video_stream-cinema', 'trakt_token') self.saveSetting('plugin_video_stream-cinema', 'trakt_token', val) val = self.getSetting('plugin_video_stream-cinema', 'trakt_refresh_token') self.saveSetting('plugin_video_stream-cinema', 'trakt_refresh_token', val) val = self.getSetting('plugin_video_stream-cinema', 'trakt_token_expire') self.saveSetting('plugin_video_stream-cinema', 'trakt_token_expire', val) val = self.getSetting('plugin_video_stream-cinema', 'use_https') self.saveSetting('plugin_video_stream-cinema', 'use_https', val) val = self.getSetting('plugin_video_stream-cinema', 'auto_addon_order') self.saveSetting('plugin_video_stream-cinema', 'auto_addon_order', val) val = self.getSetting('plugin_video_o2tv', 'o2tvuser') self.saveSetting('plugin_video_o2tv', 'o2tvuser', val) val = self.getSetting('plugin_video_o2tv', 'o2tvpwd') self.saveSetting('plugin_video_o2tv', 'o2tvpwd', val) val = self.getSetting('plugin_video_o2tv', 'login_method') self.saveSetting('plugin_video_o2tv', 'login_method', val) val = self.getSetting('plugin_video_o2tv', 'deviceid') self.saveSetting('plugin_video_o2tv', 'deviceid', val) val = self.getSetting('plugin_video_o2tv', 'auto_addon_order') self.saveSetting('plugin_video_o2tv', 'auto_addon_order', val) val = self.getSetting('plugin_video_online-files', 'webshare_enabled') self.saveSetting('plugin_video_online-files', 'webshare_enabled', val) val = self.getSetting('plugin_video_online-files', 'webshare_user') self.saveSetting('plugin_video_online-files', 'webshare_user', val) val = self.getSetting('plugin_video_online-files', 'webshare_pass') self.saveSetting('plugin_video_online-files', 'webshare_pass', val) val = self.getSetting('plugin_video_online-files', 'auto_addon_order') self.saveSetting('plugin_video_online-files', 'auto_addon_order', val) val = self.getSetting('plugin_video_markiza_sk', 'auto_addon_order') self.saveSetting('plugin_video_markiza_sk', 'auto_addon_order', val) val = self.getSetting('plugin_video_joj_sk', 'auto_addon_order') self.saveSetting('plugin_video_joj_sk', 'auto_addon_order', val) val = self.getSetting('plugin_video_rtvs_sk', 'auto_addon_order') self.saveSetting('plugin_video_rtvs_sk', 'auto_addon_order', val) self.saveSettingArchiv('skin', self.getSettingArchiv('skin')) self.saveSettingArchiv('showVideoInfo', self.getSettingArchiv('showVideoInfo')) self.saveSettingArchiv('downloadPoster', self.getSettingArchiv('downloadPoster')) self.saveSettingArchiv('posterImageMax', self.getSettingArchiv('posterImageMax')) self.saveSettingArchiv('csfdMode', self.getSettingArchiv('csfdMode')) self.saveSettingArchiv('downloadsPath', self.getSettingArchiv('downloadsPath')) self.saveSettingArchiv('posterPath', self.getSettingArchiv('posterPath')) self.saveSettingArchiv('tmpPath', self.getSettingArchiv('tmpPath')) self.saveSettingArchiv('defaultCategory', self.getSettingArchiv('defaultCategory')) self.saveSettingArchiv('clearMemory', self.getSettingArchiv('clearMemory')) # save settings bcpPath = '/tmp/oldarchivBackup' pth = settings.PLUGIN_PATH if os.path.isdir(bcpPath): shutil.rmtree(bcpPath) os.mkdir(bcpPath) os.mkdir(os.path.join(bcpPath,'resources')) osr = os.path.join(pth, 'osref.pyo') if os.path.isfile(osr): shutil.copyfile(osr, os.path.join(bcpPath, 'osref.pyo')) shutil.copyfile(os.path.join(pth, 'categories.xml'),os.path.join(bcpPath, 'categories.xml')) if os.path.isdir(os.path.join(pth,'resources')): try: from distutils import dir_util dir_util.copy_tree(os.path.join(pth,'resources','data'),os.path.join(bcpPath,'resources','data')) except: log.logError("Restore archiv data failed. %s"%traceback.format_exc()) # remove old archivCZSK if callback: shutil.rmtree(pth) #restore if os.path.isfile(os.path.join(bcpPath, 'osref.pyo')): shutil.copy(os.path.join(bcpPath, 'osref.pyo'), os.path.join(settings.ENIGMA_PLUGIN_PATH,'archivCZSKpremium')) shutil.copy(os.path.join(bcpPath, 'categories.xml'), os.path.join(settings.ENIGMA_PLUGIN_PATH,'archivCZSKpremium')) if os.path.exists(os.path.join(bcpPath,'resources','data')): try: from distutils import dir_util dir_util.copy_tree(os.path.join(bcpPath,'resources','data'), os.path.join(settings.ENIGMA_PLUGIN_PATH,'archivCZSKpremium','resources','data')) except: log.logError("Restore archiv data failed. %s"%traceback.format_exc()) shutil.rmtree(bcpPath) strMsg = "%s" % _("Install ArchivCZSK premium complete.") self.archiv.session.openWithCallback(self.archiv.ask_restart_e2, MessageBox, strMsg, type=MessageBox.TYPE_INFO) except: log.logDebug("UpdatePremium failed.\n%s"%traceback.format_exc()) self.downloadCommit()