def process(self, url, direct=True): try: if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext in ['jpg', 'png', 'gif']: raise Exception() try: i = control.joinPath(control.dataPath,'img') control.deleteFile(i) f = control.openFile(i, 'w') f.write(client.request(url)) f.close() control.execute('ShowPicture("%s")' % i) return False except: return except: log_utils.error() try: r, x = re.findall(r'(.+?)\|regex=(.+?)$', url)[0] x = regex.fetch(x) r += unquote_plus(x) if not '</regex>' in r: raise Exception() u = regex.resolve(r) if not u is None: url = u except: pass try: if not url.startswith('rtmp'): raise Exception() if len(re.compile(r'\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10' return url except: pass try: if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext in ['m3u8', 'f4m', 'ts']: raise Exception() return url except: pass try: preset = re.findall(r'<preset>(.+?)</preset>', url)[0] if not 'search' in preset: raise Exception() title, year, imdb = re.findall(r'<title>(.+?)</title>', url)[0], re.findall('<year>(.+?)</year>', url)[0], re.findall(r'<imdb>(.+?)</imdb>', url)[0] try: tvdb, tvshowtitle, premiered, season, episode = re.findall(r'<tvdb>(.+?)</tvdb>', url)[0], re.findall(r'<tvshowtitle>(.+?)</tvshowtitle>', url)[0], re.findall(r'<premiered>(.+?)</premiered>', url)[0], re.findall(r'<season>(.+?)</season>', url)[0], re.findall(r'<episode>(.+?)</episode>', url)[0] except: tvdb = tvshowtitle = premiered = season = episode = None direct = False quality = 'HD' if not preset == 'searchsd' else 'SD' from resources.lib.modules import sources u = sources.Sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, quality) if u: return u
def getx(self, url, worker=False): try: r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0] x = regex.fetch(x) r += urllib.unquote_plus(x) url = regex.resolve(r) self.list = self.jizzplanet_list('', result=url) self.addDirectory(self.list) return self.list except: pass
def getx(self, url, worker=False): try: r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0] x = regex.fetch(x) r += urllib.unquote_plus(x) url = regex.resolve(r) self.list = self.streamhub_list('', result=url) self.addDirectory(self.list) return self.list except: pass
def getx(self, url, worker=False): try: r, x = re.findall(r'(.+?)\|regex=(.+?)$', url)[0] x = regex.fetch(x) r += unquote_plus(x) url = regex.resolve(r) self.list = self.it_list('', result=url) self.addDirectory(self.list) return self.list except: log_utils.error()
def process(self, url, direct=True): try: if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit( '.')[-1].replace('/', '').lower() if not ext in ['jpg', 'png', 'gif']: raise Exception() try: i = os.path.join(control.dataPath, 'img') control.deleteFile(i) f = control.openFile(i, 'w') f.write(client.request(url)) f.close() control.execute('ShowPicture("%s")' % i) return False except: return except: pass try: r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0] x = regex.fetch(x) r += urllib.unquote_plus(x) if not '</regex>' in r: raise Exception() u = regex.resolve(r) if not u == None: url = u except: pass try: if not url.startswith('rtmp'): raise Exception() if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10' return url except: pass try: if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit( '.')[-1].replace('/', '').lower() if not ext in ['m3u8', 'f4m', 'ts']: raise Exception() return url except: pass try: import urlresolver hmf = urlresolver.HostedMediaFile(url=url) if hmf.valid_url() == False: raise Exception() direct = False u = hmf.resolve() if not u == False: return u except: pass if direct == True: return url
def process(self, url, direct=True): try: if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext in ['jpg', 'png', 'gif']: raise Exception() try: i = os.path.join(control.dataPath,'img') control.deleteFile(i) f = control.openFile(i, 'w') f.write(client.request(url)) f.close() control.execute('ShowPicture("%s")' % i) return False except: return except: pass try: r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0] x = regex.fetch(x) r += urllib.unquote_plus(x) if not '</regex>' in r: raise Exception() u = regex.resolve(r) if not u == None: url = u except: pass try: if not url.startswith('rtmp'): raise Exception() if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10' return url except: pass try: if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext in ['m3u8', 'f4m', 'ts']: raise Exception() return url except: pass try: preset = re.findall('<preset>(.+?)</preset>', url)[0] if not 'search' in preset: raise Exception() title, year, imdb = re.findall('<title>(.+?)</title>', url)[0], re.findall('<year>(.+?)</year>', url)[0], re.findall('<imdb>(.+?)</imdb>', url)[0] try: tvdb, tvshowtitle, premiered, season, episode = re.findall('<tvdb>(.+?)</tvdb>', url)[0], re.findall('<tvshowtitle>(.+?)</tvshowtitle>', url)[0], re.findall('<premiered>(.+?)</premiered>', url)[0], re.findall('<season>(.+?)</season>', url)[0], re.findall('<episode>(.+?)</episode>', url)[0] except: tvdb = tvshowtitle = premiered = season = episode = None direct = False quality = 'HD' if not preset == 'searchsd' else 'SD' from resources.sources import sources u = sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, quality) if not u == None: return u except: pass try: from resources.sources import sources u = sources().getURISource(url) if not u == False: direct = False if u == None or u == False: raise Exception() return u except: pass try: if not '.google.com' in url: raise Exception() from resources.lib.modules import directstream u = directstream.google(url)[0]['url'] return u except: pass try: if not 'filmon.com/' in url: raise Exception() from resources.lib.modules import filmon u = filmon.resolve(url) return u except: pass try: if not 'uptostream/' in url: raise Exception() from resources.lib.modules import filmon u = url.replace('uptostream','uptobox') return u except: pass try: if not 'liveonlinetv' in url: raise Exception() u = liveonlinetv247(url) return (str(u)).replace('["' , '').replace(']"' , '').replace('[[' , '').replace(']]' , '').replace('[' , '').replace(']' , '').replace('"' , '').replace("'" , "") + '|User-Agent=Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36' except: pass try: if not 'tvplayer' in url: raise Exception() u = playtvplayer(url) return u except: pass try: if not 'tvcatchup' in url: raise Exception() open = getUrl(url) u = re.compile("file: '(.+?)'").findall(open)[0] return u except: pass try: if not 'robssatellitetv.com' in url: raise Exception() open = getUrl(url) u = re.compile('src: "(.+?)"').findall(open)[0] return u except: pass try: if not 'arconaitv.me' in url: raise Exception() url = 'http://www.justproxy.co.uk/index.php?q='+base64.b64encode(url) open = getUrl(url) u = re.compile('"src":"(.+?)"').findall(open)[0] u = u.strip() return str(u).replace('\/','/').replace('"','') except: pass try: import urlresolver hmf = urlresolver.HostedMediaFile(url=url) if hmf.valid_url() == False: raise Exception() direct = False ; u = hmf.resolve() if not u == False: return u except: pass if direct == True: return url
def process(self, url, direct=True): try: if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext in ['jpg', 'png', 'gif']: raise Exception() try: i = os.path.join(control.dataPath,'img') control.deleteFile(i) f = control.openFile(i, 'w') f.write(client.request(url)) f.close() control.execute('ShowPicture("%s")' % i) return False except: return except: pass try: r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0] x = regex.fetch(x) r += urllib.unquote_plus(x) if not '</regex>' in r: raise Exception() u = regex.resolve(r) if not u == None: url = u except: pass try: if not url.startswith('rtmp'): raise Exception() if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10' return url except: pass try: if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext in ['m3u8', 'f4m', 'ts']: raise Exception() return url except: pass try: preset = re.findall('<preset>(.+?)</preset>', url)[0] if not 'search' in preset: raise Exception() title, year, imdb = re.findall('<title>(.+?)</title>', url)[0], re.findall('<year>(.+?)</year>', url)[0], re.findall('<imdb>(.+?)</imdb>', url)[0] try: tvdb, tvshowtitle, premiered, season, episode = re.findall('<tvdb>(.+?)</tvdb>', url)[0], re.findall('<tvshowtitle>(.+?)</tvshowtitle>', url)[0], re.findall('<premiered>(.+?)</premiered>', url)[0], re.findall('<season>(.+?)</season>', url)[0], re.findall('<episode>(.+?)</episode>', url)[0] except: tvdb = tvshowtitle = premiered = season = episode = None direct = False quality = 'HD' if not preset == 'searchsd' else 'SD' from resources.lib.modules import sources u = sources.sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, quality) if not u == None: return u except: pass try: from resources.lib.modules import sources u = sources.sources().getURISource(url) if not u == False: direct = False if u == None or u == False: raise Exception() return u except: pass try: if not '.google.com' in url: raise Exception() from resources.lib.modules import directstream u = directstream.google(url)[0]['url'] return u except: pass try: if not 'filmon.com/' in url: raise Exception() from resources.lib.modules import filmon u = filmon.resolve(url) return u except: pass try: try: headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1])) except: headers = dict('') if not url.startswith('http'): raise Exception() result = client.request(url.split('|')[0], headers=headers, output='headers', timeout='20') if 'Content-Type' in result and not 'html' in result['Content-Type']: raise Exception() import liveresolver if liveresolver.isValid(url) == True: direct = False u = liveresolver.resolve(url) if not u == None: try: dialog.close() except: pass return u except: pass try: import urlresolver hmf = urlresolver.HostedMediaFile(url=url) if hmf.valid_url() == False: raise Exception() direct = False ; u = hmf.resolve() if not u == False: return u except: pass if direct == True: return url
def process(self, url, direct=True): try: if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext in ['jpg', 'png', 'gif']: raise Exception() try: i = os.path.join(control.dataPath,'img') control.deleteFile(i) f = control.openFile(i, 'w') f.write(client.request(url)) f.close() control.execute('ShowPicture("%s")' % i) return False except: return except: pass try: r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0] x = regex.fetch(x) r += urllib.unquote_plus(x) if not '</regex>' in r: raise Exception() u = regex.resolve(r) if not u is None: url = u except: pass try: if not url.startswith('rtmp'): raise Exception() if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10' return url except: pass try: if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext in ['m3u8', 'f4m', 'ts']: raise Exception() return url except: pass try: preset = re.findall('<preset>(.+?)</preset>', url)[0] if not 'search' in preset: raise Exception() title, year, imdb = re.findall('<title>(.+?)</title>', url)[0], re.findall('<year>(.+?)</year>', url)[0], re.findall('<imdb>(.+?)</imdb>', url)[0] try: tvdb, tvshowtitle, premiered, season, episode = re.findall('<tvdb>(.+?)</tvdb>', url)[0], re.findall('<tvshowtitle>(.+?)</tvshowtitle>', url)[0], re.findall('<premiered>(.+?)</premiered>', url)[0], re.findall('<season>(.+?)</season>', url)[0], re.findall('<episode>(.+?)</episode>', url)[0] except: tvdb = tvshowtitle = premiered = season = episode = None direct = False quality = 'HD' if not preset == 'searchsd' else 'SD' from resources.lib.modules import sources u = sources.Sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, quality) if not u is None: return u except: pass try: from resources.lib.modules import sources u = sources.Sources().getURISource(url) if not u is False: direct = False if u is None or u is False: raise Exception() return u except: pass try: if not '.google.com' in url: raise Exception() from resources.lib.modules import directstream u = directstream.google(url)[0]['url'] return u except: pass try: if not 'filmon.com/' in url: raise Exception() from resources.lib.modules import filmon u = filmon.resolve(url) return u except: pass try: try: headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1])) except: headers = dict('') if not url.startswith('http'): raise Exception() result = client.request(url.split('|')[0], headers=headers, output='headers', timeout='20') if 'Content-Type' in result and not 'html' in result['Content-Type']: raise Exception() import liveresolver if liveresolver.isValid(url) is True: direct = False u = liveresolver.resolve(url) if not u is None: try: dialog.close() except: pass return u except: pass try: import resolveurl hmf = resolveurl.HostedMediaFile(url=url) if hmf.valid_url() is False: raise Exception() direct = False ; u = hmf.resolve() if not u is False: return u except: pass if direct is True: return url
def resolveUrl(url, direct=True): try: dialog = None dialog = control.progressDialog dialog.create(control.addonInfo('name'), control.lang(30726).encode('utf-8')) dialog.update(0) except: pass try: if not '</regex>' in url: raise Exception() from resources.lib.modules import regex u = regex.resolve(url) if not u == None: url = u except: pass try: if not '.f4m'in url: raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext == 'f4m': raise Exception() from resources.lib.modules.f4mproxy.F4mProxy import f4mProxyHelper f4mlabel = cleantitle(control.infoLabel('listitem.label')) f4micon = control.infoLabel('listitem.icon') return f4mProxyHelper().playF4mLink(url, f4mlabel, None, None, '', f4micon) except: pass try: if not url.startswith('rtmp'): raise Exception() if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10' return playItem(url, dialog) except: pass try: url = url.split('<source>')[0] domain = '.'.join((urlparse.urlparse(url).netloc).split('.')[-2:]).lower() s = [] path = os.path.join(control.addonInfo('path'), 'resources', 'lib', 'sources') for d in os.listdir(path): try: s += [(d, re.findall('self\.domains\s*=\s*\[(.+?)\]', open(os.path.join(path, d), 'r').read())[0].split(','))] except: pass s = [(i[0], [x.replace('\'', '').replace('\"', '').strip() for x in i[1]]) for i in s] s = [i[0].replace('.py', '') for i in s if domain in i[1]] if len(s) > 0: direct = False import urlresolver hostDict = urlresolver.plugnplay.man.implementors(urlresolver.UrlResolver) hostDict = [i.domains for i in hostDict] hostDict = [i for i in hostDict if not '*' in i] hostDict = [i.lower() for i in reduce(lambda x, y: x+y, hostDict)] hostDict = [x for y,x in enumerate(hostDict) if x not in hostDict[:y]] hostcapDict = ['hugefiles.net', 'kingfiles.net', 'openload.io', 'openload.co'] call = __import__('resources.lib.sources.%s' % s[0], globals(), locals(), ['object'], -1).source() sources = call.sources(url, hostDict, hostDict) random.shuffle(sources) filter = [] filter += [i for i in sources if i['direct'] == True] filter += [i for i in sources if i['direct'] == False] sources = filter filter = [] filter += [i for i in sources if i['quality'] == '1080p' and not i['source'].lower() in hostcapDict] filter += [i for i in sources if i['quality'] == '1080p' and i['source'].lower() in hostcapDict] filter += [i for i in sources if i['quality'] == 'HD' and not i['source'].lower() in hostcapDict] filter += [i for i in sources if i['quality'] == 'HD' and i['source'].lower() in hostcapDict] filter += [i for i in sources if i['quality'] == 'SD' and not i['source'].lower() in hostcapDict] filter += [i for i in sources if i['quality'] == 'SCR' and not i['source'].lower() in hostcapDict] filter += [i for i in sources if i['quality'] == 'CAM' and not i['source'].lower() in hostcapDict] sources = filter try: dialog.update(50, control.lang(30726).encode('utf-8'), str(' ')) except: pass u = None for i in range(len(sources)): try: try: if dialog.iscanceled(): break if xbmc.abortRequested == True: return sys.exit() except: pass url = call.resolve(sources[i]['url']) if url == None: raise Exception() if not sources[i]['direct'] == True: url = urlresolver.HostedMediaFile(url=sources[i]['url']).resolve() if url == False: raise Exception() u = url ; break except: pass if not u == None: return playItem(u, dialog) except: pass try: import urlresolver if urlresolver.HostedMediaFile(url).valid_url() == True: direct = False u = urlresolver.HostedMediaFile(url=url).resolve() if not u == False: return playItem(u, dialog) except: pass try: domain = '.'.join((urlparse.urlparse(url).netloc).split('.')[-2:]).lower() s = [] path = os.path.join(control.addonInfo('path'), 'resources', 'lib', 'resolvers') for d in os.listdir(path): try: s += [(d, re.findall('domains\s*=\s*\[(.+?)\]', open(os.path.join(path, d), 'r').read())[0].split(','))] except: pass s = [(i[0], [x.replace('\'', '').replace('\"', '').strip() for x in i[1]]) for i in s] s = [i[0].replace('.py', '') for i in s if domain in i[1]] if len(s) > 0: direct = False u = __import__('resources.lib.resolvers.%s' % s[0], globals(), locals(), ['object'], -1).resolve(url) if not u == None: return playItem(u, dialog) except: pass if direct == True: return playItem(url, dialog) try: dialog.close() except: pass return control.infoDialog(control.lang(30705).encode('utf-8'))
def process(self, url, direct=True): try: dialog = None dialog = control.progressDialog dialog.create(control.addonInfo('name'), control.lang(30726).encode('utf-8')) dialog.update(0) except: pass try: if not '</regex>' in url: raise Exception() from resources.lib.modules import regex u = regex.resolve(url) if not u == None: url = u except: pass try: if not url.startswith('rtmp'): raise Exception() if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10' try: dialog.close() except: pass return url except: pass try: if not '.m3u8' in url: raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit( '.')[-1].replace('/', '').lower() if not ext == 'm3u8': raise Exception() try: dialog.close() except: pass return url except: pass try: preset = re.findall('<preset>(.+?)</preset>', url)[0] title, year, imdb = re.findall( '<title>(.+?)</title>', url)[0], re.findall( '<year>(.+?)</year>', url)[0], re.findall('<imdb>(.+?)</imdb>', url)[0] try: tvdb, tvshowtitle, premiered, season, episode = re.findall( '<tvdb>(.+?)</tvdb>', url)[0], re.findall( '<tvshowtitle>(.+?)</tvshowtitle>', url)[0], re.findall('<premiered>(.+?)</premiered>', url)[0], re.findall( '<season>(.+?)</season>', url)[0], re.findall( '<episode>(.+?)</episode>', url)[0] except: tvdb = tvshowtitle = premiered = season = episode = None direct = False presetDict = [ 'primewire_mv_tv', 'watchfree_mv_tv', 'movie25_mv', 'watchseries_tv', 'dizibox_tv', 'dizigold_tv', 'dizilab_tv', 'miradetodo_mv', 'onemovies_mv_tv', 'onlinedizi_tv', 'pelispedia_mv_tv', 'pubfilm_mv_tv', 'putlocker_mv_tv', 'sezonlukdizi_tv', 'usmovies_mv', 'usseries_tv', 'watch1080_mv' ] if preset == 'searchsd': presetDict = [ 'primewire_mv_tv', 'watchfree_mv_tv', 'movie25_mv', 'watchseries_tv' ] from resources.lib.sources import sources try: dialog.update(0, control.lang(30726).encode('utf-8'), control.lang(30731).encode('utf-8')) except: pass u = sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, presetDict=presetDict, progress=False, timeout=20) try: dialog.update(50, control.lang(30726).encode('utf-8'), control.lang(30731).encode('utf-8')) except: pass u = sources().sourcesDirect(u, progress=False) if not u == None: try: dialog.close() except: pass return u except: pass try: from resources.lib.sources import sources u = sources().getURISource(url) if not u == False: direct = False if u == None or u == False or u == []: raise Exception() try: dialog.update(50, control.lang(30726).encode('utf-8'), control.lang(30731).encode('utf-8')) except: pass u = sources().sourcesDirect(u, progress=False) if not u == None: try: dialog.close() except: pass return u except: pass try: if not '.google.com' in url: raise Exception() from resources.lib.modules import directstream u = directstream.google(url)[0]['url'] try: dialog.close() except: pass return u except: pass try: import urlresolver try: hmf = urlresolver.HostedMediaFile(url=url, include_disabled=True, include_universal=False) except: hmf = urlresolver.HostedMediaFile(url=url) if hmf.valid_url() == False: raise Exception() direct = False u = hmf.resolve() if 'plugin://plugin.video.youtube' in u: raise Exception() if not u == False: try: dialog.close() except: pass return u except: pass try: try: headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1])) except: headers = dict('') if not url.startswith('http'): raise Exception() result = client.request(url.split('|')[0], headers=headers, output='headers', timeout='20') if 'Content-Type' in result and not 'html' in result[ 'Content-Type']: raise Exception() import liveresolver if liveresolver.isValid(url) == True: direct = False u = liveresolver.resolve(url) if not u == None: try: dialog.close() except: pass return u except: pass if direct == True: return url try: dialog.close() except: pass
def process(self, url, direct=True): try: if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext in ['jpg', 'png', 'gif']: raise Exception() try: dialog = None dialog = control.progressDialog dialog.create(control.addonInfo('name'), control.lang(30732).encode('utf-8')) dialog.update(0) i = os.path.join(control.dataPath,'img') control.deleteFile(i) f = control.openFile(i, 'w') f.write(client.request(url)) f.close() dialog.close() control.execute('ShowPicture("%s")' % i) return True except: return except: pass try: dialog = None dialog = control.progressDialog dialog.create(control.addonInfo('name'), control.lang(30726).encode('utf-8')) dialog.update(0) except: pass try: if not '</regex>' in url: raise Exception() from resources.lib.modules import regex u = regex.resolve(url) if not u == None: url = u except: pass try: if not url.startswith('rtmp'): raise Exception() if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10' try: dialog.close() except: pass return url except: pass try: if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext in ['m3u8', 'f4m', 'ts']: raise Exception() try: dialog.close() except: pass return url except: pass try: preset = re.findall('<preset>(.+?)</preset>', url)[0] title, year, imdb = re.findall('<title>(.+?)</title>', url)[0], re.findall('<year>(.+?)</year>', url)[0], re.findall('<imdb>(.+?)</imdb>', url)[0] try: tvdb, tvshowtitle, premiered, season, episode = re.findall('<tvdb>(.+?)</tvdb>', url)[0], re.findall('<tvshowtitle>(.+?)</tvshowtitle>', url)[0], re.findall('<premiered>(.+?)</premiered>', url)[0], re.findall('<season>(.+?)</season>', url)[0], re.findall('<episode>(.+?)</episode>', url)[0] except: tvdb = tvshowtitle = premiered = season = episode = None direct = False presetDict = ['primewire_mv_tv', 'watchfree_mv_tv', 'movie25_mv', 'watchseries_tv', 'afdah_mv', 'dtmovies_mv', 'dizibox_tv', 'dizigold_tv', 'miradetodo_mv', 'onemovies_mv_tv', 'onlinedizi_tv', 'pelispedia_mv_tv', 'pubfilm_mv_tv', 'putlocker_mv_tv', 'rainierland_mv', 'sezonlukdizi_tv', 'tunemovie_mv', 'xmovies_mv'] if preset == 'searchsd': presetDict = ['primewire_mv_tv', 'watchfree_mv_tv', 'movie25_mv', 'watchseries_tv'] from resources.lib.sources import sources try: dialog.update(0, control.lang(30726).encode('utf-8'), control.lang(30731).encode('utf-8')) except: pass u = sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, presetDict=presetDict, progress=False, timeout=20) try: dialog.update(50, control.lang(30726).encode('utf-8'), control.lang(30731).encode('utf-8')) except: pass u = sources().sourcesDirect(u, progress=False) if not u == None: try: dialog.close() except: pass return u except: pass try: from resources.lib.sources import sources u = sources().getURISource(url) if not u == False: direct = False if u == None or u == False or u == []: raise Exception() try: dialog.update(50, control.lang(30726).encode('utf-8'), control.lang(30731).encode('utf-8')) except: pass u = sources().sourcesDirect(u, progress=False) if not u == None: try: dialog.close() except: pass return u except: pass try: if not '.google.com' in url: raise Exception() from resources.lib.modules import directstream u = directstream.google(url)[0]['url'] try: dialog.close() except: pass return u except: pass try: import urlresolver hmf = urlresolver.HostedMediaFile(url=url, include_disabled=True, include_universal=False) if hmf.valid_url() == False: raise Exception() direct = False ; u = hmf.resolve() if 'plugin://plugin.video.youtube' in u: raise Exception() if not u == False: try: dialog.close() except: pass return u except: pass try: try: headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1])) except: headers = dict('') if not url.startswith('http'): raise Exception() result = client.request(url.split('|')[0], headers=headers, output='headers', timeout='20') if 'Content-Type' in result and not 'html' in result['Content-Type']: raise Exception() import liveresolver if liveresolver.isValid(url) == True: direct = False u = liveresolver.resolve(url) if not u == None: try: dialog.close() except: pass return u except: pass if direct == True: return url try: dialog.close() except: pass