Example #1
0
    def get_episode(self, url, imdb, tvdb, title, date, season, episode):
        try:
            tvshowtitle, year = re.compile('(.+?) [(](\d{4})[)]$').findall(
                url)[0]

            query = self.search_link % (urllib.quote_plus(tvshowtitle))
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)
            result = client.parseDOM(result, 'div', attrs={'id': 'post-.+?'})

            tvshowtitle = cleantitle.tv(tvshowtitle)
            season = '%01d' % int(season)
            episode = '%01d' % int(episode)
            years = [
                '%s' % str(year),
                '%s' % str(int(year) + 1),
                '%s' % str(int(year) - 1)
            ]

            result = [(client.parseDOM(i, 'a', ret='href')[0],
                       client.parseDOM(i, 'a', ret='title')[0],
                       client.parseDOM(i,
                                       'div',
                                       attrs={'class': 'status status-year'}))
                      for i in result]
            result = [x for y, x in enumerate(result) if x not in result[:y]]
            result = [(i[0], i[1], i[2][0]) for i in result if len(i[2]) > 0]
            result = [(i[0], re.compile('(.+?) Season (\d*)$').findall(i[1]),
                       i[2]) for i in result]
            result = [(i[0], i[1][0][0], i[1][0][1], i[2]) for i in result
                      if len(i[1]) > 0]
            result = [i for i in result if tvshowtitle == cleantitle.tv(i[1])]
            result = [i for i in result if season == i[2]]
            result = [(i[0], i[1], str(int(i[3]) - int(i[2]) + 1))
                      for i in result]
            result = [i[0] for i in result if any(x in i[2] for x in years)][0]

            url = urlparse.urljoin(self.base_link, result)

            result = cloudflare.source(url)
            result = client.parseDOM(result,
                                     'div',
                                     attrs={'id': 'episode_show'})[0]
            result = re.compile('(<a.+?</a>)').findall(result)
            result = [(client.parseDOM(i, 'a',
                                       ret='href')[0], client.parseDOM(i,
                                                                       'a')[0])
                      for i in result]
            result = [i[0] for i in result if episode == i[1]][0]

            try:
                url = re.compile('//.+?(/.+)').findall(result)[0]
            except:
                url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            return url
        except:
            return
Example #2
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []

            if url == None: return sources

            content = re.compile('(.+?)\?S\d*E\d*$').findall(url)

            try: url, season, episode = re.compile('(.+?)\?S(\d*)E(\d*)$').findall(url)[0]
            except: pass

            url = urlparse.urljoin(self.base_link, url)

            result = cloudflare.source(url, safe=True)

            if len(content) == 0:
                u = client.parseDOM(result, 'source', ret='src', attrs = {'type': 'video.+?'})[0]
            else:
                u = re.compile('playSeries\((\d+),(%01d),(%01d)\)' % (int(season), int(episode))).findall(result)[0]
                u = self.episode_link % (u[0], u[1], u[2])
                u = urlparse.urljoin(self.base_link, u)
                u = cloudflare.source(u, safe=True, headers=self.headers)
                u = json.loads(u)['url']

            url = '%s|User-Agent=%s&Referer=%s' % (u, urllib.quote_plus(client.agent()), urllib.quote_plus(url))

            sources.append({'source': 'MovieTV', 'quality': 'HD', 'provider': 'MovieTV', 'url': url})

            return sources
        except:
            return sources
Example #3
0
    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)

            query = urlparse.urljoin(self.base_link, self.ajax_link)
            post = re.compile('var\s*view_id\s*=\s*"(\d*)"').findall(result)[0]
            post = self.player_link % post

            result = cloudflare.source(query, post=post, headers=self.headers)
            result = json.loads(result)
            result = result['data']

            result = re.compile('"file"\s*:\s*"(.+?)".+?"label"\s*:\s*"(\d*p)"').findall(result)

            links = [{'url': i[0], 'quality': i[1]} for i in result if 'google' in i[0]]
            links += [{'url': '%s|User-Agent=%s&Referer=%s' % (i[0], urllib.quote_plus(client.agent()), urllib.quote_plus(url)), 'quality': i[1]} for i in result if not 'google' in i[0]]


            try: sources.append({'source': 'GVideo', 'quality': '1080p', 'provider': 'Dizigold', 'url': [i['url'] for i in links if i['quality'] == '1080p'][0]})
            except: pass
            try: sources.append({'source': 'GVideo', 'quality': 'HD', 'provider': 'Dizigold', 'url': [i['url'] for i in links if i['quality'] == '720p'][0]})
            except: pass
            try: sources.append({'source': 'GVideo', 'quality': 'SD', 'provider': 'Dizigold', 'url': [i['url'] for i in links if i['quality'] == '480p'][0]})
            except: sources.append({'source': 'GVideo', 'quality': 'SD', 'provider': 'Dizigold', 'url': [i['url'] for i in links if i['quality'] == '360p'][0]})


            return sources
        except:
            return sources
Example #4
0
    def get_movie(self, imdb, title, year):
        try:
            query = urlparse.urljoin(self.base_link, self.moviesearch_link + urllib.quote_plus(title))

            result = cloudflare.source(query)
            if result == None:
                result = cloudflare.source(self.proxy_link + urllib.quote_plus(query))

            r = client.parseDOM(result, "li", attrs={"class": "first element.+?"})
            r += client.parseDOM(result, "li", attrs={"class": "element.+?"})
            r += client.parseDOM(result, "header", attrs={"class": "entry-header"})

            title = cleantitle.movie(title)
            years = ["(%s)" % str(year), "(%s)" % str(int(year) + 1), "(%s)" % str(int(year) - 1)]

            result = [(client.parseDOM(i, "a", ret="href"), client.parseDOM(i, "a")) for i in r]
            result = [(i[0][0], i[1][0]) for i in result if len(i[0]) > 0 and len(i[1]) > 0]
            result = [(i[0], re.compile("(.+? [(]\d{4}[)])").findall(i[1])) for i in result]
            result = [(i[0], i[1][0]) for i in result if len(i[1]) > 0]
            result = [i for i in result if title == cleantitle.movie(i[1])]
            result = [i[0] for i in result if any(x in i[1] for x in years)][0]

            url = client.replaceHTMLCodes(result)
            try:
                url = urlparse.parse_qs(urlparse.urlparse(url).query)["u"][0]
            except:
                pass
            url = urlparse.urlparse(url).path
            url = url.encode("utf-8")
            return url
        except:
            return
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []
            
            if url == None: return sources

            url = self.base_link + url
            result = cloudflare.source(url)
            result = re.compile('src="/player_data(.+?)"></script>').findall(result)[0]
            url = self.base_link + '/player_data' + result
            result = cloudflare.source(url)
            result = re.compile('[[]"(.+?)"[]]').findall(result)[0]
            url = self.Hexadecoder(str(result)).replace('download','xmas-stream')

            audio_filme = ''
            try:
                quality = url.strip().upper()
                if '1080P' in quality: quality = '1080p'
                elif 'BRRIP' in quality or 'BDRIP' in quality or 'HDRIP' in quality or '720P' in quality: quality = 'HD'
                elif 'SCREENER' in quality: quality = 'SCR'
                elif 'CAM' in quality or 'TS' in quality: quality = 'CAM'
                else: quality = 'SD'
                if 'PT-PT' in quality or 'PORTUGU' in quality: audio_filme = ' | PT-PT'
                else: audio_filme = ''
            except: quality = 'SD'

            sources.append({'source': 'TugaIO'+audio_filme, 'quality': quality, 'provider': 'TugaIO', 'url': url})
            
            return sources
        except:
            return sources
Example #6
0
    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)

            links = re.compile('<a href="(.+?)?alternatif=(.+?)">').findall(
                result)
            url = links[-1][0] + 'alternatif=' + links[-1][1]

            result = cloudflare.source(url)
            iframe_link = re.compile('<iframe.+src="(.+).mp4"').findall(
                result)[0]

            try:
                sources.append({
                    'source': 'openload',
                    'quality': 'HD',
                    'provider': 'Dizilab',
                    'url': iframe_link + '.mp4'
                })
            except:
                pass

            return sources
        except:
            return sources
Example #7
0
    def get_show(self, imdb, tvdb, tvshowtitle, year):
        try:
            query = urlparse.urljoin(self.base_link, self.ajax_link)
            post = self.search_link % (urllib.quote_plus(tvshowtitle))

            result = cloudflare.source(query, post=post, headers=self.headers)
            result = json.loads(result)

            tvshowtitle = cleantitle.tv(tvshowtitle)
            years = ['%s' % str(year), '%s' % str(int(year)+1), '%s' % str(int(year)-1)]

            result = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'h3'), re.compile('<h5>.+?(\d{4}).+?</h5>').findall(i)) for i in result]
            result = [(i[0][0], i[1][0], i[2][0]) for i in result if len(i[0]) > 0 and len(i[1]) > 0 and len(i[2]) > 0]
            result = [i for i in result if tvshowtitle == cleantitle.tv(i[1])]
            result = [i[0] for i in result if any(x in i[2] for x in years)][0]

            url = urlparse.urljoin(self.base_link, result)

            result = cloudflare.source(url)

            url = client.parseDOM(result, 'div', ret='value', attrs = {'id': 'icerikid'})[0]
            url = url.encode('utf-8')
            return url
        except:
            return
Example #8
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        sources = []

        if url == None: return sources

        orgUrl = url
        url = urlparse.urljoin(self.base_link, url)
        url = url.replace('·', '\xb7')

        result = cloudflare.source(url)

        if '?' not in url:
            url = client.parseDOM(result, 'a', attrs={'href':orgUrl+'/Movie.+?'}, ret='href')[0]
            url = urlparse.urljoin(self.base_link, url)
            result = cloudflare.source(url)

        items = client.parseDOM(result, 'select', attrs={'id':'selectQuality'})
        items = re.compile('"(.+?)".+?(\d+?)p').findall(items[0])

        for item in items:
            try:
                u = base64.b64decode(item[0])
                u = u.encode('utf-8')
                if item[1] not in ['720', '1080']:
                    quality = 'SD'
                else:
                    quality = 'HD'

                sources.append({'source': 'GVideo', 'quality': quality, 'provider': 'KissCartoon', 'url': u})
            except:
                pass
            
        return sources
Example #9
0
    def get_movie(self, imdb, title, year):
        try:
            query = urlparse.urljoin(self.base_link, self.moviesearch_link + urllib.quote_plus(title))

            result = cloudflare.source(query)
            if result == None: result = cloudflare.source(self.proxy_link + urllib.quote_plus(query))

            r = client.parseDOM(result, 'li', attrs = {'class': 'first element.+?'})
            r += client.parseDOM(result, 'li', attrs = {'class': 'element.+?'})
            r += client.parseDOM(result, 'header', attrs = {'class': 'entry-header'})

            title = cleantitle.movie(title)
            years = ['(%s)' % str(year), '(%s)' % str(int(year)+1), '(%s)' % str(int(year)-1)]

            result = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'a')) for i in r]
            result = [(i[0][0], i[1][0]) for i in result if len(i[0]) > 0 and len(i[1]) > 0]
            result = [(i[0], re.compile('(.+? [(]\d{4}[)])').findall(i[1])) for i in result]
            result = [(i[0], i[1][0]) for i in result if len(i[1]) > 0]
            result = [i for i in result if title == cleantitle.movie(i[1])]
            result = [i[0] for i in result if any(x in i[1] for x in years)][0]

            url = client.replaceHTMLCodes(result)
            try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0]
            except: pass
            url = urlparse.urlparse(url).path
            url = url.encode('utf-8')
            return url
        except:
            return
Example #10
0
    def get_episode(self, url, imdb, tvdb, title, date, season, episode):
        try:
            if url == None: return

            season = '%01d' % int(season)
            episode = '%01d' % int(episode)

            query = '%s "Season %s" "Episode %s"' % (url, season, episode)
            query = urlparse.urljoin(self.base_link, self.tvsearch_link + urllib.quote_plus(query))

            result = cloudflare.source(query)
            if result == None: result = cloudflare.source(self.proxy_link + urllib.quote_plus(query))

            r = client.parseDOM(result, 'li', attrs = {'class': 'first element.+?'})
            r += client.parseDOM(result, 'li', attrs = {'class': 'element.+?'})
            r += client.parseDOM(result, 'header', attrs = {'class': 'entry-header'})

            tvshowtitle = cleantitle.tv(url)

            result = [(client.parseDOM(i, 'a', ret='href'), re.compile('(.+?): Season (\d*).+?Episode (\d*)').findall(i)) for i in r]
            result = [(i[0][0], i[1][-1]) for i in result if len(i[0]) > 0 and len(i[1]) > 0]
            result = [(i[0], i[1][0].split('>')[-1], i[1][1], i[1][2]) for i in result]
            result = [i for i in result if season == '%01d' % int(i[2]) and episode == '%01d' % int(i[3])]
            result = [i[0] for i in result if tvshowtitle == cleantitle.tv(i[1])][0]

            url = client.replaceHTMLCodes(result)
            try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0]
            except: pass
            url = urlparse.urlparse(url).path
            url = url.encode('utf-8')
            return url
        except:
            return
Example #11
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []

            if url == None: return sources

            content = re.compile('(.+?)\?S\d*E\d*$').findall(url)

            try:
                url, season, episode = re.compile(
                    '(.+?)\?S(\d*)E(\d*)$').findall(url)[0]
            except:
                pass

            self.base_link = random.choice(
                [self.base_link_1, self.base_link_2])

            post_id = re.compile('/.+?/(.+)').findall(url)[0].rsplit('/')[0]

            player = urlparse.urljoin(self.base_link, self.player_link)

            if len(content) == 0:
                post = self.player_post_1 % post_id
            else:
                post = cloudflare.source(player,
                                         post=self.player_post_2 % post_id,
                                         headers=self.headers)
                post = client.parseDOM(post,
                                       'ul',
                                       attrs={'class': 'movie-parts'})[0]
                post = client.parseDOM(post, 'li')
                post = [(client.parseDOM(i, 'a',
                                         ret='href'), client.parseDOM(i, 'a'))
                        for i in post]
                post = [(i[0][0], i[1][0]) for i in post
                        if len(i[0]) > 0 and len(i[1]) > 0]
                post = [i[0] for i in post if '%01d' % int(episode) == i[1]][0]
                post = urlparse.parse_qs(
                    urlparse.urlparse(post).query)['part_id'][0]
                post = self.player_post_3 % (post_id, post)

            url = cloudflare.source(player, post=post, headers=self.headers)
            url = re.compile('<source\s+src="([^"]+)').findall(url)[0]
            url = client.replaceHTMLCodes(url)

            if 'google' in url: quality = googleplus.tag(url)[0]['quality']
            else: quality = 'HD'

            sources.append({
                'source': 'GVideo',
                'quality': quality,
                'provider': 'Xmovies',
                'url': url
            })

            return sources
        except:
            return sources
Example #12
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []

            if url == None: return sources

            content = re.compile('(.+?)\?S\d*E\d*$').findall(url)

            try:
                url, season, episode = re.compile(
                    '(.+?)\?S(\d*)E(\d*)$').findall(url)[0]
            except:
                pass

            url = urlparse.urljoin(self.base_link, url)

            result = cloudflare.source(
                url,
                safe=True,
                timeout='10',
                headers={'Referer': 'http://movietv.to/'})

            if len(content) == 0:
                u = client.parseDOM(result,
                                    'source',
                                    ret='src',
                                    attrs={'type': 'video.+?'})[0]
            else:
                u = re.compile('playSeries\((\d+),(%01d),(%01d)\)' %
                               (int(season), int(episode))).findall(result)[0]
                u = '/series/getLink?id=%s&s=%s&e=%s' % (u[0], u[1], u[2])
                u = urlparse.urljoin(self.base_link, u)
                u = cloudflare.source(u,
                                      safe=True,
                                      timeout='10',
                                      headers={
                                          'X-Requested-With': 'XMLHttpRequest',
                                          'Referer': url
                                      })
                u = json.loads(u)['url']

            url = '%s|User-Agent=%s&Referer=%s' % (
                u, urllib.quote_plus(client.agent()), urllib.quote_plus(url))

            sources.append({
                'source': 'MovieTV',
                'quality': 'HD',
                'provider': 'MovieTV',
                'url': url
            })

            return sources
        except:
            return sources
Example #13
0
    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)

            links = re.compile('file\s*:\s*"(.+?)"').findall(result)
            links = [i for i in links if 'google' in i]

            for link in links:
                try:
                    i = googleplus.tag(link)[0]
                    sources.append({
                        'source': 'GVideo',
                        'quality': i['quality'],
                        'provider': 'Dizilab',
                        'url': i['url']
                    })
                except:
                    pass

            return sources
        except:
            return sources
Example #14
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []

            if url == None: return sources

            result = cloudflare.source(url)

            iframeUrl = client.parseDOM(result, 'iframe', ret='src')[0]
            headers = {'Referer': url}
            result = client.source(iframeUrl, headers=headers)

            for match in re.compile(
                    '"file"\s*:\s*"([^"]+)"\s*,\s*"label"\s*:\s*"([^"]+)'
            ).findall(result):
                if match[1] == '720p':
                    quality = 'HD'
                else:
                    quality = 'SD'
                sources.append({
                    'source': 'gvideo',
                    'quality': quality,
                    'provider': 'USMoviesHD',
                    'url': match[0].replace(' ', '')
                })

            return sources
        except:
            return sources
    def get_movie(self, imdb, title, year):
        try:
            query = self.search_link % urllib.quote(title)
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)

            title = cleantitle.movie(title)
            years = ["%s" % str(year), "%s" % str(int(year) + 1), "%s" % str(int(year) - 1)]

            result = client.parseDOM(result, "div", attrs={"class": "ml-item"})
            result = [
                (
                    client.parseDOM(i, "a", ret="href"),
                    client.parseDOM(i, "h2"),
                    re.compile("class *= *['|\"]jt-info['|\"]>(\d{4})<").findall(i),
                )
                for i in result
            ]
            result = [(i[0][0], i[1][0], i[2][0]) for i in result if len(i[0]) > 0 and len(i[1]) > 0 and len(i[2]) > 0]
            result = [i for i in result if any(x in i[2] for x in years)]
            result = [(i[0], re.sub("\d{4}$", "", i[1]).strip()) for i in result]
            result = [i[0] for i in result if title == cleantitle.movie(i[1])][0]

            try:
                url = re.compile("//.+?(/.+)").findall(result)[0]
            except:
                url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode("utf-8")
            return url
        except:
            return
Example #16
0
    def get_movie(self, imdb, title, year):
        try:
            #title,genero_imdb = self.get_portuguese_name(imdb, title, year)

            query = self.base_link + self.search_link + str(
                title.replace(' ', '+'))

            result = self.abrir_url(query)
            result = client.parseDOM(result,
                                     'div',
                                     attrs={'class': 'short-film'})
            a = str(len(result))

            for div in result:
                try:
                    result_url = re.compile('href="(.+?)"').findall(div)[0]
                except:
                    pass
                O_title = cloudflare.source(result_url)
                try:
                    O_title = re.compile(
                        'tulooriginal.+?/span><pclass="text"><strong>(.+?)</strong></p>'
                    ).findall(O_title.replace('\n', '').replace(' ', ''))[0]
                except:
                    O_title = 'O_title'
                if O_title == title.replace(' ', ''):
                    url = result_url
                    break
            return url
        except:
            return
Example #17
0
    def get_show(self, imdb, tvdb, tvshowtitle, year):
        try:
            result = cache.get(self.moviefarsi_shows, 168, table='chronic')
            if result == None: return

            tvshowtitle = cleantitle.tv(tvshowtitle)
            years = ['%s' % str(year), '%s' % str(int(year)+1), '%s' % str(int(year)-1)]

            result = [i[0] for i in result if tvshowtitle == cleantitle.tv(i[1])][0]

            url = urlparse.urljoin(self.base_link, result)

            result = client.source(url, cookie=self.cookie_link)
            if result == None: result = cloudflare.source(url)

            result = client.parseDOM(result, 'article', attrs = {'id': 'post-\d*'})[0]

            y = client.parseDOM(result, 'strong')[0]
            y = re.compile('(\d{4})').findall(y)[0]
            if not y in years: return

            result = client.parseDOM(result, 'a', ret='href')[0]

            url = re.compile('//.+?/(\d*)').findall(result)[0]
            url = url.encode('utf-8')
            return url
        except:
            return
Example #18
0
    def get_movie(self, imdb, title, year):
        try:
            query = self.search_link % urllib.quote_plus(title)
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)

            result = result.decode("iso-8859-1").encode("utf-8")
            result = client.parseDOM(result, "div", attrs={"class": "movie_table"})

            title = cleantitle.movie(title)
            years = ["(%s)" % str(year), "(%s)" % str(int(year) + 1), "(%s)" % str(int(year) - 1)]
            result = [(client.parseDOM(i, "a", ret="href")[0], client.parseDOM(i, "a", ret="title")[1]) for i in result]
            result = [i for i in result if title == cleantitle.movie(i[1])]
            result = [i[0] for i in result if any(x in i[1] for x in years)][0]

            url = client.replaceHTMLCodes(result)
            try:
                url = urlparse.parse_qs(urlparse.urlparse(url).query)["u"][0]
            except:
                pass
            url = urlparse.urlparse(url).path
            url = url.encode("utf-8")
            return url
        except:
            return
Example #19
0
    def get_movie(self, imdb, title, year):
        try:
            query = self.search_link % (urllib.quote_plus(title))
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)
            result = client.parseDOM(result, 'div', attrs = {'id': 'post-.+?'})

            title = cleantitle.movie(title)
            years = ['%s' % str(year), '%s' % str(int(year)+1), '%s' % str(int(year)-1)]

            result = [(client.parseDOM(i, 'a', ret='href')[0], client.parseDOM(i, 'a', ret='title')[0], client.parseDOM(i, 'div', attrs = {'class': 'status status-year'}), client.parseDOM(i, 'div', attrs = {'class': 'mark-8'})) for i in result]
            result = [(i[0], i[1], i[2][0], i[3]) for i in result if len(i[2]) > 0]
            result = [(i[0], i[1], i[2], i[3], re.compile('Season (\d*)$').findall(i[1])) for i in result]
            result = [(i[0], i[1], i[2], i[3]) for i in result if len(i[4]) == 0]
            result = [(i[0], i[1], i[2]) for i in result if len(i[3]) == 0]
            result = [i for i in result if title == cleantitle.movie(i[1])]
            result = [i[0] for i in result if any(x in i[2] for x in years)][0]

            try: url = re.compile('//.+?(/.+)').findall(result)[0]
            except: url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            return url
        except:
            return
Example #20
0
 def get_movie(self, imdb, title, year):
     try:
         query = self.search_link % (urllib.quote_plus(title))
         query = urlparse.urljoin(self.base_link, query)
         result = cloudflare.source(query)
         #result = client.source(query).decode('utf-8').encode('utf-8')
         result = result.decode('utf-8').encode('utf-8')
         result = client.parseDOM(result, 'li')
         title = cleantitle.movie(title)
         result = [(client.parseDOM(i, 'a',
                                    ret='href')[0], client.parseDOM(i,
                                                                    'a')[0])
                   for i in result]
         result = [(i[0], re.sub('<.+?>|</.+?>', '', i[1])) for i in result]
         result = [i for i in result if title == cleantitle.movie(i[1])]
         result = result[-1][0]
         try:
             url = re.compile('//.+?(/.+)').findall(result)[0]
         except:
             url = result
         url = client.replaceHTMLCodes(url)
         url = url.encode('utf-8')
         return url
     except:
         return
Example #21
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []

            if url == None: return sources

            content = re.compile('(s\d+e\d+)').findall(url)

            if len(content) == 0: url = urlparse.urljoin(self.base_link, url)
            else: url = urlparse.urljoin(self.tvbase_link, url)

            result = cloudflare.source(url)

            #if result == None: result = client.source(self.__proxy() + urllib.quote_plus(url))

            result = client.parseDOM(result, 'iframe', ret='src')

            url = [i for i in result if 'openload.' in i][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)['q'][0]
            except: pass

            if openload.check(url) == False: raise Exception()
            sources.append({'source': 'Openload', 'quality': 'HD', 'provider': 'YIFYstreamv2', 'url': url})

            return sources
        except:
            return sources
Example #22
0
    def get_movie(self, imdb, title, year):
        try:
            #title,genero_imdb = self.get_portuguese_name(imdb, title, year)

            query = self.base_link + self.search_link + str(
                title.replace(' ', '+'))

            #result = self.abrir_url(query)
            result = cloudflare.source(query)
            result = re.compile(
                '<div class="browse-movie-wrap.+?"> <a href="(.+?)" class="browse-movie-link"> <figure>'
            ).findall(result)

            a = str(len(result))

            for result_url in result:
                try:
                    result_imdb = re.compile('=(.*)').findall(result_url)[0]
                except:
                    result_imdb = 'result_imdb'
                if imdb == 'tt' + result_imdb:
                    url = self.base_link + '/Filme?F=' + result_imdb
                    break
            return url
        except:
            return
Example #23
0
    def get_episode(self, url, imdb, tvdb, title, date, season, episode):
        try:
            if url == None: return

            query = '%s S%02dE%02d' % (url, int(season), int(episode))
            query = urlparse.urljoin(self.tvbase_link, self.search_link + urllib.quote_plus(query))

            result = cloudflare.source(query)

            #if result == None: result = client.source(self.__proxy() + urllib.quote_plus(query))

            r = client.parseDOM(result, 'li', attrs = {'class': 'first element.+?'})
            r += client.parseDOM(result, 'li', attrs = {'class': 'element.+?'})
            r += client.parseDOM(result, 'header', attrs = {'class': 'entry-heade.+?'})

            tvshowtitle = cleantitle.tv(url)
            hdlr = 'S%02dE%02d' % (int(season), int(episode))

            result = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'a')) for i in r]
            result = [(i[0][0], i[1][0].upper()) for i in result if len(i[0]) > 0 and len(i[1]) > 0]
            result = [(i[0], re.compile('(.+?) (S\d+E\d+)').findall(i[1])) for i in result]
            result = [(i[0], i[1][0][0], i[1][0][-1]) for i in result if len(i[1]) > 0]
            result = [i for i in result if tvshowtitle == cleantitle.tv(i[1])]
            result = [i[0] for i in result if hdlr == i[2]][0]

            url = client.replaceHTMLCodes(result)
            try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0]
            except: pass
            try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['q'][0]
            except: pass
            url = urlparse.urlparse(url).path
            url = url.encode('utf-8')
            return url
        except:
            return
Example #24
0
    def get_episode(self, url, imdb, tvdb, title, date, season, episode):
        try:
            tvshowtitle, year = re.compile('(.+?) [(](\d{4})[)]$').findall(url)[0]

            query = self.search_link % urllib.quote(tvshowtitle)
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)

            tvshowtitle = cleantitle.tv(tvshowtitle)
            season = '%01d' % int(season)
            episode = '%01d' % int(episode)
            years = ['%s' % str(year), '%s' % str(int(year)+1), '%s' % str(int(year)-1)]

            result = client.parseDOM(result, 'div', attrs = {'class': 'ml-item'})
            result = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'h2'), re.compile('class *= *[\'|\"]jt-info[\'|\"]>(\d{4})<').findall(i)) for i in result]
            result = [(i[0][0], i[1][0], i[2][0]) for i in result if len(i[0]) > 0 and len(i[1]) > 0 and len(i[2]) > 0]
            result = [(i[0], re.compile('(.+?) - Season (\d*)$').findall(i[1]), i[2]) for i in result]
            result = [(i[0], i[1][0][0], i[1][0][1], i[2]) for i in result if len(i[1]) > 0]
            result = [i for i in result if tvshowtitle == cleantitle.tv(i[1])]
            result = [i for i in result if season == i[2]]
            result = [(i[0], i[1], str(int(i[3]) - int(i[2]) + 1)) for i in result]
            result = [i[0] for i in result if any(x in i[2] for x in years)][0]

            result += '?S%02dE%02d' % (int(season), int(episode))

            try: url = re.compile('//.+?(/.+)').findall(result)[0]
            except: url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            return url
        except:
            return
Example #25
0
    def get_movie(self, imdb, title, year):
        try:
            query = urlparse.urljoin(self.base_link, self.moviesearch_link + urllib.quote_plus(title))

            result = cloudflare.source(query)
            if result == None: result = client.source(self.proxy_link + urllib.quote_plus(query))

            r = client.parseDOM(result, 'li', attrs = {'class': 'first element.+?'})
            r += client.parseDOM(result, 'li', attrs = {'class': 'element.+?'})
            r += client.parseDOM(result, 'header', attrs = {'class': 'entry-header'})

            title = cleantitle.movie(title)
            years = ['(%s)' % str(year), '(%s)' % str(int(year)+1), '(%s)' % str(int(year)-1)]

            result = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'a')) for i in r]
            result = [(i[0][0], i[1][0]) for i in result if len(i[0]) > 0 and len(i[1]) > 0]
            result = [(i[0], re.compile('(.+? [(]\d{4}[)])').findall(i[1])) for i in result]
            result = [(i[0], i[1][0]) for i in result if len(i[1]) > 0]
            result = [i for i in result if title == cleantitle.movie(i[1])]
            result = [i[0] for i in result if any(x in i[1] for x in years)][0]

            url = client.replaceHTMLCodes(result)
            try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['q'][0]
            except: pass
            url = urlparse.urlparse(url).path
            url = url.encode('utf-8')
            return url
        except:
            return
Example #26
0
    def get_movie(self, imdb, title, year):
        try:
            query = self.search_link % urllib.quote(title)
            query = urlparse.urljoin(self.base_link, query)
            control.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@ %s" % query)
            result = cloudflare.source(query)
            title = cleantitle.movie(title)
            years = ['%s' % str(year), '%s' % str(int(year)+1), '%s' % str(int(year)-1)]
            r = client.parseDOM(result, 'div', attrs = {'class': 'ml-item'})
            r = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'a', ret='title')) for i in r]
            r = [(i[0][0], i[1][-1]) for i in r if len(i[0]) > 0 and len(i[1]) > 0]
            r = [(re.sub('http.+?//.+?/','', i[0]), i[1]) for i in r]
            r = [('/'.join(i[0].split('/')[:2]), i[1]) for i in r]
            r = [x for y,x in enumerate(r) if x not in r[:y]]
            r = [i for i in r if title == cleantitle.movie(i[1])]
            u = [i[0] for i in r][0]

            url = urlparse.urljoin(self.base_link, u)
            url = urlparse.urlparse(url).path
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            control.log("@@@@@@@@@@@@@@@ URL  %s" % url)

            return url
        except:
            return
Example #27
0
    def get_movie(self, imdb, title, year):
        try:
            query = self.search_link % (urllib.quote_plus(title))
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)

            result = client.parseDOM(result, "ul", attrs={"class": "listing-videos.+?"})[0]
            result = client.parseDOM(result, "li", attrs={"class": ".+?"})

            title = cleantitle.movie(title)
            years = ["(%s)" % str(year), "(%s)" % str(int(year) + 1), "(%s)" % str(int(year) - 1)]
            result = [(client.parseDOM(i, "a", ret="href")[0], client.parseDOM(i, "a", ret="title")[0]) for i in result]
            result = [i for i in result if title == cleantitle.movie(i[1])]
            result = [i[0] for i in result if any(x in i[1] for x in years)][0]

            try:
                url = re.compile("//.+?(/.+)").findall(result)[0]
            except:
                url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode("utf-8")
            return url
        except:
            return
Example #28
0
    def get_show(self, imdb, tvdb, tvshowtitle, year):
        try:
            query = self.search_link % (urllib.quote_plus(tvshowtitle))
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)
            result = client.parseDOM(result, 'div', attrs = {'class': 'tv-series-single'})

            tvshowtitle = cleantitle.tv(tvshowtitle)
            years = ['%s' % str(year), '%s' % str(int(year)+1), '%s' % str(int(year)-1)]

            result = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'a', {'class': 'title'}), re.compile('<span>\s*(\d{4})\s*</span>').findall(i)) for i in result]
            result = [(i[0][0], i[1][0], i[2][0]) for i in result if len(i[0]) > 0 and len(i[1]) > 0 and len(i[2]) > 0]
            result = [(i[0], re.compile('([^>]+)$').findall(i[1]), i[2]) for i in result]
            result = [(i[0], i[1][0], i[2]) for i in result if len(i[1]) > 0]

            result = [i for i in result if tvshowtitle == cleantitle.tv(i[1])]
            result = [i[0] for i in result if any(x in i[2] for x in years)][0]

            try: url = re.compile('//.+?(/.+)').findall(result)[0]
            except: url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            return url
        except:
            return
Example #29
0
    def get_show(self, imdb, tvdb, tvshowtitle, year):
        try:
            query = self.search_link % (urllib.quote_plus(tvshowtitle))
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)
            result = client.parseDOM(result, 'div', attrs = {'class': 'tv-series-single'})

            tvshowtitle = cleantitle.tv(tvshowtitle)
            years = ['%s' % str(year), '%s' % str(int(year)+1), '%s' % str(int(year)-1)]

            result = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'a', {'class': 'title'}), re.compile('<span>\s*(\d{4})\s*</span>').findall(i)) for i in result]
            result = [(i[0][0], i[1][0], i[2][0]) for i in result if len(i[0]) > 0 and len(i[1]) > 0 and len(i[2]) > 0]
            result = [(i[0], re.compile('([^>]+)$').findall(i[1]), i[2]) for i in result]
            result = [(i[0], i[1][0], i[2]) for i in result if len(i[1]) > 0]

            result = [i for i in result if tvshowtitle == cleantitle.tv(i[1])]
            result = [i[0] for i in result if any(x in i[2] for x in years)][0]

            try: url = re.compile('//.+?(/.+)').findall(result)[0]
            except: url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            return url
        except:
            return
Example #30
0
    def get_movie(self, imdb, title, year):
        try:
            query = self.search_link % (urllib.quote_plus(title))
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)
            result = client.parseDOM(result, 'div', attrs = {'id': 'post-.+?'})

            title = cleantitle.movie(title)
            years = ['%s' % str(year), '%s' % str(int(year)+1), '%s' % str(int(year)-1)]

            result = [(client.parseDOM(i, 'a', ret='href')[0], client.parseDOM(i, 'a', ret='title')[0], client.parseDOM(i, 'div', attrs = {'class': 'status status-year'}), client.parseDOM(i, 'div', attrs = {'class': 'mark-8'})) for i in result]
            result = [(i[0], i[1], i[2][0], i[3]) for i in result if len(i[2]) > 0]
            result = [(i[0], i[1], i[2], i[3], re.compile('Season (\d*)$').findall(i[1])) for i in result]
            result = [(i[0], i[1], i[2], i[3]) for i in result if len(i[4]) == 0]
            result = [(i[0], i[1], i[2]) for i in result if len(i[3]) == 0]
            result = [i for i in result if title == cleantitle.movie(i[1])]
            result = [i[0] for i in result if any(x in i[2] for x in years)][0]

            try: url = re.compile('//.+?(/.+)').findall(result)[0]
            except: url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            return url
        except:
            return
    def get_movie(self, imdb, title, year):
        try:
            query = self.search_link % (urllib.quote_plus(title))
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)

            title = cleantitle.movie(title)
            years = ['%s' % str(year), '%s' % str(int(year)+1), '%s' % str(int(year)-1)]

            result = client.parseDOM(result, 'li', attrs = {'class': 'border.+?'})
            result = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'a')) for i in result]
            result = [(i[0][0], i[1][0]) for i in result if len(i[0]) > 0 and len(i[1]) > 0]
            result = [(i[0], client.parseDOM(i[1], 'span')) for i in result]
            result = [(i[0], i[1][0]) for i in result if len(i[1]) > 0]
            result = [(i[0], re.compile('(.+)[\.|\(|\[|\s](\d{4})[\.|\)|\]|\s|]').findall(i[1])) for i in result]
            result = [(i[0], i[1][0][0].strip(), i[1][0][1]) for i in result if len(i[1]) > 0]
            result = [i for i in result if any(x in i[2] for x in years)]
            result = [i[0] for i in result if title == cleantitle.movie(i[1])][0]

            try: url = re.compile('//.+?(/.+)').findall(result)[0]
            except: url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            return url
        except:
            return
Example #32
0
    def get_movie(self, imdb, title, year):
        try:
            query = self.search_link % (urllib.quote_plus(title))
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)

            result = client.parseDOM(result,
                                     'ul',
                                     attrs={'class': 'listing-videos.+?'})[0]
            result = client.parseDOM(result, 'li', attrs={'class': '.+?'})

            title = cleantitle.movie(title)
            years = [
                '(%s)' % str(year),
                '(%s)' % str(int(year) + 1),
                '(%s)' % str(int(year) - 1)
            ]
            result = [(client.parseDOM(i, 'a', ret='href')[0],
                       client.parseDOM(i, 'a', ret='title')[0])
                      for i in result]
            result = [i for i in result if title == cleantitle.movie(i[1])]
            result = [i[0] for i in result if any(x in i[1] for x in years)][0]

            try:
                url = re.compile('//.+?(/.+)').findall(result)[0]
            except:
                url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            return url
        except:
            return
Example #33
0
    def get_movie(self, imdb, title, year):
        try:
            query = self.search_link % urllib.quote_plus(title)
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)

            result = result.decode('iso-8859-1').encode('utf-8')
            result = client.parseDOM(result,
                                     'div',
                                     attrs={'class': 'movie_table'})

            title = cleantitle.movie(title)
            years = [
                '(%s)' % str(year),
                '(%s)' % str(int(year) + 1),
                '(%s)' % str(int(year) - 1)
            ]
            result = [(client.parseDOM(i, 'a', ret='href')[0],
                       client.parseDOM(i, 'a', ret='title')[1])
                      for i in result]
            result = [i for i in result if title == cleantitle.movie(i[1])]
            result = [i[0] for i in result if any(x in i[1] for x in years)][0]

            url = client.replaceHTMLCodes(result)
            try:
                url = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0]
            except:
                pass
            url = urlparse.urlparse(url).path
            url = url.encode('utf-8')
            return url
        except:
            return
Example #34
0
    def get_show(self, imdb, tvdb, tvshowtitle, year):
        try:
            query = self.search_link % urllib.quote_plus(tvshowtitle)
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query, safe=True)
            result = client.parseDOM(result, 'div', {'class': 'movie-grid grid-.+?'})

            tvshowtitle = cleantitle.tv(tvshowtitle)
            years = ['%s' % str(year), '%s' % str(int(year)+1), '%s' % str(int(year)-1)]

            result = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'div', {'class': 'movie-grid-title'})) for i in result]
            result = [(i[0][0], i[1][0], i[1][0]) for i in result if len(i[0]) > 0 and len(i[1]) > 0]
            result = [(i[0], i[1].split('<')[0].strip(), client.parseDOM(i[2], 'span', {'class': '[^"]*year'})) for i in result]
            result = [(i[0], i[1], i[2][0]) for i in result if len(i[2]) > 0]
            result = [i for i in result if '/series/' in i[0]]
            result = [i for i in result if tvshowtitle == cleantitle.tv(i[1])]
            result = [i[0] for i in result if any(x in i[2] for x in years)][0]

            try: url = re.compile('//.+?(/.+)').findall(result)[0]
            except: url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            return url
        except:
            return
Example #35
0
    def get_movie(self, imdb, title, year):
        try:
            query = self.search_link
            query = urlparse.urljoin(self.base_link, query)

            if title == 'WALLAE':
                title = 'WALL·E'

            post = urllib.urlencode({'keyword': title})
            result = cloudflare.source(query, post=post)

            result = client.parseDOM(result,
                                     'table',
                                     attrs={'class': 'listing'})
            result = client.parseDOM(result, 'a', ret='href')

            title = cleantitle.movie(title)
            try:
                url = [i for i in result if title in cleantitle.movie(i)][0]
            except:
                pass

            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')

            return url
        except:
            return
Example #36
0
    def get_episode(self, url, imdb, tvdb, title, date, season, episode):
        try:
            if url == None: return

            query = urlparse.urljoin(self.base_link, self.ajax_link)
            post = self.episode_link % ('%01d' % int(season), url)

            result = cloudflare.source(query, post=post, headers=self.headers)
            result = json.loads(result)
            result = result['data']
            result = re.compile('href="(.+?)"').findall(result)
            result = [
                i for i in result
                if '/%01d-sezon/%01d-bolum' % (int(season), int(episode)) in i
            ][-1]

            try:
                url = re.compile('//.+?(/.+)').findall(result)[0]
            except:
                url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            return url
        except:
            return
Example #37
0
    def get_episode(self, url, imdb, tvdb, title, date, season, episode):
        try:
            if url == None: return

            season = '%01d' % int(season)
            episode = '%01d' % int(episode)

            query = '%s "Season %s" "Episode %s"' % (url, season, episode)
            query = urlparse.urljoin(self.base_link, self.tvsearch_link + urllib.quote_plus(query))

            result = cloudflare.source(query)
            if result == None: result = client.source(self.proxy_link + urllib.quote_plus(query))

            r = client.parseDOM(result, 'li', attrs = {'class': 'first element.+?'})
            r += client.parseDOM(result, 'li', attrs = {'class': 'element.+?'})
            r += client.parseDOM(result, 'header', attrs = {'class': 'entry-header'})

            tvshowtitle = cleantitle.tv(url)

            result = [(client.parseDOM(i, 'a', ret='href'), re.compile('(.+?): Season (\d*).+?Episode (\d*)').findall(i)) for i in r]
            result = [(i[0][0], i[1][-1]) for i in result if len(i[0]) > 0 and len(i[1]) > 0]
            result = [(i[0], i[1][0].split('>')[-1], i[1][1], i[1][2]) for i in result]
            result = [i for i in result if season == '%01d' % int(i[2]) and episode == '%01d' % int(i[3])]
            result = [i[0] for i in result if tvshowtitle == cleantitle.tv(i[1])][0]

            url = client.replaceHTMLCodes(result)
            try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['q'][0]
            except: pass
            url = urlparse.urlparse(url).path
            url = url.encode('utf-8')
            return url
        except:
            return
Example #38
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []

            if url == None: return sources

            content = re.compile('(.+?)\?S\d*E\d*$').findall(url)

            try:
                url, season, episode = re.compile(
                    '(.+?)\?S(\d*)E(\d*)$').findall(url)[0]
            except:
                pass

            url = urlparse.urljoin(self.base_link, url)
            url = urlparse.urljoin(url, 'watching.html')

            result = cloudflare.source(url)

            try:
                quality = client.parseDOM(result,
                                          'span',
                                          attrs={'class': 'quality'})[0]
            except:
                quality = 'HD'

            if '1080p' in quality: quality = '1080p'
            else: quality = 'HD'

            url = re.compile('var\s+url_playlist *= *"(.+?)"').findall(
                result)[0]

            if len(content) == 0:
                url = '%s/0/0' % url
            else:
                episode = '%01d' % int(episode)
                result = client.parseDOM(result,
                                         'div',
                                         attrs={'class': 'les-content'})
                result = zip(client.parseDOM(result, 'a', ret='onclick'),
                             client.parseDOM(result, 'a'))
                result = [(i[0], re.compile('(\d+)').findall(i[1]))
                          for i in result]
                result = [(i[0], '%01d' % int(i[1][0])) for i in result
                          if len(i[1]) > 0]
                result = [i[0] for i in result if episode == i[1]][0]
                result = re.compile('(\d+)').findall(result)
                url = '%s/%s/%s' % (url, result[0], result[1])

            sources.append({
                'source': 'Muchmovies',
                'quality': quality,
                'provider': 'Muchmoviesv2',
                'url': url
            })

            return sources
        except:
            return sources
Example #39
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []

            if url == None:
                return sources

            content = re.compile("(.+?)\?S\d*E\d*$").findall(url)

            try:
                url, season, episode = re.compile("(.+?)\?S(\d*)E(\d*)$").findall(url)[0]
            except:
                pass

            self.base_link = random.choice([self.base_link_1, self.base_link_2])

            post_id = re.compile("/.+?/(.+)").findall(url)[0].rsplit("/")[0]

            player = urlparse.urljoin(self.base_link, self.player_link)

            if len(content) == 0:
                post = self.player_post_1 % post_id
            else:
                post = cloudflare.source(player, post=self.player_post_2 % post_id, headers=self.headers)
                post = client.parseDOM(post, "ul", attrs={"class": "movie-parts"})[0]
                post = client.parseDOM(post, "li")
                post = [(client.parseDOM(i, "a", ret="href"), client.parseDOM(i, "a")) for i in post]
                post = [(i[0][0], i[1][0]) for i in post if len(i[0]) > 0 and len(i[1]) > 0]
                post = [i[0] for i in post if "%01d" % int(episode) == i[1]][0]
                post = urlparse.parse_qs(urlparse.urlparse(post).query)["part_id"][0]
                post = self.player_post_3 % (post_id, post)

            url = cloudflare.source(player, post=post, headers=self.headers)
            url = re.compile('<source\s+src="([^"]+)').findall(url)[0]
            url = client.replaceHTMLCodes(url)

            if "google" in url:
                quality = googleplus.tag(url)[0]["quality"]
            else:
                quality = "HD"

            sources.append({"source": "GVideo", "quality": quality, "provider": "Xmovies", "url": url})

            return sources
        except:
            return sources
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []

            if url == None:
                return sources

            content = re.compile("(.+?)\?S\d*E\d*$").findall(url)

            try:
                url, season, episode = re.compile("(.+?)\?S(\d*)E(\d*)$").findall(url)[0]
            except:
                pass

            url = urlparse.urljoin(self.base_link, url)
            url = urlparse.urljoin(url, "watching.html")

            referer = url

            result = cloudflare.source(url)

            try:
                quality = client.parseDOM(result, "span", attrs={"class": "quality"})[0]
            except:
                quality = "HD"

            if "1080p" in quality:
                quality = "1080p"
            else:
                quality = "HD"

            url = re.compile('var\s+url_playlist *= *"(.+?)"').findall(result)[0]

            result = client.parseDOM(result, "div", attrs={"class": "les-content"})
            result = zip(client.parseDOM(result, "a", ret="onclick"), client.parseDOM(result, "a"))
            result = [(i[0], re.compile("(\d+)").findall(i[1])) for i in result]
            result = [(i[0], "%01d" % int(i[1][0])) for i in result if len(i[1]) > 0]
            result = [(i[0], i[1]) for i in result]
            result = [(re.compile("(\d+)").findall(i[0]), i[1]) for i in result]
            result = [("%s/%s/%s" % (url, i[0][0], i[0][1]), i[1]) for i in result]

            if len(content) == 0:
                url = [i[0] for i in result]
            else:
                episode = "%01d" % int(episode)
                url = [i[0] for i in result if episode == i[1]]

            url = [
                "%s|User-Agent=%s&Referer=%s" % (i, urllib.quote_plus(client.agent()), urllib.quote_plus(referer))
                for i in url
            ]

            for u in url:
                sources.append({"source": "Muchmovies", "quality": quality, "provider": "Muchmoviesv2", "url": u})

            return sources
        except:
            return sources
Example #41
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []

            if url == None: return sources

            url = self.base_link + url
            result = cloudflare.source(url)
            result = re.compile('src="/player_data(.+?)"></script>').findall(
                result)[0]
            url = self.base_link + '/player_data' + result
            result = cloudflare.source(url)
            result = re.compile('[[]"(.+?)"[]]').findall(result)[0]
            url = self.Hexadecoder(str(result)).replace(
                'download', 'xmas-stream')

            audio_filme = ''
            try:
                quality = url.strip().upper()
                if '1080P' in quality: quality = '1080p'
                elif 'BRRIP' in quality or 'BDRIP' in quality or 'HDRIP' in quality or '720P' in quality:
                    quality = 'HD'
                elif 'SCREENER' in quality:
                    quality = 'SCR'
                elif 'CAM' in quality or 'TS' in quality:
                    quality = 'CAM'
                else:
                    quality = 'SD'
                if 'PT-PT' in quality or 'PORTUGU' in quality:
                    audio_filme = ' | PT-PT'
                else:
                    audio_filme = ''
            except:
                quality = 'SD'

            sources.append({
                'source': 'TugaIO' + audio_filme,
                'quality': quality,
                'provider': 'TugaIO',
                'url': url
            })

            return sources
        except:
            return sources
Example #42
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []

            if url == None: return sources

            query = url.replace('\'', '')
            query = query.replace('Marvels ', '').replace('E.L.D.', 'E.L.D')
            query = re.sub('\s+',' ',query)
            query = self.base_link + self.search_link % urllib.quote_plus('"'+query+'"')

            result = cloudflare.source(query)
            amount = client.parseDOM(result, 'h1', attrs = {'class': 'border-radius-5'})

            if '1 video' not in amount[0]:
                query = query.replace('Watch+Online', 'Full')
                result = cloudflare.source(query)
                amount = client.parseDOM(result, 'h1', attrs = {'class': 'border-radius-5'})

            if '1 video' in amount[0]:
                item = client.parseDOM(result, 'li', attrs = {'class': 'border-radius-5 box-shadow'})
                url = client.parseDOM(item, 'a', ret='href')[0]

                try:
                    result = cloudflare.source(url)

                    iframeUrl = client.parseDOM(result, 'iframe', ret='src')[0]
                    headers = {'Referer': url}
                    result = client.source(iframeUrl, headers=headers)

                    for match in re.compile('"file"\s*:\s*"([^"]+)"\s*,\s*"label"\s*:\s*"([^"]+)').findall(result):
                        if match[1] == '720p':
                            quality = 'HD'
                        else:
                            quality = 'SD'
                        sources.append({'source': 'gvideo', 'quality': quality, 'provider': 'SeriesTV', 'url': match[0].replace(' ','')})
                except:
                    pass


            return sources
        except:
            return sources
Example #43
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        try:
            sources = []

            if url == None: return sources

            content = re.compile('(.+?)\?S\d*E\d*$').findall(url)

            try: url, season, episode = re.compile('(.+?)\?S(\d*)E(\d*)$').findall(url)[0]
            except: pass

            self.base_link = random.choice([self.base_link_1, self.base_link_2])

            post_id = re.compile('/.+?/(.+)').findall(url)[0].rsplit('/')[0]

            player = urlparse.urljoin(self.base_link, self.player_link)


            if len(content) == 0:
                post = self.player_post_1 % post_id
            else:
                post = cloudflare.source(player, post=self.player_post_2 % post_id, headers=self.headers)
                post = client.parseDOM(post, 'ul', attrs = {'class': 'movie-parts'})[0]
                post = client.parseDOM(post, 'li')
                post = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'a')) for i in post]
                post = [(i[0][0], i[1][0]) for i in post if len(i[0]) > 0 and len(i[1]) > 0]
                post = [i[0] for i in post if '%01d' % int(episode) == i[1]][0]
                post = urlparse.parse_qs(urlparse.urlparse(post).query)['part_id'][0]
                post = self.player_post_3 % (post_id, post)


            url = cloudflare.source(player, post=post, headers=self.headers)
            url = re.compile('<source\s+src="([^"]+)').findall(url)[0]
            url = client.replaceHTMLCodes(url)

            if 'google' in url: quality = googleplus.tag(url)[0]['quality']
            else: quality = 'HD'

            sources.append({'source': 'GVideo', 'quality': quality, 'provider': 'Xmovies', 'url': url})

            return sources
        except:
            return sources
Example #44
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
        sources = []

        if url == None: return sources

        orgUrl = url
        url = urlparse.urljoin(self.base_link, url)
        url = url.replace('·', '\xb7')

        result = cloudflare.source(url)

        if '?' not in url:
            url = client.parseDOM(result,
                                  'a',
                                  attrs={'href': orgUrl + '/Movie.+?'},
                                  ret='href')[0]
            url = urlparse.urljoin(self.base_link, url)
            result = cloudflare.source(url)

        items = client.parseDOM(result,
                                'select',
                                attrs={'id': 'selectQuality'})
        items = re.compile('"(.+?)".+?(\d+?)p').findall(items[0])

        for item in items:
            try:
                u = base64.b64decode(item[0])
                u = u.encode('utf-8')
                if item[1] not in ['720', '1080']:
                    quality = 'SD'
                else:
                    quality = 'HD'

                sources.append({
                    'source': 'GVideo',
                    'quality': quality,
                    'provider': 'KissCartoon',
                    'url': u
                })
            except:
                pass

        return sources
    def get_sources(self, url, hosthdDict, hostDict, locDict):
##        sources = []
##        sources.append({'source': 'Redcouch', 'quality': 'HD', 'provider': 'Redcouch'+url, 'url': url})
        try:
            sources = []
            
            if url == None: return sources

            result = cloudflare.source(url)
            
            audio_filme = ''
            try:
                titulo = client.parseDOM(result, 'h1', attrs = {'class': 'title'})[0]
                if 'PT-PT' in titulo or 'PORTUGU' in titulo: audio_filme = ' | PT-PT'
                else: audio_filme = ''
            except: audio_filme = ''
            try:
                quality = url.strip().upper()
                if '1080P' in quality: quality = '1080p'
                elif 'BRRIP' in quality or 'BDRIP' in quality or 'HDRIP' in quality or '720P' in quality: quality = 'HD'
                elif 'SCREENER' in quality: quality = 'SCR'
                elif 'CAM' in quality or 'TS' in quality: quality = 'CAM'
                else: quality = 'SD'
            except: quality = 'SD'

            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'+audio_filme, 'quality': quality, 'provider': 'Redcouch', 'url': url})
            except:
                pass
            url = client.parseDOM(result, 'iframe', ret='src')
            for urls in url:
                if 'openload' in urls:
                    try:
                        try:
                            ul = re.compile('(.+?)/embed/(.+?)/').findall(urls)
                            urlO = ul[0][0]+'/embed/'+ul[0][1]
                        except: urlO = urls                        
                        if openload.check(urlO) == False: raise Exception()
                        sources.append({'source': 'Openload'+audio_filme, 'quality': quality, 'provider': 'Redcouch', 'url': urlO})
                    except:
                        pass
                elif 'videomega' in urls:
                    try:
                        sources.append({'source': 'Videomega'+audio_filme, 'quality': quality, 'provider': 'Redcouch', 'url': url})
                    except:
                        pass
                #sources.append({'source': 'Openload'+audio_filme, 'quality': quality, 'provider': 'Redcouch'+urls, 'url': urls})
            return sources
        except:
            return sources
Example #46
0
    def dizimag_shows(self):
        try:
            result = cloudflare.source(self.base_link)

            result = client.parseDOM(result, 'div', attrs = {'id': 'fil'})[0]
            result = zip(client.parseDOM(result, 'a', ret='href'), client.parseDOM(result, 'a'))
            result = [(re.sub('http.+?//.+?/','/', i[0]), cleantitle.tv(i[1])) for i in result]

            return result
        except:
            return
    def dizimag_shows(self):
        try:
            result = cloudflare.source(self.base_link)

            result = client.parseDOM(result, 'div', attrs = {'id': 'fil'})[0]
            result = zip(client.parseDOM(result, 'a', ret='href'), client.parseDOM(result, 'a'))
            result = [(re.sub('http.+?//.+?/','/', i[0]), cleantitle.tv(i[1])) for i in result]

            return result
        except:
            return
Example #48
0
    def dizigold_shows(self):
        try:
            result = cloudflare.source(self.base_link)

            result = client.parseDOM(result, 'div', attrs = {'class': 'dizis'})[0]
            result = re.compile('href="(.+?)">(.+?)<').findall(result)
            result = [(re.sub('http.+?//.+?/','/', i[0]), cleantitle.tv(i[1])) for i in result]

            return result
        except:
            return
Example #49
0
    def get_episode(self, url, imdb, tvdb, title, date, season, episode):
        try:
            if url == None:
                return

            season = "%01d" % int(season)
            episode = "%01d" % int(episode)

            query = '%s "Season %s" "Episode %s"' % (url, season, episode)
            query = urlparse.urljoin(self.base_link, self.tvsearch_link + urllib.quote_plus(query))

            result = cloudflare.source(query)
            if result == None:
                result = cloudflare.source(self.proxy_link + urllib.quote_plus(query))

            r = client.parseDOM(result, "li", attrs={"class": "first element.+?"})
            r += client.parseDOM(result, "li", attrs={"class": "element.+?"})
            r += client.parseDOM(result, "header", attrs={"class": "entry-header"})

            tvshowtitle = cleantitle.tv(url)

            result = [
                (client.parseDOM(i, "a", ret="href"), re.compile("(.+?): Season (\d*).+?Episode (\d*)").findall(i))
                for i in r
            ]
            result = [(i[0][0], i[1][-1]) for i in result if len(i[0]) > 0 and len(i[1]) > 0]
            result = [(i[0], i[1][0].split(">")[-1], i[1][1], i[1][2]) for i in result]
            result = [i for i in result if season == "%01d" % int(i[2]) and episode == "%01d" % int(i[3])]
            result = [i[0] for i in result if tvshowtitle == cleantitle.tv(i[1])][0]

            url = client.replaceHTMLCodes(result)
            try:
                url = urlparse.parse_qs(urlparse.urlparse(url).query)["u"][0]
            except:
                pass
            url = urlparse.urlparse(url).path
            url = url.encode("utf-8")
            return url
        except:
            return
Example #50
0
    def get_episode(self, url, imdb, tvdb, title, date, season, episode):
        try:
            tvshowtitle, year = re.compile('(.+?) [(](\d{4})[)]$').findall(url)[0]

            query = self.search_link % (urllib.quote_plus(tvshowtitle))
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)
            result = client.parseDOM(result, 'div', attrs = {'id': 'post-.+?'})

            tvshowtitle = cleantitle.tv(tvshowtitle)
            season = '%01d' % int(season)
            episode = '%01d' % int(episode)
            years = ['%s' % str(year), '%s' % str(int(year)+1), '%s' % str(int(year)-1)]

            result = [(client.parseDOM(i, 'a', ret='href')[0], client.parseDOM(i, 'a', ret='title')[0], client.parseDOM(i, 'div', attrs = {'class': 'status status-year'})) for i in result]
            result = [x for y,x in enumerate(result) if x not in result[:y]]
            result = [(i[0], i[1], i[2][0]) for i in result if len(i[2]) > 0]
            result = [(i[0], re.compile('(.+?) Season (\d*)$').findall(i[1]), i[2]) for i in result]
            result = [(i[0], i[1][0][0], i[1][0][1], i[2]) for i in result if len(i[1]) > 0]
            result = [i for i in result if tvshowtitle == cleantitle.tv(i[1])]
            result = [i for i in result if season == i[2]]
            result = [(i[0], i[1], str(int(i[3]) - int(i[2]) + 1)) for i in result]
            result = [i[0] for i in result if any(x in i[2] for x in years)][0]

            url = urlparse.urljoin(self.base_link, result)

            result = cloudflare.source(url)
            result = client.parseDOM(result, 'div', attrs = {'id': 'episode_show'})[0]
            result = re.compile('(<a.+?</a>)').findall(result)
            result = [(client.parseDOM(i, 'a', ret='href')[0], client.parseDOM(i, 'a')[0]) for i in result]
            result = [i[0] for i in result if episode == i[1]][0]

            try: url = re.compile('//.+?(/.+)').findall(result)[0]
            except: url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            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')
            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
                try: sources.append({'source': 'GVideo', 'quality': 'SD', 'provider': 'YIFYstream', 'url': [i for i in client.parseDOM(url, 'source', ret='src', attrs = {'data-res': '480'}) if 'google' in i][0]})
                except: sources.append({'source': 'GVideo', 'quality': 'SD', 'provider': 'YIFYstream', 'url': [i for i in client.parseDOM(url, 'source', ret='src', attrs = {'data-res': '360'}) if 'google' in i][0]})
            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
Example #52
0
    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)

            links = client.parseDOM(result,
                                    'div',
                                    attrs={'class': 'server_line.+?'})

            for i in links:
                try:
                    host = client.parseDOM(
                        i, 'p', attrs={'class': 'server_servername'})[0]
                    host = re.compile('Server (.+?)$').findall(host)[0]
                    host = host.strip().lower()
                    host = client.replaceHTMLCodes(host)
                    host = host.encode('utf-8')

                    url = client.parseDOM(i, 'a', ret='href')[0]
                    url = client.replaceHTMLCodes(url)
                    url = urlparse.urljoin(self.base_link, url)
                    url = url.encode('utf-8')

                    if 'google' in host:
                        url = self.__resolve(client.source(url))
                        for u in url:
                            sources.append({
                                'source': 'GVideo',
                                'quality': u['quality'],
                                'provider': 'Tunemovie',
                                'url': u['url']
                            })

                    elif host in hostDict:
                        raise Exception()
                        sources.append({
                            'source': host,
                            'quality': 'SD',
                            'provider': 'Tunemovie',
                            'url': url
                        })

                except:
                    pass

            return sources
        except:
            return sources
Example #53
0
    def dizigold_shows(self):
        try:
            result = cloudflare.source(self.base_link)

            result = client.parseDOM(result, 'div', attrs={'class':
                                                           'dizis'})[0]
            result = re.compile('href="(.+?)">(.+?)<').findall(result)
            result = [(re.sub('http.+?//.+?/', '/', i[0]), cleantitle.tv(i[1]))
                      for i in result]

            return result
        except:
            return
Example #54
0
    def get_sources(self, url, hosthdDict, hostDict, locDict):
##        sources = []
##        sources.append({'source': 'Videomega', 'quality': 'HD', 'provider': 'TopPt'+url, 'url': url})
        try:
            sources = []

            if url == None: return sources

            url = url.replace(self.base_link,'')

            result = cloudflare.source(urlparse.urljoin(self.base_link, url))

            try:audiopt = re.compile('<b>AUDIO:</b>(.+?)<br/>').findall(result.replace(" ",''))[0]
            except:audiopt = 'audio'
            if 'PT' in audiopt.upper(): audio_filme = ' | PT-PT'
            else: audio_filme = ''

            try:
                try:quality = re.compile('<b>VERS.+?:</b>(.+?)<br/>').findall(result.replace(' ',''))[0]
                except:quality = re.compile('<b>RELEASE:</b>(.+?)<br/>').findall(result.replace(' ',''))[0]
                quality = quality.strip().upper()
                if 'CAM' in quality or 'TS' in quality: quality = 'CAM'
                elif 'SCREENER' in quality: quality = 'SCR'
                elif 'BRRIP' in quality or 'BDRIP' in quality or 'HDRIP' in quality or '720P' in quality: quality = 'HD'
                elif '1080P' in quality: quality = '1080p'
                else: quality = 'SD'
            except: quality = 'SD'

            host_url = re.compile('<spanclass="su-lightbox"data-mfp-src="(.+?)".+?;-webkit-text-shadow:none">(.+?)</span></a></span>').findall(result.replace(' ',''))
            for url,host in host_url:
                host = host.strip().lower()
                if 'openload' in host:
                    try:
                        if openload.check(url) == False: raise Exception()
                        sources.append({'source': 'Openload'+audio_filme, 'quality': quality, 'provider': 'TopPt', 'url': url})
                    except:
                        pass
                elif 'videomega' in host:
                    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'+audio_filme, 'quality': quality, 'provider': 'TopPt', 'url': url})
                    except:
                        pass                
                if 'openload' not in host and 'trailer' not in host: sources.append({'source': host+audio_filme, 'quality': quality, 'provider': 'TopPt', 'url': url})
            return sources
        except:
            return sources
Example #55
0
    def moviefarsi_shows(self):
        try:
            query = urlparse.urljoin(self.base_link, self.tvsearch_link)

            result = client.source(query, cookie=self.cookie_link)
            if result == None: result = cloudflare.source(query)

            result = client.parseDOM(result, 'li', attrs = {'class': 'categories'})[0]

            result = re.compile('href="(.+?)" *>(.+?)<').findall(result)

            return result
        except:
            return
Example #56
0
    def get_episode(self, url, imdb, tvdb, title, date, season, episode):
        try:
            tvshowtitle, year = re.compile('(.+?) [(](\d{4})[)]$').findall(
                url)[0]

            query = self.search_link % urllib.quote(tvshowtitle)
            query = urlparse.urljoin(self.base_link, query)

            result = cloudflare.source(query)

            tvshowtitle = cleantitle.tv(tvshowtitle)
            season = '%01d' % int(season)
            episode = '%01d' % int(episode)
            years = [
                '%s' % str(year),
                '%s' % str(int(year) + 1),
                '%s' % str(int(year) - 1)
            ]

            result = client.parseDOM(result, 'div', attrs={'class': 'ml-item'})
            result = [
                (client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'h2'),
                 re.compile(
                     'class *= *[\'|\"]jt-info[\'|\"]>(\d{4})<').findall(i))
                for i in result
            ]
            result = [(i[0][0], i[1][0], i[2][0]) for i in result
                      if len(i[0]) > 0 and len(i[1]) > 0 and len(i[2]) > 0]
            result = [(i[0], re.compile('(.+?) - Season (\d*)$').findall(i[1]),
                       i[2]) for i in result]
            result = [(i[0], i[1][0][0], i[1][0][1], i[2]) for i in result
                      if len(i[1]) > 0]
            result = [i for i in result if tvshowtitle == cleantitle.tv(i[1])]
            result = [i for i in result if season == i[2]]
            result = [(i[0], i[1], str(int(i[3]) - int(i[2]) + 1))
                      for i in result]
            result = [i[0] for i in result if any(x in i[2] for x in years)][0]

            result += '?S%02dE%02d' % (int(season), int(episode))

            try:
                url = re.compile('//.+?(/.+)').findall(result)[0]
            except:
                url = result
            url = client.replaceHTMLCodes(url)
            url = url.encode('utf-8')
            return url
        except:
            return
Example #57
0
    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
Example #58
0
    def get_episode(self, url, imdb, tvdb, title, date, season, episode):
        try:
            if url == None: return

            query = '%s S%02dE%02d' % (url, int(season), int(episode))
            query = urlparse.urljoin(
                self.tvbase_link, self.search_link + urllib.quote_plus(query))

            result = cloudflare.source(query)

            #if result == None: result = client.source(self.__proxy() + urllib.quote_plus(query))

            r = client.parseDOM(result,
                                'li',
                                attrs={'class': 'first element.+?'})
            r += client.parseDOM(result, 'li', attrs={'class': 'element.+?'})
            r += client.parseDOM(result,
                                 'header',
                                 attrs={'class': 'entry-heade.+?'})

            tvshowtitle = cleantitle.tv(url)
            hdlr = 'S%02dE%02d' % (int(season), int(episode))

            result = [(client.parseDOM(i, 'a',
                                       ret='href'), client.parseDOM(i, 'a'))
                      for i in r]
            result = [(i[0][0], i[1][0].upper()) for i in result
                      if len(i[0]) > 0 and len(i[1]) > 0]
            result = [(i[0], re.compile('(.+?) (S\d+E\d+)').findall(i[1]))
                      for i in result]
            result = [(i[0], i[1][0][0], i[1][0][-1]) for i in result
                      if len(i[1]) > 0]
            result = [i for i in result if tvshowtitle == cleantitle.tv(i[1])]
            result = [i[0] for i in result if hdlr == i[2]][0]

            url = client.replaceHTMLCodes(result)
            try:
                url = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0]
            except:
                pass
            try:
                url = urlparse.parse_qs(urlparse.urlparse(url).query)['q'][0]
            except:
                pass
            url = urlparse.urlparse(url).path
            url = url.encode('utf-8')
            return url
        except:
            return