def getNowVideo(url): progress.update(50, "", "Opening NowVideo page", "") videopage = utils.getHtml(url, "") if not "flashvars.file" in videopage: videoid = re.compile('/video/([^"]+)').findall(videopage)[0] url = "http://embed.nowvideo.sx/embed/?v=" + videoid videopage = utils.getHtml(url, "") fileid = re.compile('flashvars.file="(.+?)";').findall(videopage)[0] codeid = re.compile('flashvars.cid="(.+?)";').findall(videopage) if len(codeid) > 0: codeid = codeid[0] else: codeid = "" keycode = re.compile("flashvars.filekey=(.+?);").findall(videopage)[0] keycode = re.compile("var\s*" + keycode + '="(.+?)";').findall(videopage)[0] videolink = ( "http://www.nowvideo.sx/api/player.api.php?codes=" + urllib.quote_plus(codeid) + "&key=" + urllib.quote_plus(keycode) + "&file=" + urllib.quote_plus(fileid) ) progress.update(60, "", "Grabbing video file", "") vidcontent = utils.getHtml(videolink, "") videourl = re.compile("url=(.+?)\&").findall(vidcontent)[0] progress.update(80, "", "Returning video file", "") return videourl
def BGVersion(): bgpage = utils.getHtml('https://beeg.com','') bgversion = re.compile(r"cpl/(\d+)\.js", re.DOTALL | re.IGNORECASE).findall(bgpage)[0] bgsavedversion = addon.getSetting('bgversion') if bgversion != bgsavedversion or not addon.getSetting('bgsalt'): addon.setSetting('bgversion',bgversion) bgjspage = utils.getHtml('https://beeg.com/static/cpl/'+bgversion+'.js','https://beeg.com') bgsalt = re.compile('beeg_salt="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(bgjspage)[0] addon.setSetting('bgsalt',bgsalt)
def Playvid(url, name, download=None): videopage = utils.getHtml(url) plurl = re.compile('\?u=([^"]+)"', re.DOTALL | re.IGNORECASE).findall(videopage)[0] plurl = "http://sexix.net/qaqqew/playlist.php?u=" + plurl plpage = utils.getHtml(plurl, url) videourl = re.compile('file="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(plpage)[0] if videourl: utils.playvid(videourl, name, download) else: utils.notify("Oh oh", "Couldn't find a video")
def get_porn00(url): videopage = utils.getHtml(url) try: alternatives_div = re.compile('<div id="alternatives">(.*?)</div', re.DOTALL | re.IGNORECASE).search(videopage).group(1) alternatives = re.compile('''href=['"]([^'"]+)['"]''', re.DOTALL | re.IGNORECASE).findall(alternatives_div) for alternative in alternatives: videopage += utils.getHtml(alternative) except AttributeError: pass return '\n'.join(re.compile('<div class="video-box">(.*?)</iframe', re.DOTALL | re.IGNORECASE).findall(videopage))
def pl_play(url, name, download=None): vp = utils.VideoPlayer(name, download=download, regex='''src\s*=\s*["']([^'"]+)''') vp.progress.update(5, "", "Loading video page 1", "") response = utils.getHtml(url) video_players = re.compile('class="embed-sites"(.*?)class="video-detail"', re.DOTALL | re.IGNORECASE).findall(response)[0] source_ids = re.compile('changeDefaultSourceID[(](.?)[)]', re.DOTALL | re.IGNORECASE).findall(video_players) for idx, source_id in enumerate(source_ids): vp.progress.update( 5 + (15 * idx / len(source_ids)), "", "Loading video page {}".format(idx + 2), "" ) response = utils.getHtml(url, hdr=create_header_for_source(source_id)) video_players += re.compile('class="embed-sites"(.*?)class="video-detail"', re.DOTALL | re.IGNORECASE).findall(response)[0] vp.play_from_html(video_players)
def Playvid(url, name, download=None): progress.create('Play video', 'Searching videofile.') progress.update( 10, "", "Loading video page", "" ) html = utils.getHtml(url, '') embedLinks = re.compile('<a href="([^"]+)" rel="nofollow" target="_blank">').findall(html) url = '' for link in embedLinks: if 'embedlink' in link: try: html = utils.getHtml(link, '') if 'Base64' in html: base64str = re.compile(r'Base64\.decode\("([^"]+)"').findall(html) url = url + " " + base64.b64decode(base64str[0]) except: pass utils.playvideo(url, name, download, url)
def Playvid(url, name, download=None): print "mrsexe::Playvid " + url html = utils.getHtml(url, '') videourl = re.compile(r"src='(/inc/clic\.php\?video=.+?&cat=mrsex.+?)'").findall(html) html = utils.getHtml('http://www.mrsexe.com/' + videourl[0], '') videourls = re.compile(r"'file': \"(.+?)\",.+?'label': '(.+?)'", re.DOTALL).findall(html) videourls = sorted(videourls, key=lambda tup: tup[1], reverse=True) videourl = videourls[0][0] 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)
def Categories(url): cathtml = utils.getHtml(url, '') match = re.compile('<li id="categories-2"(.*?)</ul>', re.DOTALL | re.IGNORECASE).findall(cathtml) match1 = re.compile('href="([^"]+)[^>]+>([^<]+)<', re.DOTALL | re.IGNORECASE).findall(match[0]) for catpage, name in match1: utils.addDir(name, catpage, 141, '') xbmcplugin.endOfDirectory(utils.addon_handle)
def TPCat(url): caturl = utils.getHtml(url, '') match = re.compile('<img src="([^"]+)"[^<]+<[^"]+"([^"]+)">([^<]+)<', re.DOTALL | re.IGNORECASE).findall(caturl) for thumb, caturl, cat in match: caturl = "http://www.bubbaporn.com" + caturl + "page1.html" utils.addDir(cat, caturl, 91, thumb, 1) xbmcplugin.endOfDirectory(utils.addon_handle)
def v7_cat(url): listhtml = utils.getHtml(url, 'http://www.vidz7.com/') match = re.compile('li><a href="([^"]+)">(.*?)</a><span>([^<]+)<', re.DOTALL | re.IGNORECASE).findall(listhtml) for catpage, name, nr in match: name = utils.cleantext(name) + ' [COLOR orange]' + nr.strip() + '[/COLOR]' utils.addDir(name, catpage, 641, '', 1) xbmcplugin.endOfDirectory(utils.addon_handle)
def getFly(url): videopage = utils.getHtml(url, '') videos = re.compile('fileUrl="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(videopage) videourl = videos[-1] if videourl.startswith('//'): videourl = 'https:' + videourl return videourl
def List(url): try: listhtml = utils.getHtml(url, '') except: return None match = re.compile('thumb-main-titre"><a href="..([^"]+)".*?title="([^"]+)".*?src="([^"]+)".*?<div class="thumb-info">(.*?)time">([^<]+)<', re.DOTALL | re.IGNORECASE).findall(listhtml) for videourl, name, img, hd, duration in match: name = utils.cleantext(name) if hd.find('hd') > 0: if hd.find('full') > 0: hd = " [COLOR yellow]FULLHD[/COLOR] " else: hd = " [COLOR orange]HD[/COLOR] " else: hd = " " videopage = "http://www.absoluporn.com" + videourl videopage = videopage.replace(" ","%20") name = name + hd + "[COLOR deeppink]" + duration + "[/COLOR]" utils.addDownLink(name, videopage, 302, img, '') try: nextp=re.compile(r'<span class="text16">\d+</span> <a href="..([^"]+)"').findall(listhtml)[0] nextp = nextp.replace(" ","%20") utils.addDir('Next Page', 'http://www.absoluporn.com' + nextp, 301,'') except: pass xbmcplugin.endOfDirectory(utils.addon_handle)
def Categories(): cathtml = utils.getHtml('http://www.amateurcool.com/most-recent/', '') match = re.compile("<a href=\'http://www.amateurcool.com/channels/(.+?)\'>(.+?)</a>").findall(cathtml) for catid, name in match: catpage = "http://www.amateurcool.com/channels/"+ catid utils.addDir(name, catpage, 491, '') xbmcplugin.endOfDirectory(utils.addon_handle)
def Playvid(url, name, download=None): videopage = utils.getHtml(url) videourl = re.compile('class="btn btn-1 btn-1e" href="([^"]+)" target="_blank"', re.DOTALL | re.IGNORECASE).findall(videopage)[0] if videourl: utils.playvid(videourl, name, download) else: utils.notify('Oh oh','Couldn\'t find a video')
def Categories(url): cathtml = utils.getHtml(url, '') match = re.compile('/tag/([^/]+)/" cla[^>]+>([^<]+)<', re.DOTALL | re.IGNORECASE).findall(cathtml) for catpage, name in match: catpage = "http://hentaihaven.org/ajax.php?action=pukka_infinite_scroll&page_no=1&grid_params=infinite_scroll=on&infinite_page=2&infinite_more=true¤t_page=taxonomy&front_page_cats=&inner_grid%5Buse_inner_grid%5D=on&inner_grid%5Btax%5D=post_tag&inner_grid%5Bterm_id%5D=53&inner_grid%5Bdate%5D=&search_query=&tdo_tag=" + catpage + "&sort=date" utils.addDir(name, catpage, 461, '') xbmcplugin.endOfDirectory(utils.addon_handle)
def Categories(url): cathtml = utils.getHtml(url, '') match = re.compile('data-original="([^"]+)".*?href="([^"]+)">([^<]+)<.*?strong>([^<]+)<', re.DOTALL | re.IGNORECASE).findall(cathtml) for img, catpage, name, videos in match: name = name + ' [COLOR deeppink]' + videos + ' videos[/COLOR]' utils.addDir(name, catpage, 131, img) xbmcplugin.endOfDirectory(utils.addon_handle)
def listColeccions(): xbmc.log("--------------listColeccions----------") link = getHtml(url_coleccions) if link: soup = BeautifulSoup(link) try: colecc = soup.findAll("a", {"class" : "media-object"}) xbmc.log("Col·leccions - elements trobats: " + str(len(colecc))) for a in colecc: url = a["href"] url = url_base + url t = a["title"] titol = t.encode("utf-8") xbmc.log("Col·leccions -t: " + titol) img = a.img["src"] addDir(titol ,url,'listvideos', img) except AttributeError as e: xbmc.log("Exception AtributeError listColeccions: " + str(e)) except KeyError as e: xbmc.log("Exception KeyError listColeccions: " + str(e)) except Exception as e: xbmc.log("Exception listColeccions: " + str(e)) xbmcplugin.endOfDirectory(addon_handle)
def EXMovies(url): cathtml = utils.getHtml(url, '') match = re.compile('<div id="movies">(.*?)</div>', re.DOTALL | re.IGNORECASE).findall(cathtml) match1 = re.compile('href="([^"]+)[^>]+>([^<]+)<', re.DOTALL | re.IGNORECASE).findall(match[0]) for catpage, name in match1: utils.addDir(name, catpage, 117, '') xbmcplugin.endOfDirectory(utils.addon_handle)
def STREAMS(): streamurl = 'http://bit.ly/uwcstreams' streamlist = utils.getHtml(streamurl, '') match = re.compile('#.+,(.+?)\n(.+?)\n').findall(streamlist) for name, url in match: utils.addDownLink(name, url, 9, '', '', True) xbmcplugin.endOfDirectory(utils.addon_handle)
def Categories(url): cathtml = utils.getHtml(url, hdr=xhamster_headers) match0 = re.compile('<div class="letter-blocks page">(.*?)<footer>', re.DOTALL | re.IGNORECASE).findall(cathtml) match = re.compile('<a href="(.+?)" >([^<]+)<').findall(match0[0]) for url, name in match: utils.addDir(name, url, 506, '') xbmcplugin.endOfDirectory(utils.addon_handle)
def Categories(url): cathtml = utils.getHtml(url, '') match = re.compile("<a href='/top/([^']+)'>.*?src='([^']+)' alt='([^']+)'", re.DOTALL | re.IGNORECASE).findall(cathtml) for catid, img, name in match: catpage = "http://anybunny.com/new/"+ catid utils.addDir(name, catpage, 321, img) xbmcplugin.endOfDirectory(utils.addon_handle)
def TPNCat(url, index): cathtml = utils.getHtml(url, '') match = re.compile('<ul class="scrolling cat(.*?)</ul>', re.DOTALL | re.IGNORECASE).findall(cathtml) match1 = re.compile('href="([^"]+)[^>]+>([^<]+)<', re.DOTALL | re.IGNORECASE).findall(match[index]) for catpage, name in match1: utils.addDir(name, catpage, 121, '') xbmcplugin.endOfDirectory(utils.addon_handle)
def Cat(url): cathtml = utils.getHtml(url, '') match = re.compile('0" value="([^"]+)">([^<]+)<', re.DOTALL | re.IGNORECASE).findall(cathtml) for catpage, name in match: catpage = 'http://k18.co/?cat=' + catpage utils.addDir(name, catpage, 231, '') xbmcplugin.endOfDirectory(utils.addon_handle)
def datoporn_cat(url): listhtml = utils.getHtml(url) match = re.compile('''class="vid_block".*?href="([^"]+)".*?url[(]([^)]+)[)].*?<span>([^<]+)</span>.*?<b>([^<]+)</b''', re.DOTALL | re.IGNORECASE).findall(listhtml) for catpage, img, count, name in sorted(match, key=lambda x: x[3].strip().lower()): name = utils.cleantext(name.strip()) + " [COLOR deeppink]" + count.strip() + "[/COLOR]" utils.addDir(name, catpage, 671, img, 1) xbmcplugin.endOfDirectory(utils.addon_handle)
def Cat(url): listhtml = utils.getHtml(url, "") match = re.compile('<li><a href="([^"]+)" rel="tag">([^<]+)<', re.DOTALL | re.IGNORECASE).findall(listhtml) for catpage, name in match: name = utils.cleantext(name) utils.addDir(name, catpage, 371, "", "") xbmcplugin.endOfDirectory(utils.addon_handle)
def v7_list(url, page=None, search=None): orig_url = str(url) if page: page_end = 'page/' + str(page) + '/' if url.endswith('/') else '/page/' + str(page) + '/' url += page_end else: page = 1 sort = '?orderby=date' if url.endswith('/') else '/?orderby=date' url += sort url = url + search if search else url try: listhtml = utils.getHtml(url) except Exception as e: return None match = re.compile('''class='thumb-wrapp'.*?href='([^']+)'.*?"([^"]+)".*?class='vl'(.*?)class="duration">(.*?)</div>.*?class='hp'[^>]+>([^<]+)<''', re.DOTALL | re.IGNORECASE).findall(listhtml) for videopage, img, hd, duration, name in match: hd = ' [COLOR orange]HD[/COLOR] ' if 'HD' in hd else ' ' name = utils.cleantext(name) + hd + duration.strip() utils.addDownLink(name, videopage, 642, img, '') pages_html = re.compile('<div class="buttons">(.*?)</div', re.DOTALL | re.IGNORECASE).findall(listhtml)[0] pages = re.compile('<a[^>]+>(.*?)</a', re.DOTALL | re.IGNORECASE).findall(pages_html) pages = [int(p.replace(' ', '').replace('...', '').strip()) for p in pages] max_page = max(pages) if page < max_page: utils.addDir('Next Page (' + str(page + 1) + ')' , orig_url, 641, '', page + 1, search) xbmcplugin.endOfDirectory(utils.addon_handle)
def Categories(): cathtml = utils.getHtml('https://www.vporn.com/', '') match = re.compile('<li><a href="/cat/(.+?)"><img .*>(.+?)</a></li>').findall(cathtml) for catid, name in match[1:]: catpage = "https://www.vporn.com/cat/"+ catid utils.addDir(name, catpage, 501, '') xbmcplugin.endOfDirectory(utils.addon_handle)
def PHCat(url): cathtml = utils.getHtml(url, "") match = re.compile('<ul class="dropdown-menu my-drop">(.*?)</ul>', re.DOTALL | re.IGNORECASE).findall(cathtml) match1 = re.compile('href="([^"]+)[^>]+>([^<]+)<', re.DOTALL | re.IGNORECASE).findall(match[0]) for catpage, name in match1: utils.addDir(name, catpage, 71, "") xbmcplugin.endOfDirectory(utils.addon_handle)
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'file: "([^"]+mp4)", label: "\d', re.DOTALL | re.IGNORECASE).findall(videopage) videourl = videos[-2] return videourl
def PTList(url, page=1, onelist=None): if onelist: url = url.replace('page=1','page='+str(page)) try: listhtml = utils.getHtml(url, '') except: utils.notify('Oh oh','It looks like this website is down.') return None match = re.compile(r'<div class="(?:visible-xs|thumb-overlay)+">\s+<img src=.*?data-original="([^"]+)" title="([^"]+)"[^>]+>(.*?)duration">[^\d]+([^\t\n\r]+)', re.DOTALL | re.IGNORECASE).findall(listhtml) for img, name, hd, duration in match: name = utils.cleantext(name) if hd.find('HD') > 0: hd = " [COLOR orange]HD[/COLOR] " else: hd = " " urlid = re.search(r"(\d{2,})", img, re.DOTALL | re.IGNORECASE).group() videopage = "http://www.porntrex.com/media/nuevo/config.php?key=" + urlid + "-1-1" name = name + hd + "[COLOR deeppink]" + duration + "[/COLOR]" utils.addDownLink(name, videopage, 52, img, '') if not onelist: if re.search('class="prevnext">Next', listhtml, re.DOTALL | re.IGNORECASE): npage = page + 1 url = url.replace('page='+str(page),'page='+str(npage)) utils.addDir('Next Page ('+str(npage)+')', url, 51, '', npage) xbmcplugin.endOfDirectory(utils.addon_handle)
def Playvid(url, name, download): progress.create('Play video', 'Searching videofile.') progress.update(10, "", "Loading video page", "") url = url.split('#')[0] videopage = utils.getHtml(url, '') entrycontent = re.compile('entry-content">(.*?)entry-content', re.DOTALL | re.IGNORECASE).findall(videopage)[0] links = re.compile('href="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(entrycontent) videourls = " " for link in links: if 'securely' in link: try: link = utils.getVideoLink(link, url) except: pass videourls = videourls + " " + link utils.playvideo(videourls, name, download, url)
def hentaidude_list(url, page=1): listhtml = utils.getHtml(url) match = re.compile(r'<a title="([^"]+)".*?href="([^"]+)".*?data-src="([^"]+)(.*?)</a>', re.DOTALL | re.IGNORECASE).findall(listhtml) for name, video, img, other in match: name = utils.cleantext(name) if 'uncensored' in other.lower() or 'uncensored' in name.lower(): name = name + " [COLOR hotpink][I]Uncensored[/I][/COLOR]" contexturl = (utils.addon_sys + "?mode=" + str('hentaidude.hentaidude_eps') + "&url=" + urllib_parse.quote_plus(video)) contextmenu = ('[COLOR deeppink]Check other episodes[/COLOR]', 'RunPlugin(' + contexturl + ')') site.add_download_link(name, video, 'hentaidude_play', img, name, contextm=contextmenu) if 'Next ›' in listhtml: npage = page + 1 url = url.replace('/' + str(page) + '/', '/' + str(npage) + '/') site.add_dir('Next Page', url, 'hentaidude_list', site.img_next, npage) utils.eod()
def pornvibe_list(url): listhtml = utils.getHtml(url) r = re.compile(r'''<section\s*class="content(.+?)<!--tabs-panel-->''', re.DOTALL | re.IGNORECASE).search(listhtml) if r: listhtml = r.group(1) match = re.compile(r'''class="item\s*large.+?img.+?src="([^"]+).+?left">(.+?)<span>(.+?)des">.+?href="([^"]+)">\s*(.*?)\s*<''', re.DOTALL | re.IGNORECASE).findall(listhtml) for img, hd, duration, video, name in match: hd = '[COLOR orange] HD[/COLOR]' if 'HD' in hd else '' d = re.search(r'<span>([\d:]+)</span>', duration) duration = d.group(1) if d else '' name = utils.cleantext(name) + hd + "[COLOR deeppink] " + duration + "[/COLOR]" site.add_download_link(name, video, 'pornvibe_play', img, name) np = re.compile(r'class="pagination".+?current"[^!]+?href="([^"]+).+?>(\d+)', re.DOTALL | re.IGNORECASE).search(listhtml) if np: site.add_dir('Next Page (' + np.group(2) + ')', np.group(1), 'pornvibe_list', site.img_next) utils.eod()
def List(url): if utils.addon.getSetting("chaturbate") == "true": clean_database(False) try: response = utils.getHtml(url) except: return None data = json.loads(response) model_list = data["models"] for model in model_list: name = utils.cleanhtml(model['username']) videourl = model['stream']['url'] img = model['previewUrl'] if utils.addon.getSetting("model_pic") == "0" else model['snapshotUrl'] site.add_download_link(name, videourl, 'Playvid', img, '', noDownload=True) utils.eod()
def NFList(url, page=1): try: listhtml = utils.getHtml(url, '') except: return None match = re.compile( 'href="([^"]+)" class="link">[^"]+?"([^"]+)" alt="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(listhtml) for videopage, img, name in match: videopage = 'http://www.nudeflix.com' + videopage utils.addDir(name, videopage, 42, img, '') if re.search("<strong>next »</strong>", listhtml, re.DOTALL | re.IGNORECASE): npage = page + 1 url = url.replace('page=' + str(page), 'page=' + str(npage)) utils.addDir('Next Page (' + str(npage) + ')', url, 41, '', npage) xbmcplugin.endOfDirectory(utils.addon_handle)
def Playvid(url, name, download=None): vp = utils.VideoPlayer(name, download) vp.progress.update(25, "", "Loading video page", "") html = utils.getHtml(url, '') sources = {} srcs = re.compile( "stream_url_(240p|320p|480p|720p|1080p|4k).*?= '([^']+|)'", re.DOTALL | re.IGNORECASE).findall(html) 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) vp.play_from_direct_link(videourl)
def EXMoviesList(url): listhtml = utils.getHtml(url, '') match = re.compile( '<div class="container_neus">(.*?)<div id="pagination">', re.DOTALL | re.IGNORECASE).findall(listhtml) match1 = re.compile('<a title="([^"]+)" href="([^"]+)".*?src="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(match[0]) for name, videopage, img in match1: utils.addDownLink(name, videopage, 112, img, '') try: nextp = re.compile("<a href='([^']+)' title='([^']+)'>»</a>", re.DOTALL | re.IGNORECASE).findall(listhtml) next = urllib.quote_plus(nextp[0][0]) next = next.replace(' ', '+') utils.addDir('Next Page', os.path.split(url)[0] + '/' + next, 117, '') except: pass xbmcplugin.endOfDirectory(utils.addon_handle)
def Playvid(url, name, download=None): vp = utils.VideoPlayer(name, download) vp.progress.update(25, "[CR]Loading video page[CR]") html = utils.getHtml(url, '') sources = {} srcs = re.compile( r'''["'](240p|320p|480p|720p|1080p|4k)["']:\s*\[["']([^"']+)''', re.DOTALL | re.IGNORECASE).findall(html) for quality, videourl in srcs: if videourl: sources[quality] = videourl videourl = utils.prefquality(sources, sort_by=lambda x: 1081 if x == '4k' else int(x[:-1]), reverse=True) if not videourl: return vp.play_from_direct_link(videourl.replace(r'\u0026', '&'))
def List(url): listhtml = utils.getHtml(url, site.url) match = re.compile( r'class="recent-item.+?src="([^"]+).+?href="([^"]+)[^>]+>([^<]+)', re.DOTALL | re.IGNORECASE).findall(listhtml) for img, videopage, name in match: name = utils.cleantext(name) site.add_download_link(name, videopage, 'Playvid', img, name) url = re.compile( r'''class="pagination.+?class="current.+?href=['"]?([^\s'"]+)''', re.DOTALL | re.IGNORECASE).search(listhtml) if url: pgtxt = 'Currently in {0}'.format( re.findall(r'class="pages">([^<]+)', listhtml)[0]) site.add_dir('[COLOR hotpink]Next Page...[/COLOR] {0}'.format(pgtxt), url.group(1), 'List', site.img_next) utils.eod()
def List(url): try: listhtml = utils.getHtml(url, '') except: return None match = re.compile('thumb-list(.*?)<ul class="right pagination">', re.DOTALL | re.IGNORECASE).findall(listhtml) match1 = re.compile(r'<li class="[^"]*">\s<a class="thumbnail" href="([^"]+)">\n<script.+?</script>\n<figure>\n<img id=".+?" src="([^"]+)".+?/>\n<figcaption>\n<span class="video-icon"><i class="fa fa-play"></i></span>\n<span class="duration"><i class="fa fa-clock-o"></i>([^<]+)</span>\n(.+?)\n', re.DOTALL | re.IGNORECASE).findall(match[0]) for videopage, img, duration, name in match1: if img.startswith('//'): img = 'http:' + img name = utils.cleantext(name) + ' [COLOR deeppink]' + duration + '[/COLOR]' utils.addDownLink(name, 'http://www.mrsexe.com' + videopage, 402, img, '') try: next_page=re.compile(r'<li class="arrow"><a href="(.+?)">suivant').findall(listhtml)[0] page_nr = re.findall('\d+', next_page)[-1] utils.addDir('Next Page (' + page_nr + ')', 'http://www.mrsexe.com/' + next_page, 401,'') except: pass xbmcplugin.endOfDirectory(utils.addon_handle)
def List(url): listhtml = utils.getHtml(url, site.url) main_block = re.compile(r'videos\s*search-video-thumbs.*?">(.*?)<div\s*class="reset">', re.DOTALL).findall(listhtml)[0] match = re.compile(r'class="pcVideoListItem.+?data-thumb_url\s*=\s*"([^"]+).+?tion">([^<]+)(.*?)</div.+?href="([^"]+).+?>\s*(.+?)\s*<', re.DOTALL).findall(main_block) for img, duration, hd, videopage, name in match: if 'HD' in hd: hd = " [COLOR orange]HD[/COLOR] " else: hd = " " name = utils.cleantext(name) name = name + hd + "[COLOR deeppink]" + duration + "[/COLOR]" site.add_download_link(name, site.url[:-1] + videopage, 'Playvid', img, name) np = re.compile(r'<li\s*class="page_next"><a\s*href="([^"]+)"\s*class="orangeButton">Next', re.DOTALL).search(listhtml) if np: site.add_dir('Next Page', site.url[:-1] + np.group(1).replace('&', '&'), 'List', site.img_next) utils.eod()
def List(url): listhtml = utils.getHtml(url, '') cookieString = getCookiesString() match = re.compile( r'class="content-list-thumb">\s+<a href="([^"]+)" title="([^"]+)">.*?src="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(listhtml) for videopage, name, img in match: name = utils.cleantext(name) img = img + "|Cookie=" + urllib.quote( cookieString) + "&User-Agent=" + urllib.quote(utils.USER_AGENT) utils.addDownLink(name, videopage, 232, img, '') try: nextp = re.compile('next page-numbers" href="([^"]+)">»', re.DOTALL | re.IGNORECASE).findall(listhtml)[0] utils.addDir('Next Page', nextp, 231, '') except: pass xbmcplugin.endOfDirectory(utils.addon_handle)
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)
def BGPlayvid(url, name, download=None): vp = utils.VideoPlayer(name, download) vp.progress.update(25, "", "Loading video page", "") videopage = utils.getHtml(url) vp.progress.update(50, "", "Loading video page", "") list = {} match = re.compile('"(\d+p)":\s*?"([^"]+)"', re.DOTALL | re.IGNORECASE).findall(videopage) for quality, url in match: list[quality] = url videourl = utils.selector('Select quality', list, dont_ask_valid=True, sort_by=lambda x: int(x[:-1]), reverse=True) if not videourl: return videourl = videourl.replace("{DATA_MARKERS}","data=pc_GB__" + str(addon.getSetting('bgversion')) + '_') if not videourl.startswith("http"): videourl = "https:" + videourl vp.progress.update(75, "", "Loading video page", "") vp.play_from_direct_link(videourl)
def List(url, page=1): if utils.addon.getSetting("chaturbate") == "true": clean_database(False) try: data = utils.getHtml(url + "&page_number=" + str(page)) except: return None model_list = json.loads(data) for camgirl in model_list['Results']: img = "http://m1.nsimg.net/media/snap/" + str( camgirl['PerformerId']) + ".jpg" performerID = str(camgirl['PerformerId']) name = camgirl['Nickname'] utils.addDownLink(name, performerID, 518, img, '', noDownload=True) npage = page + 1 utils.addDir('Next Page (' + str(npage) + ')', url, 516, '', npage) xbmcplugin.endOfDirectory(utils.addon_handle)
def PCat(url): caturl = utils.getHtml(url, '') cathtml = re.compile('<ul id="categorias">(.*?)</html>', re.DOTALL | re.IGNORECASE).findall(caturl) if 'pornaq' in url: match = re.compile("""<li.*?href=(?:'|")(/[^'"]+)(?:'|").*?>([^<]+)""", re.DOTALL | re.IGNORECASE).findall(cathtml[0]) elif 'porn00' in url: match = re.compile("""<li.*?href=(?:'|")([^'"]+)(?:'|").*?>([^<]+)""", re.DOTALL | re.IGNORECASE).findall(cathtml[0]) for videolist, name in match: if 'pornaq' in url: videolist = "http://www.pornaq.com" + videolist + "page/1/" utils.addDir(name, videolist, 61, '', 1) elif 'porn00' in url: videolist = videolist + "page/1/" utils.addDir(name, videolist, 61, '', 1) xbmcplugin.endOfDirectory(utils.addon_handle)
def Playvid(url, name, download=None): siteurl, url = url.rsplit('/', 1) siteurl += '/' from resources.lib.decrypters import txxx vp = utils.VideoPlayer(name, download) vp.progress.update(25, "[CR]Loading video page[CR]") vurl = '{0}api/videofile.php?video_id={1}&lifetime=8640000'.format( siteurl, url) vidhtml = utils.getHtml(vurl, siteurl) r = re.search('video_url":"([^"]+)', vidhtml) if r: videourl = siteurl[:-1] + txxx.Tdecode( r.group(1)) + '|Referer=' + siteurl vp.play_from_direct_link(videourl) else: vp.progress.close() return
def List(url, page=1): if utils.addon.getSetting("chaturbate") == "true": clean_database(False) try: listhtml = utils.getHtml(url, url) except: return None match = re.compile('profileDataBox"> <a href="([^"]+)".*?src="([^"]+)" title="Chat Now Free with ([^"]+)"', re.DOTALL | re.IGNORECASE).findall(listhtml) for videourl, img, name in match: name = utils.cleantext(name) videourl = "http://www.cam4.com" + videourl utils.addDownLink(name, videourl, 282, img, '', noDownload=True) if re.search('<link rel="next"', listhtml, re.DOTALL | re.IGNORECASE): npage = page + 1 url = url.replace('/'+str(page),'/'+str(npage)) utils.addDir('Next Page ('+str(npage)+')', url, 281, '', npage) xbmcplugin.endOfDirectory(utils.addon_handle)
def HQPLAY(url, name, download=None): videopage = utils.getHtml(url, url) iframeurl = re.compile(r"nativeplayer\.php\?i=([^']+)", re.DOTALL | re.IGNORECASE).findall(videopage)[0] if iframeurl.startswith('//'): iframeurl = 'https:' + iframeurl if re.search('bemywife', iframeurl, re.DOTALL | re.IGNORECASE): videourl = getBMW(iframeurl) elif re.search('mydaddy', iframeurl, re.DOTALL | re.IGNORECASE): videourl = getBMW(iframeurl) elif re.search('5\.79', iframeurl, re.DOTALL | re.IGNORECASE): videourl = getIP(iframeurl) elif re.search('flyflv', iframeurl, re.DOTALL | re.IGNORECASE): videourl = getFly(iframeurl) else: utils.notify('Oh oh', 'Couldn\'t find a supported videohost') return utils.playvid(videourl, name, download)
def Categories(url): cathtml = utils.getHtml(url, '') cathtml = re.compile('<main.*?>(.*?)</main>', re.DOTALL | re.IGNORECASE).findall(cathtml)[0] match = re.compile('<a href="([^"]+)" title="([^"]+)".*?src="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(cathtml) for catpage, name, img in match: ucatpage = unicode(catpage, encoding='utf-8') catpage = iriToUri(ucatpage) uimg = unicode(img, encoding='utf-8') img = iriToUri(uimg) utils.addDir(name, catpage, 131, img,1) try: nextp=re.compile('<a class="current">.*?<a href="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(cathtml)[0] unextp = unicode(nextp, encoding='utf-8') nextp = iriToUri(unextp) utils.addDir('Next Page', nextp, 135,'') except: pass xbmcplugin.endOfDirectory(utils.addon_handle)
def hentaidude_play(url, name, download=None): listhtml = utils.getHtml(url, site.url) matches = re.compile(r"id:\s*'([^']+)',\s*nonce:\s*'([^']+)'", re.DOTALL | re.IGNORECASE).findall(listhtml) if matches: posturl = site.url + '/wp-admin/admin-ajax.php' postdata = { 'action': 'msv-get-sources', 'id': matches[0][0], 'nonce': matches[0][1] } postreturn = utils.postHtml(posturl, form_data=postdata) sources = json.loads(postreturn)['sources'] for i in sources: videourl = sources[i] vp = utils.VideoPlayer(name, download=download) vp.play_from_direct_link(videourl)
def Categories(url): cathtml = utils.getHtml(url, '') match = re.compile( 'class="video-block video-block-cat".+?href="([^"]+)".+?data-src="([^"]+)".+?class="title">([^<]+)</span><div class="video-datas">([^<]+)</div', re.DOTALL | re.IGNORECASE).findall(cathtml) for catpage, img, name, videos in match: name = utils.cleantext( name) + " [COLOR deeppink]" + videos + "[/COLOR]" utils.addDir(name, catpage, 781, img) try: next_page = re.compile( 'class="next page-link" href="([^"]+)">»<', re.DOTALL | re.IGNORECASE).findall(cathtml)[0] page_nr = re.findall('\d+', next_page)[-1] utils.addDir('Next Page (' + str(page_nr) + ')', next_page, 783, '') except: pass xbmcplugin.endOfDirectory(utils.addon_handle)
def List(url): listhtml = utils.getHtml(url, '') match = re.compile( r'class="video">.+?href="([^"]+)".+?"time">([^<]+).+?class="hd([^<]+)</span>.+?src="([^"]+)"\s*alt="([^"]+)', re.DOTALL | re.IGNORECASE).findall(listhtml) for videopage, duration, hd, img, name in match: name = utils.cleantext(name) if hd.find('is-hd') > 0: hd = " [COLOR orange]HD[/COLOR] " else: hd = " " name = "{0}{1}[COLOR deeppink]{2}[/COLOR]".format( utils.cleantext(name), hd, duration) site.add_download_link(name, videopage, 'Playvid', img, name) np = re.compile('<link rel="next" href="(.+?)">').search(listhtml) if np: site.add_dir('Next Page', np.group(1), 'List', site.img_next) utils.eod()
def List(url): listhtml = utils.getHtml(url, site.url) match = re.compile(r'class="notice".+?href="([^"]+)">([^<]+).+?src="([^"]+).+?tion">(.*?)</div', re.DOTALL | re.IGNORECASE).findall(listhtml) for videopage, name, img, desc in match: if videopage.startswith('//'): videopage = 'https:' + videopage if img.startswith('//'): img = 'https:' + img name = utils.cleantext(name) desc = re.sub(r"<.+?>", "", desc, 0, re.MULTILINE) desc = utils.cleantext(desc) site.add_download_link(name, videopage, 'Playvid', img, desc) np = re.compile(r'''id="pagination".+?href='([^']+)[^>]+>(?:<span.+?span>)?\s*»''', re.DOTALL | re.IGNORECASE).search(listhtml) if np: nextp = 'https:' + np.group(1) if np.group(1).startswith('//') else np.group(1) page_number = nextp.split('/')[-2] site.add_dir('Next Page (' + page_number + ')', nextp, 'List', site.img_next) utils.eod()
def List(url): url = update_url(url) context_category = (utils.addon_sys + "?mode=" + str('xhamster.ContextCategory')) context_length = (utils.addon_sys + "?mode=" + str('xhamster.ContextLength')) context_quality = (utils.addon_sys + "?mode=" + str('xhamster.ContextQuality')) contextmenu = [('[COLOR violet]Category[/COLOR] [COLOR orange]{}[/COLOR]'.format(get_setting('category')), 'RunPlugin(' + context_category + ')'), ('[COLOR violet]Length[/COLOR] [COLOR orange]{}[/COLOR]'.format(get_setting('length')), 'RunPlugin(' + context_length + ')'), ('[COLOR violet]Quality[/COLOR] [COLOR orange]{}[/COLOR]'.format(get_setting('quality')), 'RunPlugin(' + context_quality + ')')] try: response = utils.getHtml(url, site.url) except Exception as e: if '404' in str(e): site.add_dir('No videos found. [COLOR hotpink]Clear all filters.[/COLOR]', '', 'ResetFilters', Folder=False, contextm=contextmenu) utils.eod() return if 'data-video-id="' in response: videos = response.split('data-video-id="') videos.pop(0) for video in videos: match = re.compile(r'href="([^"]+)".+?src="([^"]+)".+?alt="([^"]+)".+?duration>([^<]+)<', re.DOTALL | re.IGNORECASE).findall(video) if match: (videolink, img, name, length) = match[0] if 'icon--uhd' in video: hd = '4k' elif 'icon--hd' in video: hd = 'HD' else: hd = '' name = utils.cleantext(name) site.add_download_link(name, videolink, 'Playvid', img, name, contextm=contextmenu, duration=length, quality=hd) nextp = re.compile(r'data-page="next"\s*href="([^"]+)', re.DOTALL | re.IGNORECASE).findall(videos[-1]) if nextp: nextp = nextp[0].replace('=', '=').replace('&', '&') np = re.findall(r'\d+', nextp)[-1] lp = re.compile(r'>([\d,]+)<\D+?class="next"', re.DOTALL | re.IGNORECASE).findall(videos[-1]) lp = '/' + lp[0] if lp else '' site.add_dir('Next Page (' + np + lp + ')', nextp, 'List', site.img_next) else: utils.notify('Cumination', 'No video found.') utils.eod()
def Cat(url): siteurl = getBaselink(url) listhtml = utils.getHtml(url) listhtml = listhtml.split('<div class="content"')[-1] listhtml = listhtml.split('<div class="main"')[-1] listhtml = listhtml.split('<div class="footer')[0] if 'class="thumb-bl' in listhtml: cats = listhtml.split('class="thumb-bl') elif '<div class="item">' in listhtml: cats = listhtml.split('<div class="item">') elif '<a class="item"' in listhtml: cats = listhtml.split('<a class="item"') else: return if 'class="alphabet' in cats[0]: # site.add_dir('[COLOR red]ABC list[/COLOR]', cats[0], 'CatABC', '') site.add_dir('[COLOR violet]Alphabet[/COLOR]', siteurl, 'Letters', site.img_next) cats.pop(0) for cat in cats: catpage = re.compile(r'href="([^"]+)"', re.DOTALL | re.IGNORECASE).search(cat) catpage = catpage.group(1) if catpage else '' name = re.compile(r'title="([^"]+)"', re.DOTALL | re.IGNORECASE).search(cat) name = name.group(1) if name else '' if 'max.p**n' in url: img = re.compile(r'data-src="([^"]+)"', re.DOTALL | re.IGNORECASE).search(cat) else: img = re.compile(r'src="([^"]+)"', re.DOTALL | re.IGNORECASE).search(cat) img = img.group(1) if img else '' img = 'https:' + img if img.startswith('//') else img videos = re.compile(r'>([\d\svideos\(\)]+\S)<', re.DOTALL | re.IGNORECASE).search(cat.replace('</span>', '')) videos = videos.group(1).strip() if videos else '' name += ' [COLOR hotpink]' + videos + '[/COLOR]' catpage = siteurl[:-1] + catpage if catpage.startswith('/') else catpage site.add_dir(name, catpage, 'List', img) nextp = re.compile(r'href="([^"]+)"[^>]*>\s*Next', re.DOTALL | re.IGNORECASE).search(cats[-1]) if nextp: nextp = nextp.group(1) nextp = siteurl[:-1] + nextp if nextp.startswith('/') else nextp np = re.findall(r'\d+', nextp)[-1] lp = re.compile(r'"pagination-last".+?>(\d+)<', re.DOTALL | re.IGNORECASE).search(cats[-1]) lp = '/' + lp.group(1) if lp else '' site.add_dir('[COLOR hotpink]Next Page...[/COLOR] ({0}{1})'.format(np, lp), nextp, 'Cat', site.img_next) utils.eod()
def List(channel, section, page=0): if section == 0: data = VideoListData(page, channel) elif section == 1: data = VideoListStudio(page, channel) elif section == 2: data = VideoListPornstar(page, channel) elif section == 3: data = CatListData(page, channel) try: urldata = utils.getHtml( "https://www.porndig.com/posts/load_more_posts", pdreferer, headers, data=data) except: return None utils.kodilog(pdreferer) utils.kodilog(headers) utils.kodilog(data) utils.kodilog(urldata) urldata = ParseJson(urldata) i = 0 match = re.compile( r'<a.*?href="([^"]+)" title="([^"]+)">(.+?)img\s+data-src="(.+?)".+?<span class="pull-left">(.+?)<', re.DOTALL | re.IGNORECASE).findall(urldata) for url, name, hd, img, duration in match: if hd.find('qlt_full_hd') > 0: hd = " [COLOR yellow]FullHD[/COLOR] " elif hd.find('qlt_hd') > 0: hd = " [COLOR orange]HD[/COLOR] " elif hd.find('4k') > 0: hd = " [COLOR red]4K[/COLOR] " else: hd = " " url = "https://www.porndig.com" + url name = name + hd + "[COLOR deeppink]" + duration + "[/COLOR]" name = name.encode("utf8") utils.addDownLink(name, url, 292, img, '') i += 1 page += 1 name = 'Page ' + str(page + 1) utils.addDir(name, '', 291, page=page, channel=channel, section=section) xbmcplugin.endOfDirectory(utils.addon_handle)
def List(channel, section, page=1): if section == 0: data = VideoListData(page, channel) maxresult = 100 elif section == 1: data = VideoListStudio(page, channel) maxresult = 65 elif section == 2: data = VideoListPornstar(page, channel) maxresult = 65 elif section == 3: data = CatListData(page, channel) maxresult = 100 try: urldata = utils.getHtml( "https://www.porndig.com/posts/load_more_posts", pdreferer, headers, data=data) except: return None urldata = ParseJson(urldata) i = 0 match = re.compile( r'<a.*?href="([^"]+)" title="([^"]+)">.*?</h2>(.*?)</div>.?<img src="([^"]+)".*?>.*?<span class="pull-left">(\d[^\s<]+)', re.DOTALL | re.IGNORECASE).findall(urldata) for url, name, hd, img, duration in match: if len(hd) > 2: if hd.find('full') > 0: hd = " [COLOR yellow]FULLHD[/COLOR] " else: hd = " [COLOR orange]HD[/COLOR] " else: hd = " " url = "http://www.porndig.com" + url name = name + hd + "[COLOR deeppink]" + duration + "[/COLOR]" utils.addDownLink(name, url, 292, img, '') i += 1 if i >= maxresult: page += 1 name = 'Page ' + str(page) utils.addDir(name, '', 291, '', page, channel, section) xbmcplugin.endOfDirectory(utils.addon_handle)
def List(url): html = utils.getHtml(url, '') if 'No Video were found that matched your search query' in html: utils.eod() return match = re.compile( '<div class="tray-item .*?href="([^"]+)".*?data-src="([^"]+)" alt="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(html) for videopage, img, name in match: name = utils.cleantext(name) site.add_download_link(name, videopage, 'Playvid', img, name) nextp = re.compile('href="([^"]+)"><[^>]+>Next', re.DOTALL | re.IGNORECASE).search(html) if nextp: np = nextp.group(1) site.add_dir('Next Page (' + np.split('/pg-')[-1] + ')', np, 'List', site.img_next) utils.eod()
def List(url): try: listhtml = utils.getHtml(url) except: return None match = re.compile( r'class="thumb" href="([^"]+)".+?data-src="([^"]+)".+?span class="title">([^<]+)</span', re.DOTALL | re.IGNORECASE).findall(listhtml) for videopage, img, name in match: name = utils.cleantext(name) site.add_download_link(name, videopage, 'Playvid', img) next_page = re.compile(r'<link rel="next" href="([^"]+)"', re.DOTALL | re.IGNORECASE).findall(listhtml) if next_page: next_page = next_page[0] page_nr = re.findall(r'\d+', next_page)[-1] site.add_dir('Next Page (' + str(page_nr) + ')', next_page, 'List', site.img_next) utils.eod()