def __parseCommands(self, item, src, convCommands): common.log('_parseCommands called') # helping function def parseCommand(txt): command = {"command": txt, "params": ""} if txt.find("(") > -1: command["command"] = txt[0:txt.find("(")] command["params"] = txt[len(command["command"]) + 1:-1] return command for convCommand in convCommands: pComm = parseCommand(convCommand) command = pComm["command"] params = pComm["params"] if params.find('@REFERER@'): referer = item['referer'] if not referer: referer = '' params = params.replace('@REFERER@', referer) if command == 'convDate': src = cc.convDate(params, src) elif command == 'convTimestamp': src = cc.convTimestamp(params, src) elif command == 'select': src = cc.select(params, src) if not src: continue elif command == 'unicode_escape': src = src.decode('unicode-escape') elif command == 'replaceFromDict': dictName = str(params.strip('\'')) path = os.path.join(common.Paths.dictsDir, dictName + '.txt') if not (os.path.exists(path)): common.log('Dictionary file not found: ' + path) continue src = cc.replaceFromDict(path, src) elif command == 'time': src = time.time() elif command == 'timediff': src = dt.timediff(src,params.strip('\'')) elif command == 'offset': src = cc.offset(params, src) elif command == 'getSource': src = cc.getSource(params, src) elif command == 'quote': try: src = urllib.quote(params.strip("'").replace('%s', src),'') except: print (">>>>>>>>>>>>>",src) cleanParams = params.strip("'") cleanParams = cleanParams.replace("%s",src) src = urllib.quote(cleanParams.encode('utf-8'),'') elif command == 'unquote': src = urllib.unquote(params.strip("'").replace('%s', src)) elif command == 'parseText': src = cc.parseText(item, params, src) elif command == 'getInfo': src = cc.getInfo(item, params, src) elif command == 'getXML': src = cc.getInfo(item, params, src, xml=True) elif command == 'getMobile': src = cc.getInfo(item, params, src, mobile=True) elif command == 'decodeBase64': src = cc.decodeBase64(src) elif command == 'decodeRawUnicode': src = cc.decodeRawUnicode(src) elif command == 'resolve': src = cc.resolve(src) elif command == 'decodeXppod': src = cc.decodeXppod(src) elif command == 'decodeXppodHLS': src = cc.decodeXppod_hls(src) elif command == 'replace': src = cc.replace(params, src) elif command == 'replaceRegex': src = cc.replaceRegex(params, src) elif command == 'ifEmpty': src = cc.ifEmpty(item, params, src) elif command == 'isEqual': src = cc.isEqual(item, params, src) elif command == 'ifFileExists': src = cc.ifFileExists(item, params, src) elif command == 'ifExists': src = cc.ifExists(item, params, src) elif command == 'encryptJimey': src = crypt.encryptJimey(params.strip("'").replace('%s', src)) elif command == 'gAesDec': src = crypt.gAesDec(src,item.infos[params]) elif command == 'aesDec': src = crypt.aesDec(src,item.infos[params]) elif command == 'getCookies': src = cc.getCookies(params, src) elif command == 'destreamer': src = crypt.destreamer(params.strip("'").replace('%s', src)) elif command == 'unixTimestamp': src = dt.getUnixTimestamp() elif command == 'rowbalance': src = rb.get() elif command == 'urlMerge': src = cc.urlMerge(params, src) elif command == 'translate': try: src = common.translate(int(src)) except: pass elif command == 'camelcase': src = string.capwords(string.capwords(src, '-')) elif command == 'lowercase': src = string.lower(src) elif command == 'reverse': src = src[::-1] elif command == 'demystify': print 'demystify' src = crypt.doDemystify(src) print 'after demystify',src elif command == 'random': paramArr = params.split(',') minimum = int(paramArr[0]) maximum = int(paramArr[1]) src = str(random.randrange(minimum,maximum)) elif command == 'debug': common.log('Debug from cfg file: ' + src) elif command == 'divide': paramArr = params.split(',') a = paramArr[0].strip().strip("'").replace('%s', src) a = resolveVariable(a, item) b = paramArr[1].strip().strip("'").replace('%s', src) b = resolveVariable(b, item) if not a or not b: continue a = int(a) b = int(b) try: src = str(a/b) except: pass return src
def __parseCommands(self, item, src, convCommands): #common.log('_parseCommands called') # helping function def parseCommand(txt): command = {"command": txt, "params": ""} if txt.find("(") > -1: command["command"] = txt[0:txt.find("(")] command["params"] = txt[len(command["command"]) + 1:-1] return command try: src = src.encode('utf-8') except: pass for convCommand in convCommands: pComm = parseCommand(convCommand) command = pComm["command"] params = pComm["params"] if params.find('@REFERER@'): referer = item['referer'] if not referer: referer = '' params = params.replace('@REFERER@', referer) if command == 'convDate': src = cc.convDate(params, src) elif command == 'convTimestamp': src = cc.convTimestamp(params, src) elif command == 'select': src = cc.select(params, src) if not src: continue elif command == 'smart_unicode': src = enc.smart_unicode(params.strip("'").replace('%s', src)) elif command == 'safeGerman': src = enc.safeGerman(src) elif command == 'safeRegex': src = enc.safeRegexEncoding( params.strip("'").replace('%s', enc.smart_unicode(src))) elif command == 'replaceFromDict': dictName = str(params.strip('\'')) path = os.path.join(common.Paths.dictsDir, dictName + '.txt') if not (os.path.exists(path)): common.log('Dictionary file not found: ' + path) continue src = cc.replaceFromDict(path, src) elif command == 'time': src = time.time() elif command == 'timediff': src = dt.timediff(src, params.strip('\'')) elif command == 'offset': src = cc.offset(params, src) elif command == 'getSource': src = cc.getSource(params, src) elif command == 'getRedirect': src = get_redirected_url(params.strip("'").replace('%s', src)) elif command == 'quote': try: src = urllib.quote( params.strip("'").replace('%s', urllib.quote(src))) except: cleanParams = params.strip("'") cleanParams = cleanParams.replace("%s", src.encode('utf-8')) src = urllib.quote(cleanParams) elif command == 'unquote': src = urllib.unquote(params.strip("'").replace('%s', src)) elif command == 'parseText': src = cc.parseText(item, params, src) elif command == 'getInfo': src = cc.getInfo(item, params, src) elif command == 'decodeBase64': src = cc.decodeBase64(src) elif command == 'decodeRawUnicode': src = cc.decodeRawUnicode(src) elif command == 'replace': src = cc.replace(params, src) elif command == 'replaceRegex': src = cc.replaceRegex(params, src) elif command == 'ifEmpty': src = cc.ifEmpty(item, params, src) elif command == 'isEqual': src = cc.isEqual(item, params, src) elif command == 'ifFileExists': src = cc.ifFileExists(item, params, src) elif command == 'ifExists': src = cc.ifExists(item, params, src) elif command == 'encryptJimey': src = crypt.encryptJimey(params.strip("'").replace('%s', src)) elif command == 'destreamer': src = crypt.destreamer(params.strip("'").replace('%s', src)) elif command == 'unixTimestamp': src = dt.getUnixTimestamp() elif command == 'urlMerge': src = cc.urlMerge(params, src) elif command == 'translate': try: src = common.translate(int(src)) except: pass elif command == 'camelcase': src = enc.smart_unicode(src) src = string.capwords(string.capwords(src, '-')) elif command == 'demystify': print 'demystify' src = crypt.doDemystify(src) print 'after demystify', src elif command == 'random': paramArr = params.split(',') minimum = int(paramArr[0]) maximum = int(paramArr[1]) src = str(random.randrange(minimum, maximum)) elif command == 'debug': common.log('Debug from cfg file: ' + src) elif command == 'divide': paramArr = params.split(',') a = paramArr[0].strip().strip("'").replace('%s', src) a = resolveVariable(a, item) b = paramArr[1].strip().strip("'").replace('%s', src) b = resolveVariable(b, item) if not a or not b: continue a = int(a) b = int(b) try: src = str(a / b) except: pass return src
def __parseCommands(self, item, src, convCommands): common.log('_parseCommands called') #common.log('_parseCommands called %s | %s | %s' % (item,src, convCommands)) # helping function def parseCommand(txt): command = {"command": txt, "params": ""} if txt.find("(") > -1: command["command"] = txt[0:txt.find("(")] command["params"] = txt[len(command["command"]) + 1:-1] return command for convCommand in convCommands: pComm = parseCommand(convCommand) command = pComm["command"] params = pComm["params"] if params.find('@REFERER@'): referer = item['referer'] if not referer: referer = '' params = params.replace('@REFERER@', referer) if command == 'convDate': src = cc.convDate(params, src) elif command == 'currenturl': print("--------------curenturl ------------------------") src = getFileContent( os.path.join(common.Paths.cacheDir, 'lasturl')) print("--------------curenturl ------------------------", src) elif command == 'iklub': common.log('--------------ikulb ------------------------') common.log('src: %s' % src) src = cc.decodeIklub(src) common.log('src: %s' % src) #common.log('--------------ikulb ------------------------') elif command == 'decodemrknow2': common.log( '--------------decodemrknow2 ------------------------') #common.log('src: %s' % src) src = cc.decodeMrknow2(src) #common.log('src: %s' % src) elif command == 'convTimestamp': src = cc.convTimestamp(params, src) elif command == 'select': src = cc.select(params, src) if not src: continue elif command == 'unicode_escape': src = src.decode('unicode-escape') elif command == 'replaceFromDict': dictName = str(params.strip('\'')) path = os.path.join(common.Paths.dictsDir, dictName + '.txt') if not (os.path.exists(path)): common.log('Dictionary file not found: ' + path) continue src = cc.replaceFromDict(path, src) elif command == 'time': src = time.time() elif command == 'timediff': src = dt.timediff(src, params.strip('\'')) elif command == 'offset': src = cc.offset(params, src) elif command == 'getSource': src = cc.getSource(params, src) elif command == 'quote': try: src = urllib.quote( params.strip("'").replace('%s', src), '') except: cleanParams = params.strip("'") cleanParams = cleanParams.replace("%s", src) src = urllib.quote(cleanParams.encode('utf-8'), '') elif command == 'unquote': src = urllib.unquote(params.strip("'").replace('%s', src)) elif command == 'parseText': src = cc.parseText(item, params, src) elif command == 'getInfo': src = cc.getInfo(item, params, src) elif command == 'getXML': src = cc.getInfo(item, params, src, xml=True) elif command == 'getMobile': src = cc.getInfo(item, params, src, mobile=True) elif command == 'decodeBase64': src = cc.decodeBase64(src) elif command == 'decodeRawUnicode': src = cc.decodeRawUnicode(src) elif command == 'resolve': src = cc.resolve(src) elif command == 'decodeXppod': src = cc.decodeXppod(src) elif command == 'decodeXppodHLS': src = cc.decodeXppod_hls(src) elif command == 'decodeMrknow1': src = cc.decodeMrknow1(src) elif command == 'replace': src = cc.replace(params, src) elif command == 'replaceRegex': src = cc.replaceRegex(params, src) elif command == 'ifEmpty': src = cc.ifEmpty(item, params, src) elif command == 'isEqual': src = cc.isEqual(item, params, src) elif command == 'ifFileExists': src = cc.ifFileExists(item, params, src) elif command == 'ifExists': src = cc.ifExists(item, params, src) elif command == 'encryptJimey': src = crypt.encryptJimey(params.strip("'").replace('%s', src)) elif command == 'gAesDec': src = crypt.gAesDec(src, item.infos[params]) elif command == 'aesDec': src = crypt.aesDec(src, item.infos[params]) elif command == 'getCookies': src = cc.getCookies(params, src) elif command == 'destreamer': src = crypt.destreamer(params.strip("'").replace('%s', src)) elif command == 'unixTimestamp': src = dt.getUnixTimestamp() elif command == 'rowbalance': src = rb.get() elif command == 'urlMerge': src = cc.urlMerge(params, src) elif command == 'translate': try: src = common.translate(int(src)) except: pass elif command == 'camelcase': src = string.capwords(string.capwords(src, '-')) elif command == 'lowercase': src = string.lower(src) elif command == 'reverse': src = src[::-1] elif command == 'demystify': print 'demystify' src = crypt.doDemystify(src) print 'after demystify', src elif command == 'random': paramArr = params.split(',') minimum = int(paramArr[0]) maximum = int(paramArr[1]) src = str(random.randrange(minimum, maximum)) elif command == 'debug': common.log('--------------debug ------------------------') common.log('Debug from cfg file: ' + src) elif command == 'divide': paramArr = params.split(',') a = paramArr[0].strip().strip("'").replace('%s', src) a = resolveVariable(a, item) b = paramArr[1].strip().strip("'").replace('%s', src) b = resolveVariable(b, item) if not a or not b: continue a = int(a) b = int(b) try: src = str(a / b) except: pass return src
def __parseCommands(self, item, src, convCommands): #common.log('_parseCommands called') # helping function def parseCommand(txt): command = {"command": txt, "params": ""} if txt.find("(") > -1: command["command"] = txt[0:txt.find("(")] command["params"] = txt[len(command["command"]) + 1:-1] return command try: src = src.encode('utf-8') except: pass for convCommand in convCommands: pComm = parseCommand(convCommand) command = pComm["command"] params = pComm["params"] if params.find('@REFERER@'): referer = item['referer'] if not referer: referer = '' params = params.replace('@REFERER@', referer) if command == 'convDate': src = cc.convDate(params, src) elif command == 'convTimestamp': src = cc.convTimestamp(params, src) elif command == 'select': src = cc.select(params, src) if not src: continue elif command == 'smart_unicode': src = enc.smart_unicode(params.strip("'").replace('%s', src)) elif command == 'safeGerman': src = enc.safeGerman(src) elif command == 'safeRegex': src = enc.safeRegexEncoding(params.strip("'").replace('%s', enc.smart_unicode(src))) elif command == 'replaceFromDict': dictName = str(params.strip('\'')) path = os.path.join(common.Paths.dictsDir, dictName + '.txt') if not (os.path.exists(path)): common.log('Dictionary file not found: ' + path) continue src = cc.replaceFromDict(path, src) elif command == 'time': src = time.time() elif command == 'timediff': src = dt.timediff(src,params.strip('\'')) elif command == 'offset': src = cc.offset(params, src) elif command == 'getSource': src = cc.getSource(params, src) elif command == 'getRedirect': src = get_redirected_url(params.strip("'").replace('%s', src)) elif command == 'quote': try: src = urllib.quote(params.strip("'").replace('%s', urllib.quote(src))) except: cleanParams = params.strip("'") cleanParams = cleanParams.replace("%s",src.encode('utf-8')) src = urllib.quote(cleanParams) elif command == 'unquote': src = urllib.unquote(params.strip("'").replace('%s', src)) elif command == 'parseText': src = cc.parseText(item, params, src) elif command == 'getInfo': src = cc.getInfo(item, params, src) elif command == 'decodeBase64': src = cc.decodeBase64(src) elif command == 'decodeRawUnicode': src = cc.decodeRawUnicode(src) elif command == 'replace': src = cc.replace(params, src) elif command == 'replaceRegex': src = cc.replaceRegex(params, src) elif command == 'ifEmpty': src = cc.ifEmpty(item, params, src) elif command == 'isEqual': src = cc.isEqual(item, params, src) elif command == 'ifFileExists': src = cc.ifFileExists(item, params, src) elif command == 'ifExists': src = cc.ifExists(item, params, src) elif command == 'encryptJimey': src = crypt.encryptJimey(params.strip("'").replace('%s', src)) elif command == 'destreamer': src = crypt.destreamer(params.strip("'").replace('%s', src)) elif command == 'unixTimestamp': src = dt.getUnixTimestamp() elif command == 'urlMerge': src = cc.urlMerge(params, src) elif command == 'translate': try: src = common.translate(int(src)) except: pass elif command == 'camelcase': src = enc.smart_unicode(src) src = string.capwords(string.capwords(src, '-')) elif command == 'random': paramArr = params.split(',') minimum = int(paramArr[0]) maximum = int(paramArr[1]) src = str(random.randrange(minimum,maximum)) elif command == 'debug': common.log('Debug from cfg file: ' + src) elif command == 'divide': paramArr = params.split(',') a = paramArr[0].strip().strip("'").replace('%s', src) a = resolveVariable(a, item) b = paramArr[1].strip().strip("'").replace('%s', src) b = resolveVariable(b, item) if not a or not b: continue a = int(a) b = int(b) try: src = a/b except: pass return src
def __parseCommands(self, item, src, convCommands): common.log('_parseCommands called ') # helping function def parseCommand(txt): command = {"command": txt, "params": ""} if txt.find("(") > -1: command["command"] = txt[0:txt.find("(")] command["params"] = txt[len(command["command"]) + 1:-1] return command for convCommand in convCommands: pComm = parseCommand(convCommand) command = pComm["command"] params = pComm["params"] if params.find('@REFERER@'): referer = item['referer'] if not referer: referer = '' params = params.replace('@REFERER@', referer) if command == 'convDate': src = cc.convDate(params, src) elif command == 'convTimestamp': src = cc.convTimestamp(params, src) elif command == 'convDateUtil': src = cc.convDateUtil(params, src) elif command == 'select': src = cc.select(params, src) if not src: continue elif command == 'unicode_escape': try: src = src.decode('unicode-escape') except: src = src elif command == 'replaceFromDict': dictName = str(params.strip('\'')) path = os.path.join(common.Paths.dictsDir, dictName + '.txt') if not (os.path.exists(path)): common.log('Dictionary file not found: ' + path) continue src = cc.replaceFromDict(path, src) elif command == 'time': src = time.time() elif command == 'timediff': src = dt.timediff(src, params.strip('\'')) elif command == 'offset': src = cc.offset(params, src) elif command == 'getSource': src = cc.getSource(params, src) elif command == 'quote': try: src = urllib.quote( params.strip("'").replace('%s', src), '') except: cleanParams = params.strip("'") cleanParams = cleanParams.replace("%s", src) src = urllib.quote(cleanParams.encode('utf-8'), '') elif command == 'unquote': src = urllib.unquote(params.strip("'").replace('%s', src)) elif command == 'parseText': src = cc.parseText(item, params, src) elif command == 'getInfo': src = cc.getInfo(item, params, src) elif command == 'getXML': src = cc.getInfo(item, params, src, xml=True) elif command == 'getMobile': src = cc.getInfo(item, params, src, mobile=True) elif command == 'decodeBase64': src = cc.decodeBase64(src) elif command == 'decodeBase64Special': src = cc.decodeBase64Special(params, src) elif command == 'encodeBase64': src = cc.encodeBase64(src) elif command == 'decodeRawUnicode': src = cc.decodeRawUnicode(src) elif command == 'decodeHex': src = cc.hex2ascii(src) elif command == 'resolve': src = cc.resolve(src) elif command == 'decodeXppod': src = cc.decodeXppod(src) elif command == 'decodeXppodHLS': if 'stkey' in item.infos: src = src.replace(item.infos['stkey'], '') src = cc.decodeXppod_hls(src) elif command == 'decodeBCast': src = cc.bcast64(src) elif command == 'replace': src = cc.replace(item, params, src) elif command == 'replaceRegex': src = cc.replaceRegex(item, params, src) elif command == 'subRegex': src = cc.subRegex(item, params, src) elif command == 'ifEmpty': src = cc.ifEmpty(item, params, src) elif command == 'ifContains': src = cc.ifContains(item, params, src) elif command == 'isEqual': src = cc.isEqual(item, params, src) elif command == 'ifFileExists': src = cc.ifFileExists(item, params, src) elif command == 'ifExists': src = cc.ifExists(item, params, src) elif command == 'encryptJimey': src = crypt.encryptJimey(params.strip("'").replace('%s', src)) elif command == 'gAesDec': src = crypt.gAesDec(src, item.infos[params]) elif command == 'cjsAesDec': src = crypt.cjsAesDec(src, item.infos[params]) elif command == 'jsCryptoAESDec': src = crypt.jsCryptoAESDec(src, item.infos[params]) elif command == 'decryptMarioCS': src = crypt.decryptMarioCS(src, item.infos[params]) elif command == 'm3u8AesDec': src = crypt.m3u8AesDec(src, item.infos[params]) elif command == 'drenchDec': src = crypt.drenchDec(src, item.infos[params]) elif command == 'onetv': src = crypt.onetv(src) elif command == 'getCookies': src = cc.getCookies(params, src) elif command == 'destreamer': src = crypt.destreamer(params.strip("'").replace('%s', src)) elif command == 'unixTimestamp': src = dt.getUnixTimestamp() elif command == 'rowbalance': src = rb.get(src) elif command == 'simpleToken': src = cc.simpleToken(src) #elif command == 'wasteg': # paramArr = params.split(',') # ref = str(paramArr[1]) # src = getsaw.compose(ref, src) elif command == 'saurusDec': src = crypt.decryptSaurus(src) elif command == 'urlMerge': src = cc.urlMerge(params, src) elif command == 'translate': try: src = common.translate(int(src)) except: pass elif command == 'camelcase': src = string.capwords(string.capwords(src, '-')) elif command == 'lowercase': src = string.lower(src) elif command == 'reverse': src = src[::-1] elif command == 'demystify': src = crypt.doDemystify(src) elif command == 'random': paramArr = params.split(',') minimum = int(paramArr[0]) maximum = int(paramArr[1]) src = str(random.randrange(minimum, maximum)) elif command == 'randomfloat': paramArr = params.split(',') minimum = float(paramArr[0]) maximum = float(paramArr[1]) src = str(random.uniform(minimum, maximum)) elif command == 'debug': common.log('Debug from cfg file: ' + src) # elif command == 'startLivestreamerProxy': # libPath = os.path.join(common.Paths.rootDir, 'lib') # serverPath = os.path.join(libPath, 'livestreamerXBMCLocalProxy.py') # try: # import requests # requests.get('http://127.0.0.1:19000/version') # proxyIsRunning = True # except: # proxyIsRunning = False # if not proxyIsRunning: # xbmc.executebuiltin('RunScript(' + serverPath + ')') # elif command == 'startLivestreamerProxy': # libPath = os.path.join(common.Paths.rootDir, 'service') # serverPath = os.path.join(libPath, 'livestreamerXBMCLocalProxy.py') # try: # import requests # requests.get('http://127.0.0.1:19000/version') # proxyIsRunning = True # except: # proxyIsRunning = False # if not proxyIsRunning: # xbmc.executebuiltin('RunScript(' + serverPath + ')') #xbmc.sleep(500) # common.log('Debug from cfg file: ' + requests.get('http://127.0.0.1:19001/version').text) elif command == 'divide': paramArr = params.split(',') a = paramArr[0].strip().strip("'").replace('%s', src) a = resolveVariable(a, item) b = paramArr[1].strip().strip("'").replace('%s', src) b = resolveVariable(b, item) if not a or not b: continue a = int(a) b = int(b) try: src = str(a / b) except: pass return src
def __parseCommands(self, item, src, convCommands): # common.log('_parseCommands called') # helping function def parseCommand(txt): command = {"command": txt, "params": ""} if txt.find("(") > -1: command["command"] = txt[0 : txt.find("(")] command["params"] = txt[len(command["command"]) + 1 : -1] return command try: src = src.encode("utf-8") except: pass for convCommand in convCommands: pComm = parseCommand(convCommand) command = pComm["command"] params = pComm["params"] if params.find("@REFERER@"): referer = item["referer"] if not referer: referer = "" params = params.replace("@REFERER@", referer) if command == "convDate": src = cc.convDate(params, src) elif command == "convTimestamp": src = cc.convTimestamp(params, src) elif command == "select": src = cc.select(params, src) if not src: continue elif command == "smart_unicode": src = enc.smart_unicode(params.strip("'").replace("%s", src)) elif command == "safeGerman": src = enc.safeGerman(src) elif command == "safeRegex": src = enc.safeRegexEncoding(params.strip("'").replace("%s", enc.smart_unicode(src))) elif command == "replaceFromDict": dictName = str(params.strip("'")) path = os.path.join(common.Paths.dictsDir, dictName + ".txt") if not (os.path.exists(path)): common.log("Dictionary file not found: " + path) continue src = cc.replaceFromDict(path, src) elif command == "time": src = time.time() elif command == "timediff": src = dt.timediff(src, params.strip("'")) elif command == "offset": src = cc.offset(params, src) elif command == "getSource": src = cc.getSource(params, src) elif command == "getRedirect": src = get_redirected_url(params.strip("'").replace("%s", src)) elif command == "quote": try: src = urllib.quote(params.strip("'").replace("%s", urllib.quote(src))) except: cleanParams = params.strip("'") cleanParams = cleanParams.replace("%s", src.encode("utf-8")) src = urllib.quote(cleanParams) elif command == "unquote": src = urllib.unquote(params.strip("'").replace("%s", src)) elif command == "parseText": src = cc.parseText(item, params, src) elif command == "getInfo": src = cc.getInfo(item, params, src) elif command == "decodeBase64": src = cc.decodeBase64(src) elif command == "decodeRawUnicode": src = cc.decodeRawUnicode(src) elif command == "replace": src = cc.replace(params, src) elif command == "replaceRegex": src = cc.replaceRegex(params, src) elif command == "ifEmpty": src = cc.ifEmpty(item, params, src) elif command == "isEqual": src = cc.isEqual(item, params, src) elif command == "ifFileExists": src = cc.ifFileExists(item, params, src) elif command == "ifExists": src = cc.ifExists(item, params, src) elif command == "encryptJimey": src = crypt.encryptJimey(params.strip("'").replace("%s", src)) elif command == "destreamer": src = crypt.destreamer(params.strip("'").replace("%s", src)) elif command == "unixTimestamp": src = dt.getUnixTimestamp() elif command == "urlMerge": src = cc.urlMerge(params, src) elif command == "translate": try: src = common.translate(int(src)) except: pass elif command == "camelcase": src = enc.smart_unicode(src) src = string.capwords(string.capwords(src, "-")) elif command == "demystify": print "demystify" src = crypt.doDemystify(src) print "after demystify", src elif command == "random": paramArr = params.split(",") minimum = int(paramArr[0]) maximum = int(paramArr[1]) src = str(random.randrange(minimum, maximum)) elif command == "debug": common.log("Debug from cfg file: " + src) elif command == "divide": paramArr = params.split(",") a = paramArr[0].strip().strip("'").replace("%s", src) a = resolveVariable(a, item) b = paramArr[1].strip().strip("'").replace("%s", src) b = resolveVariable(b, item) if not a or not b: continue a = int(a) b = int(b) try: src = str(a / b) except: pass return src
def __parseCommands(self, item, src, convCommands): common.log('_parseCommands called') # helping function def parseCommand(txt): command = {"command": txt, "params": ""} if txt.find("(") > -1: command["command"] = txt[0:txt.find("(")] command["params"] = txt[len(command["command"]) + 1:-1] return command for convCommand in convCommands: pComm = parseCommand(convCommand) command = pComm["command"] params = pComm["params"] if params.find('@REFERER@'): referer = item['referer'] if not referer: referer = '' params = params.replace('@REFERER@', referer) if command == 'convDate': src = cc.convDate(params, src) elif command == 'convTimestamp': src = cc.convTimestamp(params, src) elif command == 'convDateUtil': src = cc.convDateUtil(params, src) elif command == 'select': src = cc.select(params, src) if not src: continue elif command == 'unicode_escape': src = src.decode('unicode-escape') elif command == 'replaceFromDict': dictName = str(params.strip('\'')) path = os.path.join(common.Paths.dictsDir, dictName + '.txt') if not (os.path.exists(path)): common.log('Dictionary file not found: ' + path) continue src = cc.replaceFromDict(path, src) elif command == 'time': src = time.time() elif command == 'timediff': src = dt.timediff(src,params.strip('\'')) elif command == 'offset': src = cc.offset(params, src) elif command == 'getSource': src = cc.getSource(params, src) elif command == 'quote': try: src = urllib.quote(params.strip("'").replace('%s', src),'') except: cleanParams = params.strip("'") cleanParams = cleanParams.replace("%s",src) src = urllib.quote(cleanParams.encode('utf-8'),'') elif command == 'unquote': src = urllib.unquote(params.strip("'").replace('%s', src)) elif command == 'parseText': src = cc.parseText(item, params, src) elif command == 'getInfo': src = cc.getInfo(item, params, src) elif command == 'getXML': src = cc.getInfo(item, params, src, xml=True) elif command == 'getMobile': src = cc.getInfo(item, params, src, mobile=True) elif command == 'decodeBase64': src = cc.decodeBase64(src) elif command == 'encodeBase64': src = cc.encodeBase64(src) elif command == 'decodeRawUnicode': src = cc.decodeRawUnicode(src) elif command == 'resolve': src = cc.resolve(src) elif command == 'decodeXppod': src = cc.decodeXppod(src) elif command == 'decodeXppodHLS': if 'stkey' in item.infos: src = src.replace(item.infos['stkey'],'') src = cc.decodeXppod_hls(src) elif command == 'decodeBCast': src = cc.bcast64(src) elif command == 'replace': src = cc.replace(params, src) elif command == 'replaceRegex': src = cc.replaceRegex(params, src) elif command == 'ifEmpty': src = cc.ifEmpty(item, params, src) elif command == 'isEqual': src = cc.isEqual(item, params, src) elif command == 'ifFileExists': src = cc.ifFileExists(item, params, src) elif command == 'ifExists': src = cc.ifExists(item, params, src) elif command == 'encryptJimey': src = crypt.encryptJimey(params.strip("'").replace('%s', src)) elif command == 'gAesDec': src = crypt.gAesDec(src,item.infos[params]) elif command == 'cjsAesDec': src = crypt.cjsAesDec(src,item.infos[params]) elif command == 'm3u8AesDec': src = crypt.m3u8AesDec(src,item.infos[params]) elif command == 'drenchDec': src = crypt.drenchDec(src,item.infos[params]) elif command == 'onetv': src = crypt.onetv(src) elif command == 'getCookies': src = cc.getCookies(params, src) elif command == 'destreamer': src = crypt.destreamer(params.strip("'").replace('%s', src)) elif command == 'unixTimestamp': src = dt.getUnixTimestamp() elif command == 'rowbalance': src = rb.get(src) elif command == 'simpleToken': src = cc.simpleToken(src) #elif command == 'wasteg': # paramArr = params.split(',') # ref = str(paramArr[1]) # src = getsaw.compose(ref, src) elif command == 'saurusDec': src = crypt.decryptSaurus(src) elif command == 'urlMerge': src = cc.urlMerge(params, src) elif command == 'translate': try: src = common.translate(int(src)) except: pass elif command == 'camelcase': src = string.capwords(string.capwords(src, '-')) elif command == 'lowercase': src = string.lower(src) elif command == 'reverse': src = src[::-1] elif command == 'demystify': src = crypt.doDemystify(src) elif command == 'random': paramArr = params.split(',') minimum = int(paramArr[0]) maximum = int(paramArr[1]) src = str(random.randrange(minimum,maximum)) elif command == 'debug': common.log('Debug from cfg file: ' + src) elif command == 'startLivestreamerProxy': libPath = os.path.join(common.Paths.rootDir, 'lib') serverPath = os.path.join(libPath, 'livestreamerXBMCLocalProxy.py') try: import requests requests.get('http://127.0.0.1:19000/version') proxyIsRunning = True except: proxyIsRunning = False if not proxyIsRunning: xbmc.executebuiltin('RunScript(' + serverPath + ')') elif command == 'divide': paramArr = params.split(',') a = paramArr[0].strip().strip("'").replace('%s', src) a = resolveVariable(a, item) b = paramArr[1].strip().strip("'").replace('%s', src) b = resolveVariable(b, item) if not a or not b: continue a = int(a) b = int(b) try: src = str(a/b) except: pass return src