Пример #1
0
def uninstall_custom_site():
    sites = select_custom_sites_attributes(None, 'author', 'name', 'title')
    if not sites:
        utils.notify('No custom sites installed')
        return
    sites = {
        '{} by {}'.format(title, author): [author, name, title]
        for author, name, title in sites
    }
    chosen = utils.selector("Select site to uninstall",
                            sites,
                            show_on_one=True)
    if not chosen:
        return
    author, name, title = chosen
    delete_custom_site(author, name)
    xbmc.executebuiltin('Container.Refresh')
    utils.notify("{}".format(title), "Site uninstalled")
Пример #2
0
def hanime_play(url, name, download=None):
    url = 'https://hanime.tv/rapi/v7/videos_manifests/{0}'.format(url)
    listhtml = utils.getHtml(url, headers=hanime_headers)
    streams = json.loads(listhtml)['videos_manifest']['servers'][0]['streams']
    sources = {
        stream.get('height'): stream.get('url')
        for stream in streams if stream.get('url')
    }
    if sources:
        vp = utils.VideoPlayer(name, download=download)
        videourl = utils.selector('Select quality',
                                  sources,
                                  setting_valid='qualityask',
                                  sort_by=lambda x: int(x),
                                  reverse=True)
        if videourl:
            videourl = videourl + '|User-Agent:' + ua
            vp.play_from_direct_link(videourl)
Пример #3
0
def move_listitem(listitem_id):
    custom_lists = get_custom_lists()
    custom_lists = {row[1]: str(row[0]) for row in custom_lists}
    custom_lists['Main menu'] = 'main'
    selected_id = utils.selector('Move this item to',
                                 custom_lists,
                                 sort_by=lambda x: x[1],
                                 show_on_one=True)
    if selected_id:
        conn = sqlite3.connect(favoritesdb)
        c = conn.cursor()
        c.execute("UPDATE custom_listitems set list_id = ? WHERE rowid = ?", (
            selected_id,
            listitem_id,
        ))
        conn.commit()
        conn.close()
        xbmc.executebuiltin('Container.Refresh')
Пример #4
0
def Lists(url):
    lists = {}
    lists['HD P**n 1080p Videos - Recent'] = siteurl + '/category/hd-1080p/'
    lists[
        'HD P**n 1080p Videos - Top Rated'] = siteurl + '/category/hd-1080p/SORT-top-rated/'
    lists[
        'HD P**n 1080p Videos - Longest'] = siteurl + '/category/hd-1080p/SORT-longest/'
    lists['60 FPS P**n Videos - Recent'] = siteurl + '/category/60fps/'
    lists[
        '60 FPS P**n Videos - Top Rated'] = siteurl + '/category/60fps/SORT-top-rated/'
    lists[
        '60 FPS P**n Videos - Longest'] = siteurl + '/category/60fps/SORT-longest/'
    lists['Popular P**n Videos'] = siteurl + '/popular-videos/'
    lists['Best HD P**n Videos'] = siteurl + '/top-rated/'
    lists['Currently Watched P**n Videos'] = siteurl + '/currently/'
    lists['4K P**n Ultra HD - Recent'] = siteurl + '/category/4k-p**n/'
    lists[
        '4K P**n Ultra HD - Top Rated'] = siteurl + '/category/4k-p**n/SORT-top-rated/'
    lists[
        '4K P**n Ultra HD - Longest'] = siteurl + '/category/4k-p**n/SORT-longest/'
    lists['HD Sex P**n Videos - Recent'] = siteurl + '/category/hd-sex/'
    lists[
        'HD Sex P**n Videos - Top Rated'] = siteurl + '/category/hd-sex/SORT-top-rated/'
    lists[
        'HD Sex P**n Videos - Longest'] = siteurl + '/category/hd-sex/SORT-longest/'
    lists['Amateur P**n Videos - Recent'] = siteurl + '/category/amateur/'
    lists[
        'Amateur P**n Videos - Top Rated'] = siteurl + '/category/amateur/SORT-top-rated/'
    lists[
        'Amateur P**n Videos - Longest'] = siteurl + '/category/amateur/SORT-longest/'
    lists['Solo Girls P**n Videos - Recent'] = siteurl + '/category/solo/'
    lists[
        'Solo Girls P**n Videos - Top Rated'] = siteurl + '/category/solo/top-rated/'
    lists[
        'Solo Girls P**n Videos - Longest'] = siteurl + '/category/solo/longest/'
    lists['VR P**n Videos - Recent'] = siteurl + '/category/vr-p**n/'
    lists[
        'VR P**n Videos - Top Rated'] = siteurl + '/category/vr-p**n/SORT-top-rated/'
    lists[
        'VR P**n Videos - Longest'] = siteurl + '/category/vr-p**n/SORT-longest/'
    url = utils.selector('Select', lists)
    if not url:
        return
    List(url)
Пример #5
0
def Playvid(url, name, download=None):
    vp = utils.VideoPlayer(name, download)
    vp.progress.update(25, "[CR]Loading video page[CR]")
    phtml = utils.getHtml(url, site.url)
    phtml = re.compile('(<main.+?main>)').findall(phtml)[0]
    sources = re.compile(
        r'href=([^\s]+)\s*(?:target=_blank rel="nofollow noopener noreferrer")?\s*class="external'
    ).findall(phtml)
    links = {}
    for link in sources:
        if 'adshrink' in link:
            link = 'http' + link.split('http')[-1]
        if vp.resolveurl.HostedMediaFile(link).valid_url():
            links[link.split('/')[2]] = link
    videourl = utils.selector('Select link', links)
    if not videourl:
        vp.progress.close()
        return
    vp.play_from_link_to_resolve(videourl)
Пример #6
0
def PTPlayvid(url, name, download=None):
    progress.create('Play video', 'Searching for videofile.')
    progress.update(25, "", "Loading video page", "")
    videopage = utils.getHtml(url, '')
    sources = {}
    try:
        sources['2160p 4k'] = re.compile("video_alt_url5: '([^']+)'", re.DOTALL | re.IGNORECASE).findall(videopage)[0]
    except IndexError:
        pass
    try:
        sources['1440p'] = re.compile("video_alt_url4: '([^']+)'", re.DOTALL | re.IGNORECASE).findall(videopage)[0]
    except IndexError:
        pass
    try:
        sources['1080p'] = re.compile("video_alt_url3: '([^']+)'", re.DOTALL | re.IGNORECASE).findall(videopage)[0]
    except IndexError:
        pass
    try:
        sources['720p'] = re.compile("video_alt_url2: '([^']+)'", re.DOTALL | re.IGNORECASE).findall(videopage)[0]
    except IndexError:
        pass
    try:
        sources['480p'] = re.compile("video_alt_url: '([^']+)'", re.DOTALL | re.IGNORECASE).findall(videopage)[0]
    except IndexError:
        pass
    try:
        sources['360p'] = re.compile("video_url: '([^']+)'", re.DOTALL | re.IGNORECASE).findall(videopage)[0]
    except IndexError:
        pass
    videourl = utils.selector('Select quality', sources, dont_ask_valid=True, sort_by=lambda x: int(''.join([y for y in x if y.isdigit()])), reverse=True)
    if not videourl:
        progress.close()
        return
    utils.kodilog(videourl)
    progress.update(75, "", "Video found", "")
    progress.close()
    if download == 1:
        utils.downloadVideo(videourl, name)
    else:
        iconimage = xbmc.getInfoImage("ListItem.Thumb")
        listitem = xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage)
        listitem.setInfo('video', {'Title': name, 'Genre': 'P**n'})
        xbmc.Player().play(videourl, listitem)
Пример #7
0
def Playvid(url, name, download=None):
    vp = utils.VideoPlayer(name, download)
    vp.progress.update(25, "[CR]Loading video page[CR]")
    videopage = utils.getHtml(url, site.url)
    player = re.compile(r'<iframe.+?class=""\s*src="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(videopage)
    if player:
        playerpage = utils.getHtml(player[0], url)
    else:
        vp.progress.close()
        return
    links = re.compile(r'"src":\s*"([^"]+)".+?"label":\s*"([^"]+)"', re.DOTALL | re.IGNORECASE).findall(playerpage)
    links = {x[1].replace('4K', '2160p').replace('UHD', '2160p'): x[0] for x in links}
    videourl = utils.selector('Choose your video', links, setting_valid='qualityask', sort_by=lambda x: int(x[:-1]), reverse=True)
    if not videourl:
        vp.progress.close()
        return
    videourl = videourl.replace("\\", "")
    videourl = utils.getVideoLink(videourl, url)
    vp.play_from_direct_link(videourl)
Пример #8
0
def getFly(url):
    videopage = utils.getHtml(url, '')
    #    videos = re.compile('fileUrl="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(videopage)
    videos = re.compile(r"<source src='([^']+)'.*?label='([^']+)'",
                        re.DOTALL | re.IGNORECASE).findall(videopage)
    list = {}
    for video_link, quality in videos:
        quality = quality.replace('4K', '2160p')
        list[quality] = video_link
    videourl = utils.selector('Select quality',
                              list,
                              dont_ask_valid=True,
                              sort_by=lambda x: int(re.findall(r'\d+', x)[0]),
                              reverse=True)
    if not videourl:
        return
    if videourl.startswith('//'):
        videourl = 'https:' + videourl
    return videourl
Пример #9
0
def Playvid(url, name, download=None):
    videopage = utils.getHtml(url, '')
    videos = re.compile('"videos": {(.+?)"preview"',
                        re.DOTALL | re.IGNORECASE).findall(videopage)
    videos1 = re.compile(
        '"([^"]+)":.+?"type": "video".+?"url": "([^"]+)",.+?"default":.+?',
        re.DOTALL | re.IGNORECASE).findall(videos[0])
    list = {}
    for quality, video_link in videos1:
        quality = quality + 'p'
        list[quality] = video_link
    videourl = utils.selector('Select quality',
                              list,
                              dont_ask_valid=True,
                              sort_by=lambda x: int(re.findall(r'\d+', x)[0]),
                              reverse=True)
    if not videourl:
        return
    utils.playvid(videourl, name, download)
Пример #10
0
def Playvid(url, name, download=None):
    vp = utils.VideoPlayer(name, download)
    vp.progress.update(25, "[CR]Loading video page[CR]")
    phtml = utils.getHtml(url, site.url)
    sources = re.compile(r'class="box\s.+?href="([^"]+)',
                         re.DOTALL | re.IGNORECASE).findall(phtml)
    if not sources and utils.addon.getSetting("universal_resolvers") == "true":
        sources = re.compile(
            r'class="ocult".+?Enlaces"[^>]+>(?:<b>)?(.*?)(?:...)?<',
            re.DOTALL | re.IGNORECASE).findall(phtml)
    links = {}
    for link in sources:
        if vp.resolveurl.HostedMediaFile(link).valid_url():
            links[link.split('/')[2]] = link
    videourl = utils.selector('Select link', links)
    if not videourl:
        vp.progress.close()
        return
    vp.play_from_link_to_resolve(videourl)
Пример #11
0
def Playvid(url, name, download=None):
    vp = utils.VideoPlayer(name, download, '', 'Download:.+?href="([^"]+)"')

    videopage = utils.getHtml(url, '')
    match = re.compile(r'Download:(.+?)<\/div>',
                       re.DOTALL | re.IGNORECASE).findall(videopage)
    srcs = re.compile('href="([^"]+)".+?>([^<]+)<',
                      re.DOTALL | re.IGNORECASE).findall(match[0])
    sources = {}
    for videourl, quality in srcs:
        if videourl:
            sources[quality] = videourl
    videourl = utils.selector('Select quality',
                              sources,
                              setting_valid='qualityask',
                              sort_by=lambda x: int(x.split('x')[0]),
                              reverse=True)
    if videourl:
        vp.play_from_direct_link(videourl)
Пример #12
0
def getBMW(url):
    videopage = utils.getHtml(url, '')
    #redirecturl = utils.getVideoLink(url, '')
    #videodomain = re.compile("http://([^/]+)/", re.DOTALL | re.IGNORECASE).findall(redirecturl)[0]
    videos = re.compile(r"<a href='([^']+)' style='color:#ddd'>(.+?)</a>",
                        re.DOTALL | re.IGNORECASE).findall(videopage)
    list = {}
    for video_link, quality in videos:
        quality = quality.replace('4K', '2160p')
        list[quality] = video_link
    videourl = utils.selector('Select quality',
                              list,
                              dont_ask_valid=True,
                              sort_by=lambda x: int(re.findall(r'\d+', x)[0]),
                              reverse=True)
    if not videourl:
        return
    if videourl.startswith('//'):
        videourl = 'https:' + videourl
    return videourl
Пример #13
0
def Playvid(url, name, download=None):
    links = {}
    vp = utils.VideoPlayer(name, download)
    vp.progress.update(25, "[CR]Loading video page[CR]")
    videopage = utils.getHtml(url)
    iframes = re.compile(r'<iframe.+?src="([^"]+)"[^>]+>.*?</iframe', re.DOTALL | re.IGNORECASE).findall(videopage)
    if iframes:
        for link in iframes:
            if vp.resolveurl.HostedMediaFile(link).valid_url():
                links[link.split('/')[2]] = link
    srcs = re.compile(r'label="([^"]+)"\s*src="([^"]+)" type=', re.DOTALL | re.IGNORECASE).findall(videopage)
    if srcs:
        for quality, videourl in srcs:
            links['Direct ' + quality] = videourl.replace(' ', '%20') + '|Referer=%s&User-Agent=%s&verifypeer=false' % (url, utils.USER_AGENT)

    videourl = utils.selector('Select link', links)
    if '|Referer' in videourl:
        vp.play_from_direct_link(videourl)
    else:
        vp.play_from_link_to_resolve(videourl)
Пример #14
0
def Playvid(url, name, download=None):
    links = {}
    vp = utils.VideoPlayer(name, download)
    vp.progress.update(25, "[CR]Loading video page[CR]")
    videopage = utils.getHtml(url)
    videopage = videopage.split('>Watch Online')[-1]

    srcs = re.compile(r'<a title="([^"]+)" href="([^"]+)"',
                      re.DOTALL | re.IGNORECASE).findall(videopage)
    for title, src in srcs:
        title = utils.cleantext(title)
        title = title.split(' on ')[-1]
        if 'mangovideo' in src:
            html = utils.getHtml(src, url)
            if '=' in src:
                src = src.split('=')[-1]
            murl = re.compile(r"video_url:\s*'([^']+)'",
                              re.DOTALL | re.IGNORECASE).findall(html)
            if murl:
                if murl[0].startswith('function/'):
                    license = re.findall(r"license_code:\s*'([^']+)", html)[0]
                    murl = kvs_decode(murl[0], license)
            else:
                murl = re.compile(r'action=[^=]+=([^\?]+)/\?download',
                                  re.DOTALL | re.IGNORECASE).findall(html)
                if murl:
                    murl = murl[0]
            if murl:
                links[title] = murl
        elif vp.resolveurl.HostedMediaFile(src).valid_url():
            links[title] = src
    videourl = utils.selector('Select server', links, setting_valid=False)
    if not videourl:
        vp.progress.close()
        return

    vp.progress.update(90, "[CR]Loading video page[CR]")
    if 'mango' in videourl:
        vp.play_from_direct_link(videourl)
    else:
        vp.play_from_link_to_resolve(videourl)
Пример #15
0
def SelectCat(url):
    cats = {}
    cats['Categories - Recent'] = siteurl + '/categories/'
    cats['Categories - Most Popular'] = siteurl + '/categories/?order=popular'
    cats['Categories - No. of Videos'] = siteurl + '/categories/?order=videos'
    cats['Categories - Featured'] = siteurl + '/categories/?order=featured'
    cats['Categories - Alphabetical'] = siteurl + '/categories/?order=alphabetical'
    cats['Playlists - Recent'] = siteurl + '/playlists/recent/'
    cats['Playlists - Most Viewed'] = siteurl + '/playlists/'
    cats['Playlists - Top Rated'] = siteurl + '/playlists/rated/'
    cats['Playlists - Most Favorited'] = siteurl + '/playlists/favorited/'
    cats['Models - Recent'] = siteurl + '/models/recent/'
    cats['Models - Most Viewed'] = siteurl + '/models/viewed/'
    cats['Models - Most Popular'] = siteurl + '/models/'
    cats['Models - Alphabetical'] = siteurl + '/models/alphabetical/'
    cats['Models - Most Subscribed'] = siteurl + '/models/subscribed/'
    cats['Models - No. of Videos'] = siteurl + '/models/videos/'
    url = utils.selector('Select', cats)
    if not url:
        return
    Cat(url)
Пример #16
0
def Playvid(url, name, download=None):
    vp = utils.VideoPlayer(name, download)
    response = utils.getHtml(url, hdr=xhamster_headers)
    #    match = get_xhamster_link(response)
    vp.progress.update(25, "", "Loading video page", "")

    match = re.compile('"sources":{"mp4":{([^}]+)},',
                       re.DOTALL | re.IGNORECASE).findall(response)
    match0 = re.compile('"([^"]+)":"([^"]+)"',
                        re.DOTALL | re.IGNORECASE).findall(match[0])
    links = {}
    for quality, video_link in match0:
        links[quality] = video_link
    selected = utils.selector('Select quality',
                              links,
                              dont_ask_valid=True,
                              sort_by=lambda x: int(x[:-1]),
                              reverse=True)
    if not selected: return
    selected = selected.replace('\\/', '\\') + '|Referer=' + url
    vp.play_from_direct_link(selected)
Пример #17
0
def Playvid(url, name, download=None):
    vp = utils.VideoPlayer(name, download)
    vp.progress.update(25, "", "Loading video page", "")
    videopage = utils.getHtml(url, pdreferer, headers, data='')
    links = re.compile(
        '<a href="([^"]+)" class="post_download_link clearfix">[^>]+>([^<]+)<',
        re.DOTALL | re.IGNORECASE).findall(videopage)
    sources = {}
    for videolink, resolution in links:
        sources[utils.cleantext(resolution)] = videolink
    videourl = utils.selector('Select quality',
                              sources,
                              dont_ask_valid=True,
                              sort_by=lambda x: 1081
                              if 'UHD' in x else int(x[:-3]),
                              reverse=True)
    if not videourl:
        return
    videourl = utils.getVideoLink(videourl, url)
    vp.progress.update(75, "", "Loading video page", "")
    vp.play_from_direct_link(videourl)
Пример #18
0
def hentaidude_eps(url):
    listhtml = utils.getHtml(url, site.url)
    if 'More Episodes From This Series:' in listhtml:
        episodes = re.findall(
            r"""href='([^']+)'\s*class="dudep".*?<p>([^<]+)""", listhtml,
            re.DOTALL | re.IGNORECASE)
        if episodes:
            eps = {}
            for url, episode in episodes:
                episode = episode.strip()
                eps[episode] = url
            selected_episode = utils.selector('Choose episode',
                                              eps,
                                              show_on_one=True)
            if not selected_episode:
                return
            hentaidude_play(
                selected_episode,
                list(eps.keys())[list(eps.values()).index(selected_episode)])
    else:
        utils.notify('Notify', 'No other episodes found')
Пример #19
0
def disable_custom_site():
    conn = sqlite3.connect(favoritesdb)
    conn.text_factory = str
    c = conn.cursor()
    c.execute("SELECT author, name, title FROM custom_sites WHERE enabled = 1")
    rows = c.fetchall()
    conn.close()
    if not rows:
        utils.notify('No enabled custom sites found')
        return
    sites = {'{} by {}'.format(title, author): [author, name, title] for author, name, title in rows}
    chosen = utils.selector("Select site to enable", sites, show_on_one=True)
    author, name, title = chosen
    conn = sqlite3.connect(favoritesdb)
    conn.text_factory = str
    c = conn.cursor()
    c.execute("UPDATE custom_sites SET enabled = 0 WHERE author = ? and name = ?", (author, name))
    conn.commit()
    conn.close()
    xbmc.executebuiltin('Container.Refresh')
    utils.notify("{}".format(title), "Site disabled")
Пример #20
0
def Playvid(url, name, download=None):
    vp = utils.VideoPlayer(name, download)
    vp.progress.update(25, "", "Loading video page", "")
    videohtml = utils.getHtml(url, '')
    stream_key = re.compile('data-streamkey="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(videohtml)[0]
    url = 'https://spankbang.com/api/videos/stream'
    form_data = { 'id': stream_key, 'data': 0 }
#, 'sb_csrf_session': sb_csrf_session }
    headers = {
    'Referer': 'https://spankbang.com/',
#   'X-CSRFToken': sb_csrf_session,
    }
    resp = utils.postHtml(url, form_data=form_data, headers=headers, compression=False, NoCookie=None)
    sources = {}
    srcs = re.compile('"stream_url_(240p|320p|480p|720p|1080p|4k)":\["([^"]+)"\]', re.DOTALL | re.IGNORECASE).findall(resp)  
    for quality, videourl in srcs:
        if videourl:
            sources[quality] = videourl
    videourl = utils.selector('Select quality', sources, dont_ask_valid=True, sort_by=lambda x: 1081 if x == '4k' else int(x[:-1]), reverse=True)
    if not videourl:
        return
    vp.play_from_direct_link(videourl)
def animeidhentai_play(url, name, download=None):
    vp = utils.VideoPlayer(name, download)
    vp.progress.update(25, "", "Loading video page", "")
    html = utils.getHtml(url)
    video_url = re.compile('data-lazy-src="([^"]+ksplayer[^"]+)"></iframe>',
                           re.DOTALL | re.IGNORECASE).findall(html)
    video_url = video_url[0].replace('embed', 'download')
    videopage = utils.getHtml(video_url, url)
    match = re.compile(
        '''href=["']?(?P<url>[^"']+)["']?>DOWNLOAD <span>(?P<label>[^<]+)''',
        re.DOTALL | re.IGNORECASE).findall(videopage)
    vp.progress.update(50, "", "Loading video page", "")
    list = {}
    for video_link, quality in match:
        list[quality] = video_link
    selected = utils.selector('Select quality',
                              list,
                              dont_ask_valid=True,
                              sort_by=lambda x: int(x[:-1]),
                              reverse=True)
    if not selected: return
    vp.play_from_direct_link(selected)
Пример #22
0
def XTVideo(url, name, download=None):
    vp = utils.VideoPlayer(name, download)
    vp.progress.update(25, "", "Loading video page", "")
    html = utils.getHtml(url, url)
    if 'strdef.world' in html:
        links = vp._check_suburls(html, url)
        select = {}
        for i, link in enumerate(links, start = 1):
            if 'strdef.world' in link:
                req = urllib2.Request(link,'',utils.headers)
                req.add_header('Referer', url)
                response = urllib2.urlopen(req, timeout=30)
                link = response.geturl()
            index = 'Player ' + str(i) + ' - ' + link.rsplit('/', 1)[-1]
            select[index] = link
        videourl = utils.selector('Select video:', select, dont_ask_valid=False)
        if not videourl:
            return
        videourl = videourl.replace('woof.tube','verystream.com')
        vp.play_from_link_to_resolve(videourl)
    else:
        vp.play_from_html(html)
Пример #23
0
def Lists(url):
    lists = {}
    lists['Videos - Recent'] = siteurl + '/videos/'
    lists['Videos - Most Popular'] = siteurl + '/videos/popular/'
    lists['Videos - Most Viewed'] = siteurl + '/videos/viewed/'
    lists['Videos - Top Rated'] = siteurl + '/videos/rated/'
    lists['Videos - Most Favorited'] = siteurl + '/videos/favorited/'
    lists['Chinese - China'] = siteurl + '/videos/china/'
    lists['Chinese - Singapore'] = siteurl + '/videos/singapore/'
    lists['Chinese - Malaysia'] = siteurl + '/videos/malaysia/'
    lists['Chinese - Taiwan'] = siteurl + '/videos/taiwan/'
    lists['Chinese - Hong Kong'] = siteurl + '/videos/hong-kong/'
    lists['Korean - Korean'] = siteurl + '/videos/korean/'
    lists['Korean - Korean P**n'] = siteurl + '/videos/korean-p**n/'
    lists['Korean - Korean BJ'] = siteurl + '/videos/korean-bj/'
    lists['Korean - Korean BJ Couple'] = siteurl + '/videos/korean-bj-couple/'
    lists[
        'Korean - Korean BJ Lesbian'] = siteurl + '/videos/korean-bj-lesbian/'
    lists[
        'Korean - Korean BJ Uncensored'] = siteurl + '/videos/korean-bj-uncensored/'
    lists['Japanese - Japanese'] = siteurl + '/videos/japanese/'
    lists['Japanese - JAV Censored'] = siteurl + '/videos/jav-censored/'
    lists['Japanese - JAV Uncensored'] = siteurl + '/videos/jav-uncensored/'
    lists['Japanese - JAV Amateur'] = siteurl + '/videos/jav-amateur/'
    lists['Western'] = siteurl + '/videos/western/'
    lists['Movies - Recent'] = siteurl + '/videos/p**n-movies/'
    lists['Movies - Top Rated'] = siteurl + '/videos/p**n-movies/rated/'
    lists['Movies - Longest'] = siteurl + '/videos/p**n-movies/longest/'
    lists['Professional - Recent'] = siteurl + '/videos/professional/'
    lists['Professional - Top Rated'] = siteurl + '/videos/professional/rated/'
    lists['Professional - Longest'] = siteurl + '/videos/professional/longest/'
    lists['Homemade - Recent'] = siteurl + '/videos/homemade/'
    lists['Homemade - Top Rated'] = siteurl + '/videos/homemade/rated/'
    lists['Homemade - Longest'] = siteurl + '/videos/homemade/longest/'
    url = utils.selector('Select', lists)
    if not url:
        return
    List(url)
Пример #24
0
def Play(url, name, download=None):
    siteurl = getBaselink(url)
    vp = utils.VideoPlayer(name, download)
    vp.progress.update(25, "[CR]Loading video page[CR]")
    vpage = utils.getHtml(url, siteurl)
    sources = {}
    license = re.compile(r"license_code:\s*'([^']+)", re.DOTALL | re.IGNORECASE).findall(vpage)[0]
    patterns = [r"video_url:\s*'([^']+)[^;]+?video_url_text:\s*'([^']+)",
                r"video_alt_url:\s*'([^']+)[^;]+?video_alt_url_text:\s*'([^']+)",
                r"video_alt_url2:\s*'([^']+)[^;]+?video_alt_url2_text:\s*'([^']+)",
                r"video_url:\s*'([^']+)',\s*postfix:\s*'\.mp4',\s*(preview)"]
    for pattern in patterns:
        items = re.compile(pattern, re.DOTALL | re.IGNORECASE).findall(vpage)
        for surl, qual in items:
            qual = '00' if qual == 'preview' else qual
            surl = kvs_decode(surl, license)
            sources.update({qual: surl})
    videourl = utils.selector('Select quality', sources, setting_valid='qualityask', sort_by=lambda x: 1081 if x == '4k' else int(x[:-1]), reverse=True)

    if not videourl:
        vp.progress.close()
        return
    vp.play_from_direct_link(videourl)
Пример #25
0
def PTPlayvid(url, name, download=None):
    vp = utils.VideoPlayer(name, download=download)
    vp.progress.update(25, "", "Loading video page", "")

    hdr = dict(utils.headers)
    hdr['Cookie'] = 'PHPSESSID=' + utils.addon.getSetting('session') + '; kt_member=' + utils.addon.getSetting('kt_member')
    videopage = utils.getHtml(url, hdr=hdr)
    if 'video is a private video' in videopage:
        utils.notify('PRIVATE VIDEO','Add an account in settings to watch private videos!')
        return

    if 'video_url_text' not in videopage:
        videourl = re.compile("video_url: '([^']+)'", re.DOTALL | re.IGNORECASE).search(videopage).group(1)
    else:
        sources = {}
        srcs = re.compile("video(?:_alt_|_)url(?:[0-9]|): '([^']+)'.*?video(?:_alt_|_)url(?:[0-9]|)_text: '([^']+)'", re.DOTALL | re.IGNORECASE).findall(videopage)
        for src, quality in srcs:
            sources[quality] = src
        videourl = utils.selector('Select quality', sources, dont_ask_valid=True, sort_by=lambda x: int(''.join([y for y in x if y.isdigit()])), reverse=True)
    if not videourl:
        return
    vp.direct_regex = '(' + re.escape(videourl) + ')'
    vp.play_from_html(videopage)
Пример #26
0
def getHQWO(url):
    videopage1 = utils.getHtml(url, '')
    videos1 = re.compile(
        "<script type='text/javascript' src='([^']+)'></script>",
        re.DOTALL | re.IGNORECASE).findall(videopage1)
    url = videos1[-1]
    videopage2 = utils.getHtml(url, '')
    videos = re.compile('"file": "([^"]+)".*?"label": "([^"]+)"',
                        re.DOTALL | re.IGNORECASE).findall(videopage2)
    list = {}
    for video_link, quality in videos:
        quality = quality.replace('4K', '2160p')
        list[quality] = video_link
    videourl = utils.selector('Select quality',
                              list,
                              dont_ask_valid=True,
                              sort_by=lambda x: int(re.findall(r'\d+', x)[0]),
                              reverse=True)
    if not videourl:
        return
    if videourl.startswith('//'):
        videourl = 'https:' + videourl
    return videourl
Пример #27
0
def LiveCategories(url):
    try:
        cathtml = utils.getHtml(url, '')
    except Exception as e:
        utils.notify('Categories', e.message)
        return
    cJson = json.loads(cathtml)
    cat = [
        item for item in cJson
        if ('status' not in item and 'requestkey' not in item)
    ]

    selectedCat = utils.selector('Select server', cat)
    #xbmcgui.Dialog().textviewer(url, str(selectedCat))
    for item in cJson[selectedCat]:
        catId = str(item['CategoryId'])
        catName = item['Name']
        catLive = str(item['LiveCount'])
        utils.addDir(
            catName + ' [COLOR hotpink]' + catLive + '[/COLOR]',
            'http://api.naiadsystems.com/search/v1/list?categoryid=' + catId,
            581, '', '')
    xbmcplugin.endOfDirectory(utils.addon_handle)
Пример #28
0
def PPlayvid(url, name, download=None):
    utils.kodilog(url)
    vp = utils.VideoPlayer(name, download)
    vp.progress.update(25, "", "Loading video page", "")
    videopage = utils.getHtml(url)
    if 'porn00' in url:
        alternatives = re.compile('div id="alternatives".+?href="([^"]+)"',
                                  re.DOTALL | re.IGNORECASE).findall(videopage)
        for alternative in alternatives:
            videopage += utils.getHtml(alternative)
        links = {}
        videolinks = re.compile('iframe.+?src="([^"]+)" width',
                                re.DOTALL | re.IGNORECASE).findall(videopage)
        for link in videolinks:
            if vp.resolveurl.HostedMediaFile(
                    link) and 'www.porn00.org' not in link:
                links[link.split('/')[2]] = link
            if 'www.porn00.org/player/' in link:
                html = utils.getHtml(link)
                srcs = re.compile('''<source src='([^']+)' title="([^"]+)"''',
                                  re.DOTALL | re.IGNORECASE).findall(html)
                for (vlink, title) in srcs:
                    links['direct ' + title] = vlink + '|Referer=' + link
        videourl = utils.selector('Select link',
                                  links,
                                  dont_ask_valid=False,
                                  reverse=True)
        vp.progress.update(75, "", "Loading video page", "")
        if '|Referer' in videourl:
            vp.play_from_direct_link(videourl)
        else:
            vp.play_from_link_to_resolve(videourl)
    if 'pornaq' in url:
        videourl = re.compile("<source src='([^']+)' title",
                              re.DOTALL | re.IGNORECASE).findall(videopage)[0]
        utils.kodilog(videourl)
        vp.play_from_direct_link(videourl + '|Referer=' + url)
Пример #29
0
def Play(url, name, download=None):
    vp = utils.VideoPlayer(name, download=download)
    vp.progress.update(25, "[CR]Loading video page[CR]")
    videohtml = utils.getHtml(url)
    match = re.compile(r'data-localize="([^"]+)".+?">([^<]+)<',
                       re.DOTALL | re.IGNORECASE).findall(videohtml)
    streams = {}
    if match:
        for m in match:
            (data, stream) = m
            streams[stream] = data
    else:
        return
    vp.progress.update(50, "[CR]Loading video page[CR]")

    streamdata = utils.selector('Select', streams)
    if not streamdata:
        return

    match = re.compile(r'var ' + streamdata + r'.+?"iframe_url":"([^"]+)"',
                       re.DOTALL | re.IGNORECASE).findall(videohtml)
    if match:
        link = base64.b64decode(match[0]).decode('utf-8')
    else:
        return
    vp.progress.update(75, "[CR]Loading video page[CR]")
    streamhtml = utils.getHtml(link, url, error='raise')
    match = re.compile(r'''var OLID = '([^']+)'.+?src="([^']+)''',
                       re.DOTALL | re.IGNORECASE).findall(streamhtml)
    if match:
        (olid, vurl) = match[0]
        olid = olid[::-1]
    else:
        return
    src = vurl + olid
    src = utils.getVideoLink(src, link)
    vp.play_from_link_to_resolve(src)
Пример #30
0
def hanime_eps(url):
    url = 'https://hw.hanime.tv/api/v8/video?id=' + url
    try:
        listhtml = utils.getHtml(url, headers=hanime_headers)
    except Exception as e:
        utils.notify('Notify', e)
        return None
    try:
        eps = {}
        episodes = json.loads(listhtml)['hentai_franchise_hentai_videos']
        for episode in episodes:
            name = episode['name']
            if episode['is_censored'] is False:
                name = name + " [COLOR hotpink][I]Uncensored[/I][/COLOR]"
            eps[name] = episode['slug']
        selected_episode = utils.selector('Choose episode',
                                          eps,
                                          show_on_one=True)
        if not selected_episode:
            return
        hanime_play(selected_episode,
                    [x for x, y in eps.items() if y is selected_episode][0])
    except:
        utils.notify('Notify', 'No other episodes found')
Пример #31
0
def PTPlayvid(url, name, download=None):
    progress.create('Play video', 'Searching for videofile.')
    progress.update(25, "", "Loading video page", "")
    videopage = utils.getHtml(url, '')
    if 'video_url_text' not in videopage:
        videourl = re.compile("video_url: '([^']+)'", re.DOTALL | re.IGNORECASE).search(videopage).group(1)
    else:
        sources = {}
        srcs = re.compile("video(?:_alt_|_)url(?:[0-9]|): '([^']+)'.*?video(?:_alt_|_)url(?:[0-9]|)_text: '([^']+)'", re.DOTALL | re.IGNORECASE).findall(videopage)
        for src, quality in srcs:
            sources[quality] = src
        videourl = utils.selector('Select quality', sources, dont_ask_valid=True, sort_by=lambda x: int(''.join([y for y in x if y.isdigit()])), reverse=True)
    if not videourl:
        progress.close()
        return
    progress.update(75, "", "Video found", "")
    progress.close()
    if download == 1:
        utils.downloadVideo(videourl, name)
    else:
        iconimage = xbmc.getInfoImage("ListItem.Thumb")
        listitem = xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage)
        listitem.setInfo('video', {'Title': name, 'Genre': 'P**n'})
        xbmc.Player().play(videourl, listitem)