def test_video(url):
    data = client.request(url)
    if 'We’re Sorry!' in data:
        data = client.request(url.replace("/embed/", "/f/"))
        if 'We’re Sorry!' in data:
            return False, "[Openload] No file available"
    return True, ""
Exemple #2
0
def GETAUTOPLAY(url):
    #progressDialog = xbmcgui.DialogProgress()
    #progressDialog.create(addon_name, 'Gathering Links For Your Selected Item: [COLOR blue]%s[/COLOR]'%name)
    #progressDialog.update(0)
    base_link = 'http://watch5s.is'
    strm_link = 'http://play.watch5s.is/grabber-api/episode/%s?token=%s'
    url = re.sub('/$', '', url)
    req = url + '/watch/'
    #Text_Box('h',req)
    referer = req
    r = client.request(req)

    if '<title>Watch Free Movies Online, Best Site to Watch Free Movies HD - WATCH5S.TO</title>' in r:
        r = client.request(url)
        part = tools.regex_from_to(r, '<div id="mv-info">', '</div>')
        url = tools.regex_from_to(part, 'href="', '"')
        r = client.request(url)
    try:
        server = tools.regex_from_to(r, '<strong>SERVER 1</strong>', '</a>')
        server = tools.regex_from_to(server, 'href="', '"')
    except:
        try:
            server = tools.regex_from_to(r, '<strong>SERVER 10</strong>',
                                         '</a>')
            server = tools.regex_from_to(server, 'href="', '"')
        except:
            server = tools.regex_from_to(r, '<strong>OpenLoad</strong>',
                                         '</a>')
            server = tools.regex_from_to(server, 'href="', '"')

    open = client.request(server)
    t = re.findall('player_type\s*:\s*"(.+?)"', open)[0]
    if not t == 'embed':

        s = client.parseDOM(open,
                            'input',
                            ret='value',
                            attrs={'name': 'episodeID'})[0]
        t = ''.join(
            random.sample(
                string.digits + string.ascii_uppercase +
                string.ascii_lowercase, 8))
        k = hashlib.md5('!@#$%^&*(' + s + t).hexdigest()
        v = hashlib.md5(t + referer + s).hexdigest()

        stream = strm_link % (s, t)
        cookie = '%s=%s' % (k, v)

        u = client.request(stream,
                           referer=referer,
                           cookie=cookie,
                           timeout='10')
        url = tools.regex_from_to(u, '"file":"', '"').replace('\/', '/')
        if not 'grabber-api' in url:
            return url
    else:
        url = tools.regex_from_to(open, 'embed_src: "', '"')
        return url
def test_video(url):
    data = client.request(url)
    if 'We’re Sorry!' not in data:
        return True
    else:
        data = client.request(url.replace("/embed/", "/f/"))
        if 'We’re Sorry!' not in data:
            return True
        else:
            return False
Exemple #4
0
def resolve(name, url, iconimage, description):
    xbmc.log('URLLLL: {}'.format(url))
    if 'm3u8' in url:
        link = url
        link += '|User-Agent={}'.format(urllib.quote_plus(client.agent()))
        liz = xbmcgui.ListItem(name, iconImage=ICON, thumbnailImage=iconimage)
    else:
        url = base_url + url if url.startswith('/') else url
        info = client.request(url, headers=headers)
        head = client.parseDOM(info, 'title')[0].encode('utf-8')
        # title = client.parseDOM(info, 'meta', ret='content', attrs={'name': 'description'})[0].encode('utf-8')
        # name = '{0} - {1}'.format(head, title)
        poster = client.parseDOM(info,
                                 'meta',
                                 ret='content',
                                 attrs={'property': 'og:image'})[0]
        link = re.findall(r'''\,url:['"](.+?)['"]\}''', info, re.DOTALL)[0]
        link += '|User-Agent={}&Referer={}'.format(
            urllib.quote_plus(client.agent()), urllib.quote_plus(url))
        liz = xbmcgui.ListItem(head, iconImage=ICON, thumbnailImage=poster)

    try:
        liz.setInfo(type="Video", infoLabels={"Title": description})
        liz.setProperty("IsPlayable", "true")
        liz.setPath(str(link))
        xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, liz)
    except:
        control.infoDialog(
            "[COLOR red]Dead Link[/COLOR]!\n[COLOR white]Please Try Another[/COLOR]",
            NAME, '')
Exemple #5
0
def get_content(url):  #5 <div id="content"><div class="container">
    r = client.request(url, headers=headers)
    # data = client.parseDOM(r, 'div', attrs={'class': 'container'})[0]
    # xbmc.log('DATAAAA: %s' % data)
    data = client.parseDOM(r, 'li', attrs={'class': 'webcam'})
    for item in data:
        link = client.parseDOM(item, 'a', ret='href')[0]
        if link == '#':
            continue
        link = client.replaceHTMLCodes(link)
        link = link.encode('utf-8')

        name = client.parseDOM(item, 'span', attrs={'class': 'title'})[0]
        name = client.replaceHTMLCodes(name)
        name = name.encode('utf-8')

        desc = client.parseDOM(item, 'span', attrs={'class': 'description'})[0]
        desc = clear_Title(desc)
        desc = desc.decode('ascii', errors='ignore')

        poster = client.parseDOM(item, 'img', ret='data-original')[0]
        poster = client.replaceHTMLCodes(poster)
        poster = 'https:' + poster if poster.startswith('//') else poster
        poster = poster.encode('utf-8')

        addDir('[B][COLOR white]%s[/COLOR][/B]' % name, link, 100, poster, '',
               desc)

    xbmcplugin.setContent(int(sys.argv[1]), 'movies')
def get_video_openload(url):
    data = client.request(url, headers={'User-Agent': ua})
    try:
        try:
            code = re.findall('p id="[^"]+" style="">(.*?)<\/p',
                              data,
                              flags=re.DOTALL)[0]
        except IndexError:
            code = re.findall('<p style="" id="[^"]+">(.*?)</p>',
                              data,
                              flags=re.DOTALL)[0]
        _0x59ce16 = eval(
            re.findall('_0x59ce16=([^;]+)',
                       data)[0].replace('parseInt', 'int'))
        _1x4bfb36 = eval(
            re.findall('_1x4bfb36=([^;]+)',
                       data)[0].replace('parseInt', 'int'))
        parseInt = eval(
            re.findall('_0x30725e,(\(parseInt.*?)\),',
                       data)[0].replace('parseInt', 'int'))
        link = decode(code, parseInt, _0x59ce16, _1x4bfb36)
        link = read_openload(link)
        return '%s|User-Agent=%s&Referer=%s' % (link, urllib.quote_plus(ua),
                                                urllib.quote_plus(url))
    except:
        return ''
Exemple #7
0
def Get_content(url):  #5
    r = client.request(url, headers=headers)
    data = client.parseDOM(r, 'div', attrs={'class': 'imagen'})
    data = zip(client.parseDOM(data, 'a', ret='href'),
               client.parseDOM(data, 'a', ret='title'),
               client.parseDOM(data, 'img', ret='src'))
    for item in data:
        link, name, icon = item[0], item[1], item[2]
        link = client.replaceHTMLCodes(link)
        link = link.encode('utf-8')

        name = client.replaceHTMLCodes(name)
        name = name.encode('utf-8')
        if 'capitulo' in link:
            addDir('[B][COLOR white]%s[/COLOR][/B]' % name, link, 10, icon,
                   FANART, '')
        else:
            addDir('[B][COLOR white]%s[/COLOR][/B]' % name, link, 8, icon,
                   FANART, '')
    try:
        np = client.parseDOM(r, 'li')
        np = [i for i in np if 'iguiente' in i][0]
        np = client.parseDOM(np, 'a', ret='href')[0]

        page = re.search('(\d+)', np, re.DOTALL)
        page = '[COLORlime]%s[/COLOR]' % page.groups()[0]

        url = urlparse.urljoin(url, np)
        url = client.replaceHTMLCodes(url)

        addDir('[B][COLORgold]Siguiente(%s)>>>[/COLOR][/B]' % page, url, 5,
               ICON, FANART, '')
    except:
        pass
    xbmcplugin.setContent(int(sys.argv[1]), 'movies')
Exemple #8
0
def get_content(url):  # 5 <div id="content"><div class="container">
    r = six.ensure_str(client.request(url, headers=headers))
    data = client.parseDOM(r, 'div', attrs={'class': 'container'})[0]
    data = dom.parse_dom(data, 'a', req='href')
    data = [i for i in data if 'subt' in i.content]
    # xbmc.log('DATA22: {}'.format(str(data)))
    for item in data:
        link = item.attrs['href']
        if link == '#':
            continue
        link = client.replaceHTMLCodes(link)

        name = client.parseDOM(item.content, 'img', ret='alt')[0]
        name = client.replaceHTMLCodes(name)

        desc = client.parseDOM(item.content, 'p', attrs={'class': 'subt'})[0]
        desc = clear_Title(desc)

        try:
            poster = client.parseDOM(item.content, 'img', ret='data-src')[0]
        except IndexError:
            poster = client.parseDOM(item.content, 'img', ret='src')[0]
        poster = client.replaceHTMLCodes(poster)
        poster = 'https:' + poster if poster.startswith('//') else poster

        if six.PY2:
            link = link.encode('utf-8')
            name = name.encode('utf-8')
            desc = desc.decode('ascii', errors='ignore')
            poster = poster.encode('utf-8')
        link = '{}/{}'.format(base_url, link)
        addDir('[B][COLOR white]%s[/COLOR][/B]' % name, link, 100, poster, '',
               desc)

    xbmcplugin.setContent(int(sys.argv[1]), 'movies')
Exemple #9
0
def index(url):
    if 'movies' in url:
        mode = '10'
    else:
        mode = '4'
    open = client.request(url)
    all = regex_get_all(open, '<section class="cardBox.+?flip">', '</section>')
    for a in all:
        name = regex_from_to(a, 'alt="', '"')
        if 'span class' in name:
            n = regex_from_to(a, 'href=".+?">', '<')
            ep = regex_from_to(a, '<p>', '</p>')
            name = n + ' ' + ep
            icon = regex_from_to(a, 'src="', '"')
            url = regex_from_to(a, 'href="', '"')
            mode = '10'
        else:
            url = regex_from_to(a, 'href="', '"')
            icon = regex_from_to(a, 'img src="', '"')
        addDir(name, urllib.quote_plus(url), mode, icon, fanart, '')
    try:
        np = re.compile('<a href="(.+?)" class="next-page-button">').findall(
            open)
        for url in np:
            addDir('[COLOR lime][B]Next Page >[/COLOR][/B]', url, 2, icon,
                   fanart, '')
    except:
        pass
Exemple #10
0
def evaluate(host):
    try:
        host, referer = host.split('|')
        if 'openload' in host:
            from resources.resolvers import openload
            try:
                host = openload.get_video_openload(host)
            except BaseException:
                host = resolveurl.resolve(host)
            return host

        elif 'gamovideo' in host:
            r = client.request(host, referer=referer)
            #xbmc.log('@#@GAMO-DATA:%s' % r, xbmc.LOGNOTICE)
            from resources.modules import jsunpack
            source = re.findall('''(eval\(function\(p,a,c,k,e,(?:r|d).+?.split\('\|'\)\)\))''', r, re.DOTALL)[0]
            data = jsunpack.unpack(source)
            #xbmc.log('@#@GAMO-UNPACK:%s' % data, xbmc.LOGNOTICE)
            link = re.findall('''file:['"](http.+?v.mp4)['"]''', data, re.DOTALL)[0]
            #xbmc.log('@#@GAMO-link:%s' % link, xbmc.LOGNOTICE)
            return link

        elif 'hqq' in host or 'waaw' in host:
            from resources.resolvers import netutv
            media = netutv.get_video_url(host, referer)
            return media

        elif resolveurl.HostedMediaFile(host):
            host = resolveurl.resolve(host)
            return host

        else:
            return host
    except:
        return host
Exemple #11
0
def Get_links(name,url): #10
    OPEN = client.request(url, headers=headers)
    Regex = client.parseDOM(OPEN, 'iframe', ret='src')
    for link in Regex[::-1]:
        if 'verestrenos' in link:
            idp = link.split('mula=')[1]
            post = 'mole=%s' % idp
            link = client.request('http://www.verestrenos.net/rm/ajax.php', post=post)

        vid_id = re.compile('http[s]?://(.+?)\.', re.DOTALL).findall(link)[0]
        if 'sebuscar' in vid_id:
            continue
        vid_id = vid_id.replace('hqq', 'netu.tv')

        addDir('[B][COLOR white]{0} [B]| [COLOR lime]{1}[/COLOR][/B]'.format(name, vid_id), '%s|%s' % (link, url), 100, iconimage, FANART, name)
    xbmcplugin.setContent(int(sys.argv[1]), 'movies')
Exemple #12
0
def season(url):
    open = client.request(url)

    part = regex_from_to(open, '<b>Seasons:</b>', '</div>')

    regex = re.compile('href="(.+?)".+?">(.+?)<').findall(part)
    for url, name in regex:
        addDir('Season %s' % name, url, 5, icon, fanart, '')
Exemple #13
0
def episodes(url):
    open = client.request(url)

    all = regex_get_all(open, '<h5 class="episode-title">', '</span>')
    for a in all:
        name = regex_from_to(a, 'title="', '"')
        url = regex_from_to(a, 'href="', '"')
        icon = regex_from_to(a, 'data-img="', '"')
        addDir(name, url, 10, icon, fanart, '')
Exemple #14
0
def COUNTRY(url):
    link = client.request(url)
    match = re.findall(
        r'<li><label><input class="country-ids" value="(.*?)" name=".*?" type="checkbox"  >(.*?)</label></li>',
        str(link), re.I | re.DOTALL)
    for country_id, name in match:
        url = base_url + '/filter/?sort=rating&type=movie&quality=all&countries%%5B%%5D=%s&year=all' % (
            country_id)
        addDir(name, url, 1, icon, fanart, '')
Exemple #15
0
def get_the_random(url):  #3
    r = client.request(url, headers=headers)
    frames = zip(client.parseDOM(r, 'a', ret='href'), client.parseDOM(r, 'a'))
    frame = [i[0] for i in frames if 'random cam' in i[1].lower()][0]
    frame = base_url + frame if frame.startswith('/') else frame
    # xbmc.log('FRAME:%s' % frame)
    info = client.request(frame, headers=headers)
    head = client.parseDOM(info, 'title')[0].encode('utf-8')
    # title = client.parseDOM(info, 'meta', ret='content', attrs={'name': 'description'})[0].encode('utf-8')
    # name = '{0} - {1}'.format(head, title)
    # xbmc.log('NAME:%s' % head)
    poster = client.parseDOM(info,
                             'meta',
                             ret='content',
                             attrs={'property': 'og:image'})[0]
    # xbmc.log('INFO:%s' % info)
    link = re.findall(r'''\,url:['"](.+?)['"]\}''', info, re.DOTALL)[0]
    addDir('[B][COLOR white]%s[/COLOR][/B]' % head, link, 100, poster, '',
           'Random Live Cam')
Exemple #16
0
    def cache(self, i):

        try:
            self.r = client.request(i)
            self.r = re.sub(r'[^\x00-\x7F]+', ' ', self.r)
            t = re.findall('(?:\"|\')original_title(?:\"|\')\s*:\s*(?:\"|\')(.+?)(?:\"|\')', self.r)[0]
            y = re.findall('(?:\"|\')year(?:\"|\')\s*:\s*(?:\"|\'|)(\d{4})', self.r)[0]
            return (t, y)
        except BaseException:
            pass
Exemple #17
0
def SEARCH():
    kb = xbmc.Keyboard('', 'Enter Search Query')
    kb.doModal()
    if (kb.isConfirmed()):
        text = kb.getText()
        if text == "":
            xbmcgui.Dialog().notification(
                '[COLOR blue]EMPTY SEARCH QUERY[/COLOR] ', 'PLEASE TRY AGAIN')
        else:
            text = str(text).replace(' ', '+')
            url = base_url + '/search/?q=' + text
            open = client.request(url)
            INDEX(url)
Exemple #18
0
def get_the_random(url):  # 3
    r = six.ensure_str(client.request(url, headers=headers))
    frame = client.parseDOM(r, 'div', attrs={'class': 'row home'})[0]
    head = client.parseDOM(frame, 'h1')[0]
    head = clear_Title(head)
    frame = client.parseDOM(frame, 'a', ret='href')[0]
    frame = base_url + frame if frame.startswith('/') else frame
    # xbmc.log('FRAME:%s' % frame)
    if six.PY2:
        head = head.encode('utf-8')
    addDir('[B][COLOR white]%s[/COLOR][/B]' % head, frame, 100, ICON, '',
           'Random Live Cam')
    xbmcplugin.setContent(int(sys.argv[1]), 'movies')
Exemple #19
0
def Get_letras(url): #9
    r = client.request(url, headers=headers)
    r = client.parseDOM(r, 'ul', attrs={'id': 'letras'})[0]
    r = client.parseDOM(r, 'li')
    for item in r:
        name = client.parseDOM(item, 'a')[0]
        name = client.replaceHTMLCodes(name)
        name = name.encode('utf-8')

        url = client.parseDOM(item, 'a', ret='href')[0]
        url = client.replaceHTMLCodes(url)
        url = url.encode('utf-8')
        addDir('[B][COLOR white]Telenovelas de %s[/COLOR][/B]' % name, url, 5, ICON, FANART, '')
    xbmcplugin.setContent(int(sys.argv[1]), 'movies')
Exemple #20
0
def Episodes(url): #8
    r = client.request(url, headers=headers)
    data = client.parseDOM(r, 'ul', attrs={'id': 'listado'})[0]
    data = client.parseDOM(data, 'li')
    data = zip(client.parseDOM(data, 'a', ret='href'),
               client.parseDOM(data, 'a'))
    get_icon = client.parseDOM(r, 'img', ret='src', attrs={'class': 'transparent'})[0]

    for item in data[::-1]:
        url, title = client.replaceHTMLCodes(item[0]), client.replaceHTMLCodes(item[1])
        url = url.encode('utf-8')
        title = title.encode('utf-8')

        addDir(title, url, 10, get_icon, FANART, '')
    xbmcplugin.setContent(int(sys.argv[1]), 'movies')
Exemple #21
0
def genres(url):
    if 'movies' in url:
        url = base_url + '/movies/'
    else:
        url = base_url + '/tv-shows/'

    open = client.request(url)

    part = regex_from_to(open, 'Genres:', '</select>')

    regex = re.compile('<option value="(.+?)">(.+?)<').findall(part)
    for url, name in regex:
        if not 'All Movies' in name:
            if not 'All TV Shows' in name:
                addDir(name, url, 2, icon, fanart, '')
Exemple #22
0
def get_country(url):  #4
    r = client.request(url, headers=headers)
    r = client.parseDOM(r, 'li', attrs={'class': 'dropdown'})[0]
    r = zip(client.parseDOM(r, 'a', attrs={'class': 'menu-item'}),
            client.parseDOM(r, 'a', attrs={'class': 'menu-item'}, ret='href'))
    for name, link in r:
        name = re.sub('<.+?>', '', name).replace('&nbsp;', ' ')
        name = client.replaceHTMLCodes(name)
        name = name.encode('utf-8')

        link = client.replaceHTMLCodes(link)
        link = link.encode('utf-8')
        link = base_url + link if link.startswith('/') else link
        addDir('[B][COLOR white]%s[/COLOR][/B]' % name, link, 5, ICON, FANART,
               '')
    xbmcplugin.setContent(int(sys.argv[1]), 'movies')
Exemple #23
0
def get_country(url):  # 4
    r = six.ensure_str(client.request(url, headers=headers))
    r = client.parseDOM(r,
                        'div',
                        attrs={'class': 'dropdown mega-dropdown live'})[0]
    r = zip(client.parseDOM(r, 'a'), client.parseDOM(r, 'a', ret='href'))
    for name, link in r:
        name = re.sub('<.+?>', '', name).replace('&nbsp;', ' ')
        name = client.replaceHTMLCodes(name)
        name = '[B][COLOR white]{}[/COLOR][/B]'.format(name)
        link = client.replaceHTMLCodes(link)
        if six.PY2:
            name = name.encode('utf-8')
            link = link.encode('utf-8')
        link = base_url + link if link.startswith('/') else link
        addDir(name, link, 5, ICON, FANART, '')
    xbmcplugin.setContent(int(sys.argv[1]), 'movies')
Exemple #24
0
def get_greek_cams():
    link = 'http://www.livecameras.gr/'
    headers = {"User-Agent": client.agent()}
    r = client.request(link, headers=headers)
    r = r.encode('utf-8')
    cams = client.parseDOM(r, 'div', attrs={'class': 'fp-playlist'})[0]
    cams = zip(client.parseDOM(cams, 'a', ret='href'),
               client.parseDOM(cams, 'a', ret='data-title'),
               client.parseDOM(cams, 'img', ret='src'))
    for stream, name, poster in cams:
        name = re.sub('".+?false', '', name)
        name = client.replaceHTMLCodes(name).encode('utf-8')
        stream = 'http:' + stream if stream.startswith('//') else stream
        stream += '|Referer={}'.format(link)
        poster = link + poster if poster.startswith('/') else poster
        addDir('[B][COLOR white]%s[/COLOR][/B]' % name, stream, 100, poster,
               '', 'name')
Exemple #25
0
def get_events(url):  # 5
    data = client.request(url)
    # xbmc.log('@#@EDATAAA: {}'.format(data), xbmc.LOGNOTICE)
    events = list(
        zip(
            client.parseDOM(str(data), 'li', attrs={'class': "item itemhov"}),
            re.findall(r'<i class="material-icons">(.+?)</a> </li>', str(data),
                       re.DOTALL)))
    # addDir('[COLORcyan]Time in GMT+2[/COLOR]', '', 'BUG', ICON, FANART, '')
    for event, streams in events:
        # xbmc.log('@#@EVENTTTTT:%s' % event, xbmc.LOGNOTICE)
        watch = '[COLORlime]*[/COLOR]' if '>Live<' in event else '[COLORred]*[/COLOR]'
        try:
            teams = client.parseDOM(event, 'td')
            # xbmc.log('@#@TEAMSSSS:%s' % str(teams), xbmc.LOGNOTICE)
            home, away = re.sub(r'\s*(<img.+?>)\s*', '',
                                teams[0]), re.sub(r'\s*(<img.+?>)\s*', '',
                                                  teams[2])
            if six.PY2:
                home = home.strip().encode('utf-8')
                away = away.strip().encode('utf-8')
            teams = '[B]{0} vs {1}[/B]'.format(home, away)
        except IndexError:
            teams = client.parseDOM(event, 'center')[0]
            teams = re.sub(r'<.+?>|\s{2}', '', teams)
            teams = teams.encode('utf-8') if six.PY2 else teams
            teams = '[B]{}[/B]'.format(teams)
        # xbmc.log('@#@TEAM-FINAL:%s' % str(teams), xbmc.LOGNOTICE)
        lname = client.parseDOM(event, 'a')[1]
        lname = re.sub(r'<.+?>', '', lname)
        time = client.parseDOM(event, 'span', attrs={'class': 'gmt_m_time'})[0]
        time = time.split('GMT')[0].strip()
        cov_time = convDateUtil(
            time, 'default', 'GMT{}'.format(str(control.setting('timezone'))))
        # xbmc.log('@#@COVTIMEEE:%s' % str(cov_time), xbmc.LOGNOTICE)
        ftime = '[COLORgold][I]{}[/COLOR][/I]'.format(cov_time)
        name = '{0}{1} {2} - [I]{3}[/I]'.format(watch, ftime, teams, lname)

        # links = re.findall(r'<a href="(.+?)".+?>( Link.+? )</a>', event, re.DOTALL)
        streams = str(quote(base64.b64encode(six.ensure_binary(streams))))

        icon = client.parseDOM(event, 'img', ret='src')[0]
        icon = urljoin(BASEURL, icon)

        addDir(name, streams, 4, icon, FANART, name)
Exemple #26
0
def get_new(url):
    r = client.request(url, headers=headers)
    r = client.parseDOM(r, 'div', attrs={'class': 'row'})[0]
    r = zip(client.parseDOM(r, 'a', ret='href'),
            client.parseDOM(r, 'img', ret='src'),
            client.parseDOM(r, 'img', ret='alt'))
    for link, poster, name in r:
        name = client.replaceHTMLCodes(name)
        name = name.encode('utf-8')

        link = client.replaceHTMLCodes(link)
        link = link.encode('utf-8')
        link = 'https:' + link if link.startswith('//') else link

        poster = client.replaceHTMLCodes(poster)
        poster = 'https:' + poster if poster.startswith('//') else poster
        poster = poster.encode('utf-8')

        addDir('[B][COLOR white]%s[/COLOR][/B]' % name, link, 100, poster,
               FANART, '')
    xbmcplugin.setContent(int(sys.argv[1]), 'movies')
def get_video_openload(url):
    data = client.request(url)
    try:
        code = re.findall('p style="" id="[^"]+">(.*?)<\/p',
                          data,
                          flags=re.DOTALL)[0]
        _0x59ce16 = eval(
            re.findall('_0x59ce16=([^;]+)',
                       data)[0].replace('parseInt', 'int'))
        _1x4bfb36 = eval(
            re.findall('_1x4bfb36=([^;]+)',
                       data)[0].replace('parseInt', 'int'))
        parseInt = eval(
            re.findall('_0x30725e,(\(parseInt.*?)\),',
                       data)[0].replace('parseInt', 'int'))
        link = decode(code, parseInt, _0x59ce16, _1x4bfb36)
        link = read_openload(link)
        ua = "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3163.100 Safari/537.36"
        return '%s|User-Agent=%s&Referer=%s' % (link, urllib.quote(ua), url)
    except:
        pass
        return ''
def resolver(host):
    referer = re.sub('embed-', 'player-', host)
    OPEN = client.request(referer, referer=referer)

    key = ''
    for list in find_multiple_matches(OPEN, '_[^=]+=(\[[^\]]+\]);'):
        if len(list) == 703 or len(list) == 711:
            key = "".join(eval(list)[7:9])
            break
    if key.startswith("embed"):
        key = key[6:] + key[:6]
    matches = find_single_match(
        OPEN, "<script type=[\"']text/javascript[\"']>(eval.*?)</script>")
    data = jsunpack.unpack(matches).replace("\\", "")

    data = find_single_match(data.replace('"', "'"),
                             "sources\s*=[^\[]*\[([^\]]+)\]")
    print data
    matches = find_multiple_matches(data, "[src|file]:'([^']+)'")
    video_urls = []
    for video_url in matches:
        _hash = find_single_match(video_url, '[A-z0-9\_\-]{40,}')
        hash = decrypt(_hash, key)
        video_url = video_url.replace(_hash, hash)
        filename = get_filename_from_url(video_url)[-4:]
        if video_url.startswith("rtmp"):
            rtmp, playpath = video_url.split("vod/", 1)
            video_url = "%svod/ playpath=%s swfUrl=%splayer6/jwplayer.flash.swf pageUrl=%s" % \
                        (rtmp, playpath, 'http://streamplay.to/', host)
            filename = "RTMP"
        elif video_url.endswith("/v.mp4"):
            video_url_flv = re.sub(r'/v.mp4', '/v.flv', video_url)
            video_urls.append(["flv [streamplay]", video_url_flv])

        video_urls.append([filename + " [streamplay]", video_url])
        video_urls.sort(key=lambda x: x[0], reverse=True)
    return video_urls
Exemple #29
0
def get_cat_cams():
    try:
        html = six.ensure_str(client.request(base_url, referer=BASEURL))
        data = client.parseDOM(html,
                               'li',
                               attrs={'class': 'dropdown mega-dropdown'})[0]
        cats = client.parseDOM(data, 'div', attrs={'class':
                                                   'container-fluid'})[0]
        cats = dom.parse_dom(cats, 'a', req='href')
        for cat in cats:
            name = client.parseDOM(cat.content, 'p', attrs={'class':
                                                            'tcam'})[0]
            if six.PY2:
                name = name.encode('utf-8')
            name = '[B][COLOR white]{}[/COLOR][/B]'.format(name)
            icon = client.parseDOM(cat.content, 'img', ret='data-src')[0]
            icon = 'https:{}'.format(icon) if icon.startswith('//') else icon
            icon = icon + '|Referer={}'.format(base_url)
            url = cat.attrs['href'][3:]
            url = '{2}/{0}/{1}'.format(web_lang, url, base_url)
            addDir(name, url, 5, icon, FANART, '')
    except BaseException:
        pass
    xbmcplugin.setContent(int(sys.argv[1]), 'movies')
Exemple #30
0
def GETLINKS(url, name):
    progressDialog = xbmcgui.DialogProgress()
    progressDialog.create(addon_name,
                          'Gathering Links For: [COLOR blue]%s[/COLOR]' % name)
    progressDialog.update(0)
    name = str(name).replace(' [COLOR blue]', '').replace(
        '[/COLOR]', '').replace('CAM', '').replace('SD', '').replace('HD', '')
    name = tools.geturl(name)
    name = re.sub('-$', '', name)
    name = re.sub('^-', '', name)
    base_link = 'http://watch5s.is'
    strm_link = 'http://play.watch5s.is/grabber-api/episode/%s?token=%s'
    url = re.sub('/$', '', url)
    req = url + '/watch/'
    #Text_Box('h',req)
    referer = req
    r = client.request(req)

    if '<title>Watch Free Movies Online, Best Site to Watch Free Movies HD - WATCH5S.TO</title>' in r:
        r = client.request(url)
        part = tools.regex_from_to(r, '<div id="mv-info">', '</div>')
        url = tools.regex_from_to(part, 'href="', '"')
        r = client.request(url)

    all = tools.regex_get_all(r, '<div class="les-content">', '</div>')
    for a in all:
        try:
            u = tools.regex_from_to(a, '<a href="', '"')
            qual = tools.regex_from_to(a, 'first-ep.*?">', '<')
            p = client.request(u, referer=referer, timeout='10')

            t = re.findall('player_type\s*:\s*"(.+?)"', p)[0]
            if not t == 'embed':

                s = client.parseDOM(p,
                                    'input',
                                    ret='value',
                                    attrs={'name': 'episodeID'})[0]
                t = ''.join(
                    random.sample(
                        string.digits + string.ascii_uppercase +
                        string.ascii_lowercase, 8))
                k = hashlib.md5('!@#$%^&*(' + s + t).hexdigest()
                v = hashlib.md5(t + referer + s).hexdigest()

                stream = strm_link % (s, t)
                cookie = '%s=%s' % (k, v)

                u = client.request(stream,
                                   referer=referer,
                                   cookie=cookie,
                                   timeout='10')
                url = tools.regex_from_to(u, '"file":"', '"')
                if not 'grabber-api' in url:
                    host = 'GVIDEO'
                    addDir('%s | [COLOR blue]%s[/COLOR]' % (host, qual),
                           urllib.quote_plus(str(url).replace('\/', '/')), 7,
                           icon, fanart, '')
            else:
                url = tools.regex_from_to(p, 'embed_src: "', '"')
                if 'openload' in url:
                    host = 'OPENLOAD'
                addDir('%s | [COLOR blue]%s[/COLOR]' % (host, qual), url, 7,
                       icon, fanart, '')
        except:
            pass

    progressDialog.close()