def sources(self, url): try: srcs = [] if url == None: return srcs if not str(url).startswith('http'): data = urlparse.parse_qs(url) data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data]) title = data['tvshowtitle'] if 'tvshowtitle' in data else data[ 'title'] imdb = data['imdb'] match = (title.translate(None, '\/:*?"\'<>|!,')).replace( ' ', '-').replace('--', '-').lower() if 'tvshowtitle' in data: url = '%s/tv-show/%s/season/%01d/episode/%01d' % ( self.base_link, match, int( data['season']), int(data['episode'])) else: url = '%s/movie/%s' % (self.base_link, match) result = client.request(url, limit='5') result = client.parseDOM(result, 'title')[0] if '%TITLE%' in result: raise Exception() r = client.request(url, output='extended') if not imdb in r[0]: raise Exception() else: url = urlparse.urljoin(self.base_link, url) r = client.request(url, output='extended') cookie = r[4] headers = r[3] result = r[0] try: auth = re.findall('__utmx=(.+)', cookie)[0].split(';')[0] except: auth = 'false' auth = 'Bearer %s' % urllib.unquote_plus(auth) headers['Authorization'] = auth headers['X-Requested-With'] = 'XMLHttpRequest' headers[ 'Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8' headers[ 'Accept'] = 'application/json, text/javascript, */*; q=0.01' headers['Cookie'] = cookie headers['Referer'] = url u = '/ajax/embeds.php' u = urlparse.urljoin(self.base_link, u) action = 'getEpisodeEmb' if '/episode/' in url else 'getMovieEmb' elid = urllib.quote( base64.encodestring(str(int(time.time()))).strip()) token = re.findall("var\s+tok\s*=\s*'([^']+)", result)[0] idEl = re.findall('elid\s*=\s*"([^"]+)', result)[0] post = { 'action': action, 'idEl': idEl, 'token': token, 'elid': elid } post = urllib.urlencode(post) c = client.request(u, post=post, headers=headers, output='cookie', error=True) headers['Cookie'] = cookie + '; ' + c r = client.request(u, post=post, headers=headers) r = str(json.loads(r)) r = client.parseDOM(r, 'iframe', ret='.+?') + client.parseDOM( r, 'IFRAME', ret='.+?') links = [] for i in r: try: links += [{ 'source': 'gvideo', 'quality': directstream.googletag(i)[0]['quality'], 'url': i, 'direct': True }] except: pass links += [{ 'source': 'openload.co', 'quality': 'SD', 'url': i, 'direct': False } for i in r if 'openload.co' in i] #links += [{'source': 'videomega.tv', 'quality': 'SD', 'url': i, 'direct': False} for i in r if 'videomega.tv' in i] for i in links: srcs.append({ 'source': i['source'], 'quality': i['quality'], 'provider': 'MoviesHD', 'url': i['url'], 'direct': i['direct'], 'debridonly': False }) return srcs except: return srcs
def resolve(self, url, resolverList): try: headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1])) except: headers = None link = url.split('|')[0] try: if not self.direct_link in link: raise Exception() video_id = headers['Referer'].split('-')[-1].replace('/', '') episode_id = link.split('/')[-1] key_gen = ''.join( random.choice(string.ascii_lowercase + string.digits) for x in range(16)) ################# FIX FROM MUCKY DUCK & XUNITY TALK ################ key = '87wwxtp3dqii' key2 = '7bcq9826avrbi6m49vd7shxkn985mhod' coookie = hashlib.md5(episode_id + key).hexdigest() + '=%s' % key_gen a = episode_id + key2 b = key_gen i = b[-1] h = b[:-1] b = i + h + i + h + i + h hash_id = uncensored(a, b) ################# FIX FROM MUCKY DUCK & XUNITY TALK ################ url = self.base_link + '/ajax/v2_get_sources/' + episode_id + '?hash=' + urllib.quote( hash_id) headers['Referer'] = headers['Referer'] + '\+' + coookie headers['Cookie'] = coookie result = client.request(url, headers=headers) result = result.replace('\\', '') url = re.findall('"?file"?\s*:\s*"(.+?)"', result) url = [directstream.googletag(i) for i in url] url = [i[0] for i in url if len(i) > 0] u = [] try: u += [[i for i in url if i['quality'] == '1080p'][0]] except: pass try: u += [[i for i in url if i['quality'] == 'HD'][0]] except: pass try: u += [[i for i in url if i['quality'] == 'SD'][0]] except: pass url = client.replaceHTMLCodes(u[0]['url']) if 'requiressl=yes' in url: url = url.replace('http://', 'https://') else: url = url.replace('https://', 'http://') return url except: pass try: if not self.embed_link in link: raise Exception() result = client.request(link, headers=headers) url = json.loads(result)['embed_url'] return url except: pass
def sources(self, url): try: srcs = [] if url == None: return srcs url = urlparse.urljoin(self.base_link, url) try: url, episode = re.findall('(.+?)\?episode=(\d*)$', url)[0] except: episode = None result = client.request(url, output='extended') r = result[0] cookie = result[4] try: quality = client.parseDOM(r, 'span', attrs={'class': 'quality'})[0].lower() except: quality = 'hd' if quality == 'cam' or quality == 'ts': quality = 'CAM' elif quality == 'hd' or 'hd ' in quality: quality = 'HD' else: quality = 'SD' category = client.parseDOM(r, 'div', ret='data-id', attrs={'id': '.+?'})[0] servers = client.parseDOM(r, 'ul', attrs={'data-range-id': '0'}) servers = zip(client.parseDOM(servers, 'a', ret='data-id'), client.parseDOM(servers, 'a')) servers = [(i[0], re.findall('(\d+)', i[1])) for i in servers] servers = [(i[0], ''.join(i[1][:1])) for i in servers] if not episode == None: servers = [ i for i in servers if '%01d' % int(i[1]) == '%01d' % int(episode) ] for s in servers[:5]: try: headers = { 'X-Requested-With': 'XMLHttpRequest', 'Referer': '%s/%s' % (url, s), 'Cookie': cookie } post = {'id': s[0], 'update': '0', 'film': category} post.update(self._token(post)) u = urlparse.urljoin(self.base_link, self.info_link) u += '?' + urllib.urlencode(post) r = client.request(u, headers=headers) r = json.loads(r) t = r['target'] if 'openload' in t: srcs.append({ 'source': 'openload.co', 'quality': quality, 'provider': 'Ninemovies', 'url': t, 'direct': False, 'debridonly': False }) post = r['params'] if not post: raise Exception() post['mobile'] = '0' post.update(self._token(post)) headers['Referer'] = u g = r['grabber'] + '?' + urllib.urlencode(post) r = client.request(g, headers=headers) r = json.loads(r)['data'] r = [i['file'] for i in r if 'file' in i] for i in r: try: srcs.append({ 'source': 'gvideo', 'quality': directstream.googletag(i)[0]['quality'], 'provider': 'Ninemovies', 'url': i, 'direct': True, 'debridonly': False }) except: pass except: pass return srcs except: return srcs
def sources(self, url): try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) r = client.request(url) r = client.parseDOM(r, 'div', attrs={'class': 'player_wraper'}) r = client.parseDOM(r, 'iframe', ret='src') for u in r: try: m = '"(?:url|src)"\s*:\s*"(.+?)"' d = urlparse.urljoin(self.base_link, u) s = client.request(d, referer=url, timeout='10') j = re.compile('<script>(.+?)</script>', re.DOTALL).findall(s) for i in j: try: s += jsunpack.unpack(i) except: pass u = re.findall(m, s) if not u: p = re.findall('location\.href\s*=\s*"(.+?)"', s) if not p: p = ['/player/%s' % d.strip('/').split('/')[-1]] p = urlparse.urljoin(self.base_link, p[0]) s = client.request(p, referer=d, timeout='10') u = re.findall(m, s) for i in u: try: sources.append({'provider':'movies14','source': 'gvideo', 'quality': directstream.googletag(i)[0]['quality'], 'language': 'en', 'url': i, 'direct': True, 'debridonly': False}) except: pass except: pass return sources except: return sources