def doDowanloadSubtitle(self, callback, subItem, tmpDir, subDir): self.outerCallback = callback self.tmpData = {'subItem':subItem, 'tmpDir':tmpDir, 'subDir':subDir} # subItem === private_data tmpFile = tmpDir + OpenSubOrgProvider.TMP_FILE_NAME self.filesToRemove.append(tmpFile) self.tmpData['tmpFile'] = tmpFile tmpFile = " '{0}' ".format(tmpFile) if not subItem.get('napisy_24', False): params = {'User-Agent': OpenSubOrgProvider.USER_AGENT} url = " '{0}' ".format(subItem['SubDownloadLink']) cmd = DMHelper.getBaseWgetCmd(params) + url + ' -O ' + tmpFile + ' > /dev/null 2>&1 ' printDBG('doDowanloadSubtitle cmd[%s]' % cmd) self.iptv_sys = iptv_system(cmd, self._doDowanloadSubtitleCallback) else: tmpFileZip = self.tmpData['tmpFile'] + '.zip' self.tmpData['tmpFileZip'] = tmpFileZip self.filesToRemove.append(tmpFileZip) tmpFileZip = " '{0}' ".format(tmpFileZip) params = {'User-Agent': self.NAPISY24_USER_AGENT, 'Referer':'http://napisy24.pl/'} url = "'http://napisy24.pl/run/pages/download.php?napisId={0}&typ=sr'".format(subItem['id']) cmd = DMHelper.getBaseWgetCmd(params) + url + ' -O ' + tmpFileZip + ' > /dev/null 2>&1 ' printDBG('_doSearchSubtitleNapisy24Callback cmd[%s]' % cmd) self.iptv_sys = iptv_system(cmd, self._doDowanloadSubtitle24Callback)
def doDowanloadSubtitle(self, callback, subItem, tmpDir, subDir): self.outerCallback = callback self.tmpData = {"subItem": subItem, "tmpDir": tmpDir, "subDir": subDir} # subItem === private_data tmpFile = tmpDir + OpenSubOrgProvider.TMP_FILE_NAME self.filesToRemove.append(tmpFile) self.tmpData["tmpFile"] = tmpFile tmpFile = " '{0}' ".format(tmpFile) if not subItem.get("napisy_24", False): params = {"User-Agent": OpenSubOrgProvider.USER_AGENT} url = " '{0}' ".format(subItem["SubDownloadLink"]) cmd = DMHelper.getBaseWgetCmd(params) + url + " -O " + tmpFile + " > /dev/null 2>&1 " printDBG("doDowanloadSubtitle cmd[%s]" % cmd) self.iptv_sys = iptv_system(cmd, self._doDowanloadSubtitleCallback) else: tmpFileZip = self.tmpData["tmpFile"] + ".zip" self.tmpData["tmpFileZip"] = tmpFileZip self.filesToRemove.append(tmpFileZip) tmpFileZip = " '{0}' ".format(tmpFileZip) params = {"User-Agent": self.NAPISY24_USER_AGENT, "Referer": "http://napisy24.pl/"} url = "'http://napisy24.pl/run/pages/download.php?napisId={0}&typ=sr'".format(subItem["id"]) cmd = DMHelper.getBaseWgetCmd(params) + url + " -O " + tmpFileZip + " > /dev/null 2>&1 " printDBG("_doSearchSubtitleNapisy24Callback cmd[%s]" % cmd) self.iptv_sys = iptv_system(cmd, self._doDowanloadSubtitle24Callback)
def _doSearchMovieNapisy24(self): params = {'User-Agent': self.NAPISY24_USER_AGENT, 'Referer':'http://napisy24.pl/'} query = 'title={0}'.format(urllib.quote(self.tmpData['title'])) url = "'http://napisy24.pl/libs/webapi.php?{0}'".format(query) cmd = DMHelper.getBaseWgetCmd(params) + url + ' -O - 2> /dev/null ' printDBG('_doSearchMovieNapisy24 cmd[%s]' % cmd) self.iptv_sys = iptv_system(cmd, self._doSearchMovieNapisy24Callback)
def goGetEpisodeType(self, privateData): url = "'http://www.imdb.com/title/tt{0}/episodes/_ajax?season={1}'".format(privateData['id'], privateData['season']) grep = '?ref_=ttep_ep{0}"'.format(privateData['episode']) grep = " | grep '{0}'".format(grep) cmd = DMHelper.getBaseWgetCmd({}) + url + ' -O - 2>/dev/null ' + grep printDBG('doGetEpisodes cmd[%s]' % cmd) self.iptv_sys = iptv_system(cmd, self._goGetEpisodeTypeCallback)
def doGetItemType(self, callback, privateData): self.outerCallback = callback self.tmpData = {} self.itemTypeCache = {'type':'movie'} url = "'https://api.themoviedb.org/3/find/tt{0}?api_key={1}&external_source=imdb_id'".format(privateData['id'], base64.b64decode('NjMxMWY4MmQ1MjAxNDI2NWQ3NjVkMzk4MDJhYWZhYTc=')) cmd = DMHelper.getBaseWgetCmd({}) + url + ' -O - 2> /dev/null ' self.iptv_sys = iptv_system(cmd, self._doGetItemTypeCallback)
def _doSearchMovieNapisy24(self): params = {"User-Agent": self.NAPISY24_USER_AGENT, "Referer": "http://napisy24.pl/"} query = "title={0}".format(urllib.quote(self.tmpData["title"])) url = "'http://napisy24.pl/libs/webapi.php?{0}'".format(query) cmd = DMHelper.getBaseWgetCmd(params) + url + " -O - 2> /dev/null " printDBG("_doSearchMovieNapisy24 cmd[%s]" % cmd) self.iptv_sys = iptv_system(cmd, self._doSearchMovieNapisy24Callback)
def stepRemoveOldVersion(self): # if not config.plugins.iptvplayer.cleanup.value: # code = 1 # self.stepFinished(1, "Pominięty.\nCzyszczenie w czasie aktualizacji jest wyłączone w ustawieniach pluginu.") # else: cmd = 'rm -rf "%s"/*' % ( os_path.join(self.ExtensionPath, 'IPTVPlayer') ) printDBG('UpdateMainAppImpl.stepRemoveOldVersion cmd[%s]' % cmd) self.cmd = iptv_system( cmd, self.__removeOldVersionCmdFinished )
def _doUnzipSubtitle24Callback(self, code, data): if 0 == code: # unzip file cmd = '%s "%s"' % (config.plugins.iptvplayer.uchardetpath.value, self.tmpData['tmpFile']) self.iptv_sys = iptv_system(cmd, self._doGetEncodingSubtitle24Callback) else: self.lastApiError = {'code':-999, 'message':_('unzip error - please check if utitlity unzip is available')} self.outerCallback(False, self.tmpData.get('tmpFileZip', ''))
def __installNewVersionCmdFinished(self, status, outData): self.cmd = None if 0 != status: msg = _("Problem with installing the new version.\nStatus[%d], outData[%s]") % (status, outData) self.stepFinished(-1, msg) else: self.cmd = iptv_system( 'rm -rf ' + self.tmpDir + " && sync" , self.__doSyncCallBack ) return
def doGetItemTypeOLD(self, callback, privateData): self.outerCallback = callback self.tmpData = {} self.itemTypeCache = {"type": "movie"} url = "'http://www.omdbapi.com/?i=tt{0}&plot=short&r=json'".format(privateData["id"]) cmd = DMHelper.getBaseWgetCmd({}) + url + " -O - 2> /dev/null " printDBG("doGetItemType cmd[%s]" % cmd) self.iptv_sys = iptv_system(cmd, self._doGetItemTypeCallback)
def doGetItemTypeOLD(self, callback, privateData): self.outerCallback = callback self.tmpData = {} self.itemTypeCache = {'type':'movie'} url = "'http://www.omdbapi.com/?i=tt{0}&plot=short&r=json'".format(privateData['id']) cmd = DMHelper.getBaseWgetCmd({}) + url + ' -O - 2> /dev/null ' printDBG('doGetItemType cmd[%s]' % cmd) self.iptv_sys = iptv_system(cmd, self._doGetItemTypeCallback)
def downloadFinished(self, status): if status != DMHelper.STS.DOWNLOADED: self["console"].setText(_("Download failed.\nStatus[%s]") % status) else: self["console"].setText(_('Subtitles downloaded successfully. [%s], conversion to UTF-8.') % self.downloader.getFullFileName()) cmd = '%s "%s"' % (config.plugins.iptvplayer.uchardetpath.value, self.downloader.getFullFileName()) printDBG("cmd[%s]" % cmd) self.workconsole = iptv_system(cmd, self.convertSubtitles)
def doGetItemType(self, callback, privateData): self.outerCallback = callback self.tmpData = {'imdbid':privateData['id'], 'title':privateData['title']} self.itemTypeCache = {'type':'movie'} url = "'https://api.themoviedb.org/3/find/tt{0}?api_key={1}&external_source=imdb_id'".format(privateData['id'], base64.b64decode('NjMxMWY4MmQ1MjAxNDI2NWQ3NjVkMzk4MDJhYWZhYTc=')) #printDBG(url) cmd = DMHelper.getBaseWgetCmd({}) + url + ' -O - 2> /dev/null ' self.iptv_sys = iptv_system(cmd, self._doGetItemTypeCallback)
def stepRemoveOldVersion(self): # if not config.plugins.iptvplayer.cleanup.value: # code = 1 # self.stepFinished(1, "Pominięty.\nCzyszczenie w czasie aktualizacji jest wyłączone w ustawieniach pluginu.") # else: cmd = 'rm -rf "%s"/*' % (os_path.join(self.ExtensionPath, 'IPTVPlayer')) printDBG('UpdateMainAppImpl.stepRemoveOldVersion cmd[%s]' % cmd) self.cmd = iptv_system(cmd, self.__removeOldVersionCmdFinished)
def __installNewVersionCmdFinished(self, status, outData): self.cmd = None if 0 != status: msg = self.messages['problem_install'] % (status, outData) self.stepFinished(-1, msg) else: self.cmd = iptv_system('rm -rf ' + self.tmpDir + " && sync", self.__doSyncCallBack) return
def doGetItemType(self, callback, privateData): self.outerCallback = callback self.tmpData = {} self.itemTypeCache = {"type": "movie"} url = "'https://api.themoviedb.org/3/find/tt{0}?api_key={1}&external_source=imdb_id'".format( privateData["id"], base64.b64decode("NjMxMWY4MmQ1MjAxNDI2NWQ3NjVkMzk4MDJhYWZhYTc=") ) cmd = DMHelper.getBaseWgetCmd({}) + url + " -O - 2> /dev/null " self.iptv_sys = iptv_system(cmd, self._doGetItemTypeCallback)
def _doDowanloadSubtitle24Callback(self, code, data): if 0 == code: tmpFileZip = self.tmpData['tmpFileZip'] tmpFile = self.tmpData['tmpFile'] # unzip file cmd = "unzip -po '{0}' -x Napisy24.pl.url > '{1}' 2>/dev/null".format(tmpFileZip, tmpFile) self.iptv_sys = iptv_system(cmd, self._doUnzipSubtitle24Callback) else: self.lastApiError = {'code':code, 'message':_('Download subtitles error.\nwget error code[%d].') % code} self.outerCallback(False, '')
def _doDowanloadSubtitle24Callback(self, code, data): if 0 == code: tmpFileZip = self.tmpData["tmpFileZip"] tmpFile = self.tmpData["tmpFile"] # unzip file cmd = "unzip -po '{0}' -x Napisy24.pl.url > '{1}' 2>/dev/null".format(tmpFileZip, tmpFile) self.iptv_sys = iptv_system(cmd, self._doUnzipSubtitle24Callback) else: self.lastApiError = {"code": code, "message": _("Download subtitles error.\nwget error code[%d].") % code} self.outerCallback(False, "")
def stepUnpackGraphicsArchive(self): if '' == self.serversList[self.currServIdx]['graphics_url']: self.stepFinished(0, _('Skipped.')) return cmd = 'tar -xzf "%s" -C "%s" 2>&1; PREV_RET=$?; rm -f "%s" > /dev/null 2>&1; (exit $PREV_RET)' % ( self.graphicsSourceArchive, os_path.join(self.ExtensionTmpPath, 'IPTVPlayer/'), self.graphicsSourceArchive) self.cmd = iptv_system(cmd, self.__unpackCmdFinished)
def stepUnpackIconsArchive(self): if '' == self.serversList[self.currServIdx]['icons_url'] or \ not config.plugins.iptvplayer.ListaGraficzna.value: self.stepFinished(0, _('Skipped.')) return cmd = 'tar -xzf "%s" -C "%s" 2>&1; PREV_RET=$?; rm -f "%s" > /dev/null 2>&1; (exit $PREV_RET)' % ( self.iconsSourceArchive, os_path.join(self.ExtensionTmpPath, 'IPTVPlayer/'), self.iconsSourceArchive) self.cmd = iptv_system(cmd, self.__unpackCmdFinished)
def _getPage(self, callback, url, params={}, post_data=None): if 'User-Agent' not in params: params['User-Agent'] =OpenSubOrgProvider.USER_AGENT if None != post_data: post_data = " --post-data '{0}' ".format(post_data) else: post_data = '' url = " '{0}' ".format(url) cmd = DMHelper.getBaseWgetCmd(params) + post_data + url + ' -O - 2> /dev/null' self.iptv_sys = iptv_system(cmd, callback)
def __installNewVersionCmdFinished(self, status, outData): self.cmd = None if 0 != status: msg = _( "Problem with installing the new version.\nStatus[%d], outData[%s]" ) % (status, outData) self.stepFinished(-1, msg) else: self.cmd = iptv_system('rm -rf ' + self.tmpDir + " && sync", self.__doSyncCallBack) return
def doGetEpisodes(self, callback, privateData, episodeData): self.outerCallback = callback self.tmpData = {'private_data':privateData, 'episode_data':episodeData} imdbid = self.itemTypeCache['imdbid'] season = episodeData.get('season', -1) episode = episodeData.get('episode', -1) cmd = GetPyScriptCmd('imdb') + ' episodes {0} {1} {2} 2>&1 '.format(imdbid, season, episode) printDBG('doGetEpisodes cmd[%s]' % cmd) self.iptv_sys = iptv_system(cmd, self._doGetEpisodesCallback)
def stepUnpackArchive(self): self.destinationArchive = os_path.join(self.tmpDir , 'iptv_archive') self.ExtensionTmpPath = os_path.join(self.destinationArchive, self.serversList[self.currServIdx]['subdir']) printDBG('UpdateMainAppImpl.stepUnpackArchive: sourceArchive[%s] -> destinationArchive[%s] -> ExtensionTmpPath[%s]' % (self.sourceArchive, self.destinationArchive, self.ExtensionTmpPath) ) sts, msg = self.createPath(self.destinationArchive) if not sts: self.stepFinished(-1, msg) return cmd = 'tar -xzf "%s" -C "%s" 2>&1' % (self.sourceArchive, self.destinationArchive) self.cmd = iptv_system( cmd, self.__unpackCmdFinished )
def stepRemoveUnnecessaryFiles(self): printDBG("stepRemoveUnnecessaryFiles") playerSelectorPath = os_path.join(self.ExtensionTmpPath, 'IPTVPlayer/icons/PlayerSelector/') logosPath = os_path.join(self.ExtensionTmpPath, 'IPTVPlayer/icons/logos/') hostsPath = os_path.join(self.ExtensionTmpPath, 'IPTVPlayer/hosts/') webPath = os_path.join(self.ExtensionTmpPath, 'IPTVPlayer/Web/') cmds = [] iconSize = int(config.plugins.iptvplayer.IconsSize.value) if not config.plugins.iptvplayer.ListaGraficzna.value: iconSize = 0 for size in [135, 120, 100]: if size != iconSize: cmds.append('rm -f %s' % (playerSelectorPath + '*{0}.png'.format(size))) cmds.append( 'rm -f %s' % (playerSelectorPath + 'marker{0}.png'.format(size + 45))) # remove Web iterface module if not needed if not config.plugins.iptvplayer.IPTVWebIterface.value: cmds.append('rm -rf %s' % (webPath)) # removing not needed hosts if config.plugins.iptvplayer.remove_diabled_hosts.value: enabledHostsList = GetEnabledHostsList() hostsFromList = GetHostsList(fromList=True, fromHostFolder=False) hostsFromFolder = GetHostsList(fromList=False, fromHostFolder=True) hostsToRemove = [] for hostItem in hostsFromList: if hostItem not in enabledHostsList and hostItem in hostsFromFolder: cmds.append( 'rm -f %s' % (playerSelectorPath + '{0}*.png'.format(hostItem))) cmds.append('rm -f %s' % (logosPath + '{0}logo.png'.format(hostItem))) cmds.append('rm -f %s' % (hostsPath + 'host{0}.py*'.format(hostItem))) # we need to prepare temporary file with removing cmds because cmd can be to long cmdFilePath = GetTmpDir('.iptv_remove_cmds.sh') cmds.insert(0, '#!/bin/sh') cmds.append('exit 0\n') text = '\n'.join(cmds) WriteTextFile(cmdFilePath, text, 'ascii') cmd = '/bin/sh "{0}" '.format(cmdFilePath) #cmd = '/bin/sh "{0}" && rm -rf "{1}" '.format(cmdFilePath, cmdFilePath) else: cmd = ' && '.join(cmds) printDBG("stepRemoveUnnecessaryFiles cmdp[%s]" % cmd) self.cmd = iptv_system(cmd, self.__removeUnnecessaryFilesCmdFinished)
def _doSearchSubtitleNapisy24(self, type='imdb'): self.tmpData['type'] = type params = {'User-Agent': self.NAPISY24_USER_AGENT, 'Referer':'http://napisy24.pl/'} if type == 'imdb': query = 'imdb=tt{0}'.format(self.tmpData['imdbid']) else: query = 'title={0}'.format(urllib.quote(self.tmpData['title'])) url = "'http://napisy24.pl/libs/webapi.php?{0}'".format(query) cmd = DMHelper.getBaseWgetCmd(params) + url + ' -O - 2> /dev/null ' printDBG('_doSearchSubtitleNapisy24Callback cmd[%s]' % cmd) self.iptv_sys = iptv_system(cmd, self._doSearchSubtitleNapisy24Callback)
def _doSearchSubtitleNapisy24(self, type="imdb"): self.tmpData["type"] = type params = {"User-Agent": self.NAPISY24_USER_AGENT, "Referer": "http://napisy24.pl/"} if type == "imdb": query = "imdb=tt{0}".format(self.tmpData["imdbid"]) else: query = "title={0}".format(urllib.quote(self.tmpData["title"])) url = "'http://napisy24.pl/libs/webapi.php?{0}'".format(query) cmd = DMHelper.getBaseWgetCmd(params) + url + " -O - 2> /dev/null " printDBG("_doSearchSubtitleNapisy24Callback cmd[%s]" % cmd) self.iptv_sys = iptv_system(cmd, self._doSearchSubtitleNapisy24Callback)
def stepRemoveUnnecessaryFiles(self): printDBG("stepRemoveUnnecessaryFiles") path = os_path.join(self.ExtensionTmpPath, 'IPTVPlayer/icons/PlayerSelector/') cmds = [] iconSize = int(config.plugins.iptvplayer.IconsSize.value) if not config.plugins.iptvplayer.ListaGraficzna.value: iconSize = 0 for size in [135, 120, 100]: if size != iconSize: cmds.append('rm -f %s' % (path + '*{0}.png'.format(size)) ) cmds.append('rm -f %s' % (path + 'marker{0}.png'.format(size + 45)) ) cmd = ' && '.join(cmds) printDBG("stepRemoveUnnecessaryFiles cmdp[%s]" % cmd) self.cmd = iptv_system( cmd, self.__removeUnnecessaryFilesCmdFinished )
def doGetEpisodesOld(self, callback, privateData, episodeData): self.outerCallback = callback self.tmpData = {'private_data':privateData, 'episode_data':episodeData} year = self.itemTypeCache.get('year', '') if year != '': year = '&year=%s' % year else: year = '' url = "'http://imdbapi.poromenos.org/js/?name={0}{1}'".format(urllib.quote(self.itemTypeCache.get('title', '')), year) cmd = DMHelper.getBaseWgetCmd({}) + url + ' -O - 2> /dev/null ' printDBG('doGetEpisodes cmd[%s]' % cmd) self.iptv_sys = iptv_system(cmd, self._doGetEpisodesCallback)
def doGetEpisodes(self, callback, privateData, episodeData): self.outerCallback = callback self.tmpData = {'private_data':privateData, 'episode_data':episodeData} year = self.itemTypeCache.get('year', '') if year != '': year = '&year=%s' % year else: year = '' url = "'http://imdbapi.poromenos.org/js/?name={0}{1}'".format(urllib.quote(self.itemTypeCache.get('title', '')), year) cmd = DMHelper.getBaseWgetCmd({}) + url + ' -O - 2> /dev/null ' printDBG('doGetEpisodes cmd[%s]' % cmd) self.iptv_sys = iptv_system(cmd, self._doGetEpisodesCallback)
def _system(self, session, cmd): printDBG("iptv_execute._system: Here we must be in main thread context: [%s]" % threading.current_thread()); try: terminated = self.Thread._iptvplayer_ext['terminated'] except Exception: printExc() terminated = False if not terminated and self.Thread.isAlive(): try: self.Thread._iptvplayer_ext['iptv_execute'] = self except Exception: printExc() self.iptv_system = iptv_system(cmd, self._callBack) return iptv_execute.WAIT_RET return
def reportHostCrash(self, ret): try: if ret: try: exceptStack = self.workThread.getExceptStack() reporter = GetPluginDir('iptvdm/reporthostcrash.py') msg = urllib_quote('%s|%s|%s|%s' % ('HOST_CRASH', IPTVSubDownloaderWidget.IPTV_VERSION, self.hostName, self.getCategoryPath())) self.crashConsole = iptv_system('python "%s" "http://iptvplayer.vline.pl/reporthostcrash.php?msg=%s" "%s" 2&>1 > /dev/null' % (reporter, msg, exceptStack)) printDBG(msg) except Exception: printExc() self.workThread = None self.prevSelList = [] self.back_pressed() except Exception: printExc()
def stepInstallNewVersion(self): cmd = '' try: url = "http://iptvplayer.vline.pl/check.php?ver=%s&type=%s" % ( self.serversList[self.currServIdx]['version'], self.serversList[self.currServIdx]['pyver']) cmd = '%s "%s" -O - > /dev/null 2>&1; ' % ( config.plugins.iptvplayer.wgetpath.value, url) except Exception: printExc() cmd += 'cp -rf "%s"/* "%s"/ 2>&1' % (os_path.join( self.ExtensionTmpPath, 'IPTVPlayer'), os_path.join(self.ExtensionPath, 'IPTVPlayer')) printDBG('UpdateMainAppImpl.stepInstallNewVersion cmd[%s]' % cmd) self.cmd = iptv_system(cmd, self.__installNewVersionCmdFinished)
def stepRemoveUnnecessaryFiles(self): printDBG("stepRemoveUnnecessaryFiles") path = os_path.join(self.ExtensionTmpPath, 'IPTVPlayer/icons/PlayerSelector/') cmds = [] iconSize = int(config.plugins.iptvplayer.IconsSize.value) if not config.plugins.iptvplayer.ListaGraficzna.value: iconSize = 0 for size in [135, 120, 100]: if size != iconSize: cmds.append('rm -f %s' % (path + '*{0}.png'.format(size))) cmds.append('rm -f %s' % (path + 'marker{0}.png'.format(size + 45))) cmd = ' && '.join(cmds) printDBG("stepRemoveUnnecessaryFiles cmdp[%s]" % cmd) self.cmd = iptv_system(cmd, self.__removeUnnecessaryFilesCmdFinished)
def doGetEpisodes(self, callback, privateData, episodeData): self.outerCallback = callback self.tmpData = {"private_data": privateData, "episode_data": episodeData} year = self.itemTypeCache.get("year", "") if year != "": year = "&year=%s" % year else: year = "" url = "'http://imdbapi.poromenos.org/js/?name={0}{1}'".format( urllib.quote(self.itemTypeCache.get("title", "")), year ) cmd = DMHelper.getBaseWgetCmd({}) + url + " -O - 2> /dev/null " printDBG("doGetEpisodes cmd[%s]" % cmd) self.iptv_sys = iptv_system(cmd, self._doGetEpisodesCallback)
def stepUnpackArchive(self): self.destinationArchive = os_path.join(self.tmpDir, 'iptv_archive') self.ExtensionTmpPath = os_path.join( self.destinationArchive, self.serversList[self.currServIdx]['subdir']) printDBG( 'UpdateMainAppImpl.stepUnpackArchive: sourceArchive[%s] -> destinationArchive[%s] -> ExtensionTmpPath[%s]' % (self.sourceArchive, self.destinationArchive, self.ExtensionTmpPath)) sts, msg = self.createPath(self.destinationArchive) if not sts: self.stepFinished(-1, msg) return cmd = 'tar -xzf "%s" -C "%s" 2>&1' % (self.sourceArchive, self.destinationArchive) self.cmd = iptv_system(cmd, self.__unpackCmdFinished)
def stepExecuteUserScripts(self, init=True, code=0, msg=''): # get users scripts if init: self.customUserCmdList = self.__getUserCmdsList() if 0 <len(self.customUserCmdList): self.customUserMsg = '' else: self.customUserMsg = _("No user scripts.") self.customUserMsg += msg if 0 != code: self.stepFinished(-1, _("Problem with user script execution [%s].") + self.customUserMsg) elif 0 < len(self.customUserCmdList): cmd = self.customUserCmdList.pop() self.cmd = iptv_system( cmd, self.__userCmdFinished ) else: self.stepFinished(0, _("Completed.\n") + self.customUserMsg)
def stepCopyPostInatalledBinaries(self, init=True, code=0, msg=''): # get users scripts if init: self.copyBinariesCmdList = [] if fileExists("%s/libs/iptvsubparser/_subparser.so" % os_path.join(self.ExtensionPath, 'IPTVPlayer')): self.copyBinariesCmdList.append( 'cp -f "%s/libs/iptvsubparser/_subparser.so" "%s/libs/iptvsubparser/_subparser.so" 2>&1 ' % (os_path.join(self.ExtensionPath, 'IPTVPlayer'), os_path.join(self.ExtensionTmpPath, 'IPTVPlayer'))) binPath = "%s/bin/" % (os_path.join(self.ExtensionPath, 'IPTVPlayer')) binariesTab = [('exteplayer3', config.plugins.iptvplayer.exteplayer3path.value), \ ('gstplayer', config.plugins.iptvplayer.gstplayerpath.value), \ ('wget', config.plugins.iptvplayer.wgetpath.value), \ ('hlsdl', config.plugins.iptvplayer.hlsdlpath.value), \ ('cmdwrap', config.plugins.iptvplayer.cmdwrappath.value), \ ('duk', config.plugins.iptvplayer.dukpath.value), \ ('f4mdump', config.plugins.iptvplayer.f4mdumppath.value), \ ('uchardet', config.plugins.iptvplayer.uchardetpath.value)] for binItem in binariesTab: if binPath in binItem[1]: self.copyBinariesCmdList.append( 'cp -f "%s/%s" "%s/bin/" 2>&1 ' % (binPath, binItem[0], os_path.join(self.ExtensionTmpPath, 'IPTVPlayer'))) if 0 < len(self.copyBinariesCmdList): self.copyBinariesMsg = '' else: self.copyBinariesMsg = _("Nothing to do here.") self.copyBinariesMsg += msg if 0 != code: self.stepFinished( -1, _("Problem with copy binary.\n") + self.copyBinariesMsg) elif 0 < len(self.copyBinariesCmdList): cmd = self.copyBinariesCmdList.pop() self.cmd = iptv_system(cmd, self.__copyBinariesCmdFinished) else: self.stepFinished(0, _("Completed.\n") + self.copyBinariesMsg)
def stepExecuteUserScripts(self, init=True, code=0, msg=''): # get users scripts if init: self.customUserCmdList = self.__getUserCmdsList() if 0 < len(self.customUserCmdList): self.customUserMsg = '' else: self.customUserMsg = _("No user scripts.") self.customUserMsg += msg if 0 != code: self.stepFinished( -1, _("Problem with user script execution [%s].") + self.customUserMsg) elif 0 < len(self.customUserCmdList): cmd = self.customUserCmdList.pop() self.cmd = iptv_system(cmd, self.__userCmdFinished) else: self.stepFinished(0, _("Completed.\n") + self.customUserMsg)
def stepRemoveUnnecessaryFiles(self): printDBG("stepRemoveUnnecessaryFiles") playerSelectorPath = os_path.join(self.ExtensionTmpPath, 'IPTVPlayer/icons/PlayerSelector/') logosPath = os_path.join(self.ExtensionTmpPath, 'IPTVPlayer/icons/logos/') hostsPath = os_path.join(self.ExtensionTmpPath, 'IPTVPlayer/hosts/') cmds = [] iconSize = int(config.plugins.iptvplayer.IconsSize.value) if not config.plugins.iptvplayer.ListaGraficzna.value: iconSize = 0 for size in [135, 120, 100]: if size != iconSize: cmds.append('rm -f %s' % (playerSelectorPath + '*{0}.png'.format(size)) ) cmds.append('rm -f %s' % (playerSelectorPath + 'marker{0}.png'.format(size + 45)) ) # removing not needed hosts if config.plugins.iptvplayer.remove_diabled_hosts.value: enabledHostsList = GetEnabledHostsList() hostsFromList = GetHostsList(fromList=True, fromHostFolder=False) hostsFromFolder = GetHostsList(fromList=False, fromHostFolder=True) hostsToRemove = [] for hostItem in hostsFromList: if hostItem not in enabledHostsList and hostItem in hostsFromFolder: cmds.append('rm -f %s' % (playerSelectorPath + '{0}*.png'.format(hostItem)) ) cmds.append('rm -f %s' % (logosPath + '{0}logo.png'.format(hostItem)) ) cmds.append('rm -f %s' % (hostsPath + 'host{0}.py*'.format(hostItem)) ) # we need to prepare temporary file with removing cmds because cmd can be to long cmdFilePath = GetTmpDir('.iptv_remove_cmds.sh') cmds.insert(0, '#!/bin/sh') cmds.append('exit 0\n') text = '\n'.join(cmds) WriteTextFile(cmdFilePath, text, 'ascii') cmd = '/bin/sh "{0}" '.format(cmdFilePath) #cmd = '/bin/sh "{0}" && rm -rf "{1}" '.format(cmdFilePath, cmdFilePath) else: cmd = ' && '.join(cmds) printDBG("stepRemoveUnnecessaryFiles cmdp[%s]" % cmd) self.cmd = iptv_system( cmd, self.__removeUnnecessaryFilesCmdFinished )
def stepInstallNewVersion(self): cmd = 'cp -rf "%s"/* "%s"/ 2>&1' % (os_path.join( self.ExtensionTmpPath, 'IPTVPlayer'), os_path.join(self.ExtensionPath, 'IPTVPlayer')) printDBG('UpdateMainAppImpl.stepInstallNewVersion cmd[%s]' % cmd) self.cmd = iptv_system(cmd, self.__installNewVersionCmdFinished)
def _system(self, session, cmd): printDBG("iptv_execute._system: Here we must be in main thread context: [%s]" % threading.current_thread()); self.iptv_system = iptv_system(cmd, self._callBack) return iptv_execute.WAIT_RET
def isWorkingCorrectly(self, callBackFun): self.iptv_sys = iptv_system( "wget 2>&1 ", boundFunction(self._checkWorkingCallBack, callBackFun) )
def _dummyCall(self, callback): self._methodCallBack = callback cmd = "sleep 0 > > /dev/null 2>&1" self.iptv_sys = iptv_system(cmd, callback)
def isWorkingCorrectly(self, callBackFun): self.iptv_sys = iptv_system( "python " + DMHelper.GET_PWGET_PATH() + " 2>&1", boundFunction(self._checkWorkingCallBack, callBackFun) )
def stepInstallNewVersion(self): cmd = 'cp -rf "%s"/* "%s"/ 2>&1' % (os_path.join(self.ExtensionTmpPath, 'IPTVPlayer'), os_path.join(self.ExtensionPath, 'IPTVPlayer')) printDBG('UpdateMainAppImpl.stepInstallNewVersion cmd[%s]' % cmd) self.cmd = iptv_system( cmd, self.__installNewVersionCmdFinished )
def isWorkingCorrectly(self, callBackFun): self.iptv_sys = iptv_system( DMHelper.GET_FFMPEG_PATH() + ' -version ' + " 2>&1 ", boundFunction(self._checkWorkingCallBack, callBackFun))
def isWorkingCorrectly(self, callBackFun): self.iptv_sys = iptv_system( 'ffmpeg -version ' + " 2>&1 ", boundFunction(self._checkWorkingCallBack, callBackFun) )
def _isWgetWorkingCorrectly(self, callBackFun): self.iptv_sys = iptv_system( DMHelper.GET_WGET_PATH() + " -V 2>&1 ", boundFunction(self._checkWgetWorkingCallBack, callBackFun) )
def _detect(self): self.cmd = iptv_system(self.cmdTabs[self.detectIdx], self._cmdFinished)
def isWorkingCorrectly(self, callBackFun): self.iptv_sys = iptv_system( DMHelper.GET_WGET_PATH() + " -V 2>&1 ", boundFunction(self._checkWorkingCallBack, callBackFun))
def _RealDoSearchMovie(self): cmd = GetPyScriptCmd('imdb') + ' find_title "{0}" 2>&1 '.format(self.tmpData['title']) printDBG('_RealDoSearchMovie cmd[%s]' % cmd) self.iptv_sys = iptv_system(cmd, self._doSearchMovieCallback)