def start(self, url, filePath, params = {}): ''' Owervrite start from BaseDownloader ''' self.url = url self.filePath = filePath self.downloaderParams = params self.fileExtension = '' # should be implemented in future self.outData = '' self.contentType = 'unknown' # baseWgetCmd = DMHelper.getBaseWgetCmd(self.downloaderParams) # TODO: add all HTTP parameters addParams = '' meta = strwithmeta(url).meta if 'iptv_m3u8_key_uri_replace_old' in meta and 'iptv_m3u8_key_uri_replace_new' in meta: addParams = ' -k "%s" -n "%s" ' % (meta['iptv_m3u8_key_uri_replace_old'], meta['iptv_m3u8_key_uri_replace_new']) cmd = DMHelper.getBaseHLSDLCmd(self.downloaderParams) + (' "%s"' % self.url) + addParams + (' -o "%s"' % self.filePath) + ' > /dev/null' printDBG("HLSDownloader::start cmd[%s]" % cmd) self.console = eConsoleAppContainer() self.console_appClosed_conn = eConnectCallback(self.console.appClosed, self._cmdFinished) self.console_stderrAvail_conn = eConnectCallback(self.console.stderrAvail, self._dataAvail) self.console.execute( E2PrioFix( cmd ) ) self.status = DMHelper.STS.DOWNLOADING self.onStart() return BaseDownloader.CODE_OK
def start(self, url, filePath, params={}): ''' Owervrite start from BaseDownloader ''' self.url = url self.filePath = filePath self.downloaderParams = params self.fileExtension = '' # should be implemented in future self.outData = '' self.contentType = 'unknown' # baseWgetCmd = DMHelper.getBaseWgetCmd(self.downloaderParams) # TODO: add all HTTP parameters addParams = '' meta = strwithmeta(url).meta if 'iptv_m3u8_key_uri_replace_old' in meta and 'iptv_m3u8_key_uri_replace_new' in meta: addParams = ' -k "%s" -n "%s" ' % ( meta['iptv_m3u8_key_uri_replace_old'], meta['iptv_m3u8_key_uri_replace_new']) if 'iptv_m3u8_seg_download_retry' in meta: addParams += ' -w %s ' % meta['iptv_m3u8_seg_download_retry'] if self.url.startswith("merge://"): try: urlsKeys = self.url.split('merge://', 1)[1].split('|') url = meta[urlsKeys[-1]] addParams += ' -a "%s" ' % meta[urlsKeys[0]] except Exception: printExc() else: url = self.url cmd = DMHelper.getBaseHLSDLCmd(self.downloaderParams) + ( ' "%s"' % url) + addParams + (' -o "%s"' % self.filePath) printDBG("HLSDownloader::start cmd[%s]" % cmd) self.console = eConsoleAppContainer() self.console_appClosed_conn = eConnectCallback(self.console.appClosed, self._cmdFinished) self.console_stderrAvail_conn = eConnectCallback( self.console.stderrAvail, self._dataAvail) self.console.execute(E2PrioFix(cmd)) self.status = DMHelper.STS.DOWNLOADING self.onStart() return BaseDownloader.CODE_OK