def get_sources(self, url, hosthdDict, hostDict, locDict): try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) result = cloudflare.source(url) result = client.parseDOM(result, "a", ret="href") result = [i for i in result if '.php' in i and 'i=' in i] result = [client.replaceHTMLCodes(i) for i in result] try: url = [] for i in result: try: url.append(base64.decodestring(urlparse.parse_qs(urlparse.urlparse(i).query)['i'][0])) except: pass url = [i for i in url if i.startswith('http')][0] if not 'google' in url: raise Exception() url = resolvers.request(url) for i in url: sources.append({'source': 'GVideo', 'quality': i['quality'], 'provider': 'YIFYstream', 'url': i['url']}) except: pass try: url = [i for i in result if 'p=shtml' in i][0] url = client.source(url) try: sources.append({'source': 'GVideo', 'quality': '1080p', 'provider': 'YIFYstream', 'url': [i for i in client.parseDOM(url, "source", ret="src", attrs = { "data-res": "1080" }) if 'google' in i][0]}) except: pass try: sources.append({'source': 'GVideo', 'quality': 'HD', 'provider': 'YIFYstream', 'url': [i for i in client.parseDOM(url, "source", ret="src", attrs = { "data-res": "720" }) if 'google' in i][0]}) except: pass except: pass try: url = [i for i in result if 'p=open' in i][0] url = urlparse.parse_qs(urlparse.urlparse(i).query)['i'][0] url = 'https://openload.io/f/%s' % url url = resolvers.request(url) if url == None: raise Exception() sources.append({'source': 'Openload', 'quality': 'HD', 'provider': 'YIFYstream', 'url': url}) except: pass return sources except: return sources
def get_sources(self, url, hosthdDict, hostDict, locDict): try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) result = client.source(url) u = client.parseDOM(result, "meta", ret="content", attrs={"property": "og:url"})[0] links = re.compile( '<a href="([?]link_id=.+?)".+?>(.+?)</a>').findall(result) links = [u + i[0] for i in links if 'server' in i[1].lower()] for u in links[:3]: try: result = client.source(u) url = client.parseDOM(result, "source", ret="src", attrs={"type": "video/.+?"}) if len(url) > 0: i = googleplus.tag(url[0])[0] sources.append({ 'source': 'GVideo', 'quality': i['quality'], 'provider': 'Clickplay', 'url': i['url'] }) url = re.compile( 'proxy[.]link=clickplay[*](.+?)"').findall(result)[-1] url = gkplugins.decrypter(198, 128).decrypt( url, base64.urlsafe_b64decode( 'bW5pcUpUcUJVOFozS1FVZWpTb00='), 'ECB').split('\0')[0] if 'google' in url: source = 'GVideo' elif 'vk.com' in url: source = 'VK' else: raise Exception() url = resolvers.request(url) for i in url: sources.append({ 'source': source, 'quality': i['quality'], 'provider': 'Clickplay', 'url': i['url'] }) except: pass return sources except: return sources
def resolve(self, url): try: url = urlparse.urlparse(url).path result = '' links = [self.link_1, self.link_2, self.link_3] for base_link in links: result = client.request(urlparse.urljoin(base_link, url), headers=self.headers) if 'showvideo' in str(result): break result = result.decode('iso-8859-1').encode('utf-8') url = client.parseDOM(result, "div", attrs={"id": "showvideo"})[0] url = url.replace('<IFRAME', '<iframe').replace(' SRC=', ' src=') url = client.parseDOM(url, "iframe", ret="src")[0] url = client.replaceHTMLCodes(url) try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0] except: pass try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['url'][0] except: pass url = resolvers.request(url) return url except: return
def resolve(self, url): try: url = url.replace('/json/', '/') url = urlparse.urlparse(url).path class NoRedirection(urllib2.HTTPErrorProcessor): def http_response(self, request, response): return response result = '' links = [self.link_1, self.link_2, self.link_3] for base_link in links: try: opener = urllib2.build_opener(NoRedirection) opener.addheaders = [('User-Agent', 'Apple-iPhone')] opener.addheaders = [('Referer', base_link + url)] response = opener.open(base_link + url) result = response.read() response.close() except: result = '' if 'myButton' in result: break url = re.compile('class=[\'|\"]*myButton.+?href=[\'|\"|\s|\<]*(.+?)[\'|\"|\s|\>]').findall(result)[0] url = client.replaceHTMLCodes(url) try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0] except: pass try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['url'][0] except: pass url = resolvers.request(url) return url except: return
def get_sources(self, url, hosthdDict, hostDict, locDict): try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) result = cloudflare.source(url) result = client.parseDOM(result, "a", ret="href") u = [i for i in result if '.php' in i and 'i=' in i][0] u = client.replaceHTMLCodes(u) u = urlparse.parse_qs(urlparse.urlparse(u).query)['i'][0] url = gkplugins.decrypter(198,128).decrypt(u,base64.urlsafe_b64decode('b3F5czkzZEswc2FEY3pRNW9NSTE='),'ECB').split('\0')[0] url = resolvers.request(url) if not type(url) == list: raise Exception() for i in url: sources.append({'source': 'GVideo', 'quality': i['quality'], 'provider': 'YIFYstream', 'url': i['url']}) return sources except: return sources
def resolve(self, url): try: url = urlparse.urlparse(url).path result = "" links = [self.link_1, self.link_2, self.link_3] for base_link in links: result = client.request(urlparse.urljoin(base_link, url), headers=self.headers) if "showvideo" in str(result): break result = result.decode("iso-8859-1").encode("utf-8") url = client.parseDOM(result, "div", attrs={"id": "showvideo"})[0] url = url.replace("<IFRAME", "<iframe").replace(" SRC=", " src=") url = client.parseDOM(url, "iframe", ret="src")[0] url = client.replaceHTMLCodes(url) try: url = urlparse.parse_qs(urlparse.urlparse(url).query)["u"][0] except: pass try: url = urlparse.parse_qs(urlparse.urlparse(url).query)["url"][0] except: pass url = resolvers.request(url) return url except: return
def get_sources(self, url, hosthdDict, hostDict, locDict): try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) result = cloudflare.source(url) result = client.parseDOM(result, "a", ret="href") url = [i for i in result if '.php' in i and 'i=' in i][0] url = client.replaceHTMLCodes(url) url = urlparse.parse_qs(urlparse.urlparse(url).query)['i'][0] url = base64.decodestring(url) url = resolvers.request(url) if not type(url) == list: raise Exception() for i in url: sources.append({ 'source': 'GVideo', 'quality': i['quality'], 'provider': 'YIFYstream', 'url': i['url'] }) return sources except: return sources
def get_sources(self, url, hosthdDict, hostDict, locDict): try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) result = cloudflare.source(url) result = client.parseDOM(result, "a", ret="href") url = [i for i in result if '.php' in i and 'i=' in i][0] url = client.replaceHTMLCodes(url) url = urlparse.parse_qs(urlparse.urlparse(url).query)['i'][0] url = base64.decodestring(url) url = resolvers.request(url) if not type(url) == list: raise Exception() for i in url: sources.append({'source': 'GVideo', 'quality': i['quality'], 'provider': 'YIFYstream', 'url': i['url']}) return sources except: return sources
def resolve(self, url): try: url = client.request(url, output='geturl') url = resolvers.request(url) return url except: return
def resolve(self, url): try: url = urlparse.urlparse(url).path result = '' links = [self.link_1, self.link_2, self.link_3] for base_link in links: result = client.request(urlparse.urljoin(base_link, url), headers=self.headers) if 'frame' in str(result): break url = re.compile( 'class=[\'|\"]*frame.+?src=[\'|\"|\s|\<]*(.+?)[\'|\"|\s|\>]' ).findall(result)[0] url = client.replaceHTMLCodes(url) try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0] except: pass try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['url'][0] except: pass url = resolvers.request(url) return url except: return
def resolve(self, url): try: if url.startswith(self.base_link): result = client.request(url) url = client.parseDOM(result, "a", ret="href", attrs = { "class": "real_link" })[0] url = resolvers.request(url) return url except: return
def resolve(self, url): try: result = client.request(url) try: url = client.parseDOM(result, "a", ret="href", attrs = { "class": "wsoButton" })[0] except: pass url = resolvers.request(url) return url except: return
def resolve(self, url): try: if url.startswith(self.base_link): result = client.request(url) url = client.parseDOM(result, "a", ret="href", attrs={"class": "real_link"})[0] url = resolvers.request(url) return url except: return
def get_sources(self, url, hosthdDict, hostDict, locDict): try: sources = [] if url == None: return sources result = cloudflare.source(urlparse.urljoin(self.base_link, url)) quality = client.parseDOM(result, "title")[0] if '[CAM]' in quality or '[TS]' in quality: quality = 'CAM' elif '[SCREENER]' in quality: quality = 'SCR' else: quality = 'HD' result = client.parseDOM(result, "div", attrs = { "class": "video-embed" })[0] try: url = client.parseDOM(result, "iframe", ret="src") url = [i for i in url if 'openload' in i.lower()][0] url = resolvers.request(url) if url == None: raise Exception() sources.append({'source': 'Openload', 'quality': quality, 'provider': 'MoviesHD', 'url': url}) except: pass try: url = re.compile('hashkey=([\w]+)').findall(result) url += re.compile('ref=[\'|\"](.+?)[\'|\"]').findall(result) url = 'http://videomega.tv/cdn.php?ref=%s' % url[0] url = resolvers.request(url) if url == None: raise Exception() sources.append({'source': 'Videomega', 'quality': quality, 'provider': 'MoviesHD', 'url': url}) except: pass return sources except: return sources
def resolve(self, url): try: result = client.request(url) try: url = client.parseDOM(result, "a", ret="href", attrs={"class": "wsoButton"})[0] except: pass url = resolvers.request(url) return url except: return
def resolve(self, url): try: result = cloudflare.request(url) result = result.decode('iso-8859-1').encode('utf-8') url = client.parseDOM(result, "div", attrs = { "id": "showvideo" })[0] url = url.replace('<IFRAME', '<iframe').replace(' SRC=', ' src=') url = client.parseDOM(url, "iframe", ret="src")[0] url = client.replaceHTMLCodes(url) try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['url'][0] except: pass url = resolvers.request(url) return url except: return
def resolve(self, url): try: post = url url = self.resp_link result = '' links = [self.link_1, self.link_3] for base_link in links: result = client.request(urlparse.urljoin(base_link, url), post=post, headers=self.headers) if 'com_iceplayer' in str(result): break url = result.split("?url=", 1)[-1].split("<", 1)[0] url = urllib.unquote_plus(url) url = resolvers.request(url) return url except: return
def resolve(self, url): try: result = cloudflare.request(url) result = result.decode('iso-8859-1').encode('utf-8') url = client.parseDOM(result, "div", attrs={"id": "showvideo"})[0] url = url.replace('<IFRAME', '<iframe').replace(' SRC=', ' src=') url = client.parseDOM(url, "iframe", ret="src")[0] url = client.replaceHTMLCodes(url) try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['url'][0] except: pass url = resolvers.request(url) return url except: return
def resolve(self, url): try: result = cloudflare.request(url) result = result.decode("iso-8859-1").encode("utf-8") url = client.parseDOM(result, "div", attrs={"id": "showvideo"})[0] url = url.replace("<IFRAME", "<iframe").replace(" SRC=", " src=") url = client.parseDOM(url, "iframe", ret="src")[0] url = client.replaceHTMLCodes(url) try: url = urlparse.parse_qs(urlparse.urlparse(url).query)["url"][0] except: pass url = resolvers.request(url) return url except: return
def get_sources(self, url, hosthdDict, hostDict, locDict): try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) result = client.source(url) u = client.parseDOM(result, "meta", ret="content", attrs = { "property": "og:url" })[0] links = re.compile('<a href="([?]link_id=.+?)".+?>(.+?)</a>').findall(result) links = [u + i[0] for i in links if 'server' in i[1].lower()] for u in links[:3]: try: result = client.source(u) url = client.parseDOM(result, "source", ret="src", attrs = { "type": "video/.+?" }) if len(url) > 0: i = googleplus.tag(url[0])[0] sources.append({'source': 'GVideo', 'quality': i['quality'], 'provider': 'Clickplay', 'url': i['url']}) url = re.compile('proxy[.]link=clickplay[*](.+?)"').findall(result)[-1] key = base64.b64decode('bW5pcUpUcUJVOFozS1FVZWpTb00=') decrypter = pyaes.Decrypter(pyaes.AESModeOfOperationECB(key + (24 - len(key)) * '\0')) url = url.decode('hex') url = decrypter.feed(url) + decrypter.feed() if 'google' in url: source = 'GVideo' elif 'vk.com' in url: source = 'VK' else: raise Exception() url = resolvers.request(url) for i in url: sources.append({'source': source, 'quality': i['quality'], 'provider': 'Clickplay', 'url': i['url']}) except: pass return sources except: return sources
def resolve(self, url): try: url = urlparse.urlparse(url).path result = '' links = [self.link_1, self.link_2, self.link_3] for base_link in links: result = client.request(urlparse.urljoin(base_link, url), headers=self.headers) if 'frame' in str(result): break url = re.compile('class=[\'|\"]*frame.+?src=[\'|\"|\s|\<]*(.+?)[\'|\"|\s|\>]').findall(result)[0] url = client.replaceHTMLCodes(url) try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0] except: pass try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['url'][0] except: pass url = resolvers.request(url) return url except: return
def __resolve(self, result): try: result = client.parseDOM(result, "div", attrs = { "id": "player" })[0] try: url = client.parseDOM(result, "iframe", ret="src")[0] except: pass try: url = base64.b64decode(re.compile('decode\("(.+?)"').findall(result)[0]) except: pass if 'proxy.link=tunemovie' in url: url = re.compile('proxy[.]link=tunemovie[*]([^&]+)').findall(url)[-1] key = base64.b64decode('Q05WTmhPSjlXM1BmeFd0UEtiOGg=') decrypter = pyaes.Decrypter(pyaes.AESModeOfOperationECB(key + (24 - len(key)) * '\0')) url = url.decode('hex') url = decrypter.feed(url) + decrypter.feed() url = resolvers.request(url) return url except: return
def resolve(self, url): try: url = resolvers.request(url) return url except: return
def resolveUrl(name, url, audio, image, fanart, playable, content): try: if '.f4m' in url: label = cleantitle(name) ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit( '.')[-1].replace('/', '').lower() if not ext == 'f4m': raise Exception() from modules.libraries.f4mproxy.F4mProxy import f4mProxyHelper return f4mProxyHelper().playF4mLink(url, label, None, None, '', image) #legacy issue, will be removed later if 'afdah.org' in url and not '</source>' in url: url += '<source>afdah</source>' if '</source>' in url: source = re.compile('<source>(.+?)</source>').findall(url)[0] url = re.compile('(.+?)<source>').findall(url)[0] for i in ['_mv', '_tv', '_mv_tv']: try: call = __import__('modules.sources.%s%s' % (source, i), globals(), locals(), ['object'], -1).source() except: pass from modules import sources d = sources.sources() url = call.get_sources(url, d.hosthdfullDict, d.hostsdfullDict, d.hostlocDict) if type(url) == list and len(url) == 1: url = url[0]['url'] elif type(url) == list: url = sorted(url, key=lambda k: k['quality']) for i in url: i.update( (k, '720p') for k, v in i.iteritems() if v == 'HD') for i in url: i.update( (k, '480p') for k, v in i.iteritems() if v == 'SD') q = [i['quality'].upper() for i in url] u = [i['url'] for i in url] select = control.selectDialog(q) if select == -1: return url = u[select] url = call.resolve(url) from modules import resolvers url = resolvers.request(url) if type(url) == list and len(url) == 1: url = url[0]['url'] elif type(url) == list: url = sorted(url, key=lambda k: k['quality']) for i in url: i.update((k, '720p') for k, v in i.iteritems() if v == 'HD') for i in url: i.update((k, '480p') for k, v in i.iteritems() if v == 'SD') q = [i['quality'].upper() for i in url] u = [i['url'] for i in url] select = control.selectDialog(q) if select == -1: return url = u[select] if url == None: raise Exception() except: return control.infoDialog('Unplayable stream') pass if playable == 'true': item = control.item(path=url) return control.resolve(int(sys.argv[1]), True, item) else: label = cleantitle(name) item = control.item(path=url, iconImage=image, thumbnailImage=image) item.setInfo(type='Video', infoLabels={'title': label}) control.playlist.clear() control.player.play(url, item)
def addDownload(name, url, image, provider=None): try: def download(): return [] result = cache.get(download, 600000000, table='rel_dl') result = [i['name'] for i in result] except: pass if name in result: return control.infoDialog('Item Already In Your Queue', name) try: if not provider == None: from modules.sources import sources url = sources().sourcesResolve(url, provider) if url == None: raise Exception() #legacy issue, will be removed later if 'afdah.org' in url and not '</source>' in url: url += '<source>afdah</source>' if '</source>' in url: source = re.compile('<source>(.+?)</source>').findall(url)[0] url = re.compile('(.+?)<source>').findall(url)[0] for i in ['_mv', '_tv', '_mv_tv']: try: call = __import__('modules.sources.%s%s' % (source, i), globals(), locals(), ['object'], -1).source() except: pass from modules import sources d = sources.sources() url = call.get_sources(url, d.hosthdfullDict, d.hostsdfullDict, d.hostlocDict) if type(url) == list: url = sorted(url, key=lambda k: k['quality']) url = url[0]['url'] url = call.resolve(url) from modules import resolvers url = resolvers.request(url) if type(url) == list: url = sorted(url, key=lambda k: k['quality']) url = url[0]['url'] if url == None: raise Exception() except: return control.infoDialog('Unplayable stream') pass try: u = url.split('|')[0] try: headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1])) except: headers = dict('') ext = os.path.splitext(urlparse.urlparse(u).path)[1][1:].lower() if ext == 'm3u8': raise Exception() #if not ext in ['mp4', 'mkv', 'flv', 'avi', 'mpg']: ext = 'mp4' dest = name + '.' + ext req = urllib2.Request(u, headers=headers) resp = urllib2.urlopen(req, timeout=30) size = int(resp.headers['Content-Length']) size = ' %.2f GB' % (float(size) / 1073741824) no = control.yesnoDialog(dest, 'Complete file is' + size, 'Continue with download?', name + ' - ' + 'Confirm Download', 'Confirm', 'Cancel') if no: return except: return control.infoDialog('Unable to download') pass def download(): return [{'name': name, 'url': url, 'image': image}] result = cache.get(download, 600000000, table='rel_dl') result = [i for i in result if not i['url'] == url] def download(): return result + [{'name': name, 'url': url, 'image': image}] result = cache.get(download, 0, table='rel_dl') control.infoDialog('Item Added to Queue', name)
def addDownload(name, url, image, provider=None): try: def download(): return [] result = cache.get(download, 600000000, table='rel_dl') result = [i['name'] for i in result] except: pass if name in result: return control.infoDialog('Item Already In Your Queue', name) try: if not provider == None: from modules.sources import sources url = sources().sourcesResolve(url, provider) if url == None: raise Exception() #legacy issue, will be removed later if 'afdah.org' in url and not '</source>' in url: url += '<source>afdah</source>' if '</source>' in url: source = re.compile('<source>(.+?)</source>').findall(url)[0] url = re.compile('(.+?)<source>').findall(url)[0] for i in ['_mv', '_tv', '_mv_tv']: try: call = __import__('modules.sources.%s%s' % (source, i), globals(), locals(), ['object'], -1).source() except: pass from modules import sources ; d = sources.sources() url = call.get_sources(url, d.hosthdfullDict, d.hostsdfullDict, d.hostlocDict) if type(url) == list: url = sorted(url, key=lambda k: k['quality']) url = url[0]['url'] url = call.resolve(url) from modules import resolvers url = resolvers.request(url) if type(url) == list: url = sorted(url, key=lambda k: k['quality']) url = url[0]['url'] if url == None: raise Exception() except: return control.infoDialog('Unplayable stream') pass try: u = url.split('|')[0] try: headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1])) except: headers = dict('') ext = os.path.splitext(urlparse.urlparse(u).path)[1][1:].lower() if ext == 'm3u8': raise Exception() #if not ext in ['mp4', 'mkv', 'flv', 'avi', 'mpg']: ext = 'mp4' dest = name + '.' + ext req = urllib2.Request(u, headers=headers) resp = urllib2.urlopen(req, timeout=30) size = int(resp.headers['Content-Length']) size = ' %.2f GB' % (float(size) / 1073741824) no = control.yesnoDialog(dest, 'Complete file is' + size, 'Continue with download?', name + ' - ' + 'Confirm Download', 'Confirm', 'Cancel') if no: return except: return control.infoDialog('Unable to download') pass def download(): return [{'name': name, 'url': url, 'image': image}] result = cache.get(download, 600000000, table='rel_dl') result = [i for i in result if not i['url'] == url] def download(): return result + [{'name': name, 'url': url, 'image': image}] result = cache.get(download, 0, table='rel_dl') control.infoDialog('Item Added to Queue', name)
def resolveUrl(name, url, audio, image, fanart, playable, content): try: if '.f4m'in url: label = cleantitle(name) ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext == 'f4m': raise Exception() from modules.libraries.f4mproxy.F4mProxy import f4mProxyHelper return f4mProxyHelper().playF4mLink(url, label, None, None,'',image) #legacy issue, will be removed later if 'afdah.org' in url and not '</source>' in url: url += '<source>afdah</source>' if '</source>' in url: source = re.compile('<source>(.+?)</source>').findall(url)[0] url = re.compile('(.+?)<source>').findall(url)[0] for i in ['_mv', '_tv', '_mv_tv']: try: call = __import__('modules.sources.%s%s' % (source, i), globals(), locals(), ['object'], -1).source() except: pass from modules import sources ; d = sources.sources() url = call.get_sources(url, d.hosthdfullDict, d.hostsdfullDict, d.hostlocDict) if type(url) == list and len(url) == 1: url = url[0]['url'] elif type(url) == list: url = sorted(url, key=lambda k: k['quality']) for i in url: i.update((k, '720p') for k, v in i.iteritems() if v == 'HD') for i in url: i.update((k, '480p') for k, v in i.iteritems() if v == 'SD') q = [i['quality'].upper() for i in url] u = [i['url'] for i in url] select = control.selectDialog(q) if select == -1: return url = u[select] url = call.resolve(url) from modules import resolvers url = resolvers.request(url) if type(url) == list and len(url) == 1: url = url[0]['url'] elif type(url) == list: url = sorted(url, key=lambda k: k['quality']) for i in url: i.update((k, '720p') for k, v in i.iteritems() if v == 'HD') for i in url: i.update((k, '480p') for k, v in i.iteritems() if v == 'SD') q = [i['quality'].upper() for i in url] u = [i['url'] for i in url] select = control.selectDialog(q) if select == -1: return url = u[select] if url == None: raise Exception() except: return control.infoDialog('Unplayable stream') pass if playable == 'true': item = control.item(path=url) return control.resolve(int(sys.argv[1]), True, item) else: label = cleantitle(name) item = control.item(path=url, iconImage=image, thumbnailImage=image) item.setInfo( type='Video', infoLabels = {'title': label} ) control.playlist.clear() control.player.play(url, item)