def getFavorites(): dirlist = [] lst = [('Clear Favourites',None,38,fav_icon,None,None,False,False), \ ('----------------------------------',None,999,fav_icon,None,None,False,False) \ ] conn = sqlite3.connect(favoritesdb) conn.text_factory = str c = conn.cursor() c.execute("SELECT * FROM favorites ORDER BY name ASC") for (name, url, mode, iconimage, _folder) in c.fetchall(): try: site = url.split('|SPLIT|')[1] except: site = None if site: name = '[%s Video] %s' % (site,name) if _folder: name = '[%s] %s' % ('Directory',name) else: _folder = False lst += [(name,url,mode,iconimage,None,'del',_folder,True)] conn.close() for i in lst: if not i[3]: icon = kodi.addonicon else: icon = i[3] if not i[4]: fanart = kodi.addonfanart else: fanart = i[4] dirlist.append({'name': kodi.giveColor(i[0],'white'), 'url': i[1], 'mode': i[2], 'icon': icon, 'fanart': fanart, 'fav': i[5], 'folder': i[6], 'isDownloadable': i[7]}) if len(lst) < 3: dirlist.append({'name': kodi.giveColor('No Favorites Found','white'), 'url': 'None', 'mode': 999, 'icon': fav_icon, 'fanart': fanart, 'folder': False}) buildDirectory(dirlist)
def get_next_page(self, mode, url, pattern, site='', parse=None, pictures=False): try: dirlst = [] icon = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/main/next.png')) fanart = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/fanart.jpg' % site)) if '|GOT_URL' in url: url = url.split('|GOT_URL')[0] dirlst.append({'name': kodi.giveColor('Next Page -->','white'), 'url': url, 'mode': mode, 'icon': icon, 'fanart': fanart, 'description': 'Load More......', 'folder': True}) else: r = client.request(url) url = re.findall(r'%s' % pattern,r)[0] if parse: url = urlparse.urljoin(parse,url) if '&' in url: url = url.replace('&','&') dirlst.append({'name': kodi.giveColor('Next Page -->','white'), 'url': url, 'mode': mode, 'icon': icon, 'fanart': fanart, 'description': 'Load More......', 'folder': True}) if 'chaturbate' in url: if dirlst: buildDirectory(dirlst, isVideo=True, chaturbate=True) elif pictures: if dirlst: buildDirectory(dirlst, pictures=True) else: if dirlst: buildDirectory(dirlst, isVideo=True) except Exception as e: log_utils.log('Error getting next page for %s :: Error: %s' % (site.title(),str(e)), log_utils.LOGERROR) xbmcplugin.setContent(kodi.syshandle, 'movies') if 'chaturbate' in url: utils.setView('chaturbate') elif pictures: utils.setView('pictures') else: utils.setView('thumbs') xbmcplugin.endOfDirectory(kodi.syshandle, cacheToDisc=True)
def main(name=None, iconimage=None): c = client.request('http://ourmatch.net') if not iconimage: iconimage = kodi.addonicon if name: r = dom_parser2.parse_dom(c, 'li', {'class': 'header'}) r = [i for i in r if 'title="%s"' % name in i.content] r = dom_parser2.parse_dom(r, 'li', {'class': 'hover-tg'}) r = dom_parser2.parse_dom(r, 'a') for i in r: addDir(i.content, i.attrs['href'], 3, iconimage) else: r = dom_parser2.parse_dom(c, 'a', {'class': 'sub'}) addDir(kodi.giveColor( kodi.countGitHubIssues( 'https://github.com/Colossal1/plugin.video.ourmatch/issues'), 'blue', True) + kodi.giveColor(' | Click To View Issues', 'white', True), 'null', 5, kodi.addonicon, isFolder=False, isPlayable=False) addDir('Search...', 'search', 3, art + 'search.png') addDir('Most Recent', 'http://ourmatch.net/', 3, art + 'new.png') for i in r: addDir(i.attrs['title'], 'none', 2, art + i.attrs['title'].lower() + '.png')
def githubSelect(name): import githubissues githubissues.run('xibalba10/plugin.video.xxx-o-dus', '%s' % name) file = xbmc.translatePath(os.path.join(kodi.datafolder, '%s-issues-%s.csv' % (kodi.get_id(),name))) global msg_text with open(file,mode='r')as f: txt = f.read() items = re.findall('<item>(.+?)</item>', txt, re.DOTALL) if len(items) < 1: msg_text = kodi.giveColor('No %s issues with XXX-O-DUS at this time.' % name.title(),'deeppink',True) else: msg_text = kodi.giveColor('%s Issues with XXX-O-DUS\n' % name.title(),'deeppink',True) + kodi.giveColor('Report Issues @ https://github.com/xibalba10/plugin.video.xxx-o-dus/issues','white',True) + '\n---------------------------------\n\n' for item in items: id = re.findall('<id>([^<]+)', item)[0] user = re.findall('<username>([^<]+)', item)[0] label = re.findall('<label>([^<]+)', item)[0] title = re.findall('<title>([^<]+)', item)[0] body = re.findall('<body>([^<]+)', item)[0] created = re.findall('<created>([^<]+)', item)[0] date,time = created.split('T') msg_text += '[B]ID: %s | Label: %s \nBy: %s on %s at %s[/B] \n\nTitle: %s \nMessage %s \n\n---------------------------------\n\n' \ % (id, \ kodi.githubLabel(label), \ user, \ date, \ time.replace('Z',''), \ title, \ body)
def getHistory(): dirlist = [] history_on_off = kodi.get_setting("history_setting") if history_on_off == "true": lst = [ ('Clear History',None,21,history_icon,False),('Disable History',None,22,history_icon,False), \ ('-------------------------------------',None,999,history_icon,False) \ ] conn = sqlite3.connect(historydb) conn.text_factory = str c = conn.cursor() c.execute("SELECT * FROM history ORDER BY ID DESC") for (ID, date, time, title, url, site, iconimage) in c.fetchall(): try: if site == 'Local File': lst += [('[%s | %s - %s] - %s' % (kodi.giveColor(site, 'pink'), date, time, title), url + 'site=' + site + 'typeid=history', 803, iconimage, False)] else: lst += [('[%s | %s - %s] - %s' % (kodi.giveColor(site, 'pink'), date, time, title), url + 'site=' + site + 'typeid=history', 803, iconimage, True)] except: pass conn.close() if len(lst) < 4: lst += [('No History Found', None, 999, history_icon, False)] else: lst = [ ('Enable History Monitoring',None,22,history_icon,False),('-------------------------------------',None,22,history_icon,False), \ ('History monitoring is currently disabled.',None,22,history_icon,False) \ ] dirlst = [] for i in lst: if not i[3]: icon = kodi.addonicon else: icon = i[3] fanart = kodi.addonfanart dirlst.append({ 'name': kodi.giveColor(i[0], 'white'), 'url': i[1], 'mode': i[2], 'icon': icon, 'fanart': fanart, 'folder': False, 'isDownloadable': i[4] }) buildDirectory(dirlst)
def mainMenu(): try: run = client.request(base64.b64decode('aHR0cDovL2JiYy5pbi8yd2MzYTho')) except: pass art = xbmc.translatePath( os.path.join( 'special://home/addons/script.xxxodus.artwork/resources/art/', 'main/%s.png')) dirlst = [] c = [] c += [ (kodi.giveColor('Welcome to XXX-O-DUS Version %s' % kodi.get_version() ,'blue',True),xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'icon','All issues must be reported at https://github.com/echocoderxbmc/plugin.video.xxx-o-dus/issues or I will not know the issues exist. I will not provide support at any other location as one central place for everyone to see and discuss issues benefits everyone.',False), \ (kodi.giveColor(kodi.countGitHubIssues('https://github.com/echocoderxbmc/plugin.video.xxx-o-dus/issues'),'blue',True) + kodi.giveColor(' | Click To View Issues','white',True),None,34,'report','All issues must be reported at https://github.com/echocoderxbmc/plugin.video.xxx-o-dus/issues or I will not know the issues exist. I will not provide support at any other location as one central place for everyone to see and discuss issues benefits everyone.',False), \ ('Search...',None,29,'search','Search XXX-O-DUS',True), \ ('Live Cams',None,37,'webcams','Live Cams',True), \ ('Tubes',None,4,'tubes','Videos',True), \ ('Scenes',None,36,'scenes','XXX Scenes',True), \ ('Movies',None,43,'movies','XXX Movies',True), \ ('Virtual Reality',None,42,'vr','XXX Virtual Reality',True), \ ('Hentai',None,39,'hentai','Hentai',True), \ ('Vintage',None,270,'vintage','Vintage',True), \ ('Fetish',None,40,'fetish','Fetish',True), \ ('Pictures',None,35,'pics','Pictures',True), \ ('Comics',None,41,'comics','Comics',True), \ ('Parental Controls',None,5,'parental_controls','View/Change Parental Control Settings.',True), \ ('Your History',None,20,'history','View Your History.',True), \ ('Your Favourites',None,23,'favourites','View Your Favourites.',True), \ ('Your Downloads',None,27,'downloads','View Your Downloads.',True), \ ('Your Settings',None,19,'settings','View/Change Addon Settings.',False), \ ('View Disclaimer',xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/disclaimer.txt')),17,'disclaimer','View XXX-O-DUS Disclaimer.',False), \ ('View Addon Information',xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'addon_info','View XXX-O-DUS Information.',False), \ ('View Changelog',xbmc.translatePath(os.path.join(kodi.addonfolder, 'changelog.txt')),17,'changelog','View XXX-O-DUS Changelog.',False), \ ('Debug Versions',None,45,'addon_info','View the versions of XXXODUS and its dependencies for debugging.',True), \ ('RESET XXX-O-DUS',None,18,'reset','Reset XXX-O-DUS to Factory Settings.',False), \ (kodi.giveColor('Report Issues @ https://github.com/echocoderxbmc/plugin.video.xxx-o-dus/issues','violet',True),xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'report','All issues must be reported at https://github.com/echocoderxbmc/plugin.video.xxx-o-dus/issues or I will not know the issues exist. I will not provide support at any other location as one central place for everyone to see and discuss issues benefits everyone.',False), \ ] for i in c: icon = art % i[3] fanart = kodi.addonfanart dirlst.append({ 'name': kodi.giveColor(i[0], 'white'), 'url': i[1], 'mode': i[2], 'icon': icon, 'fanart': fanart, 'description': i[4], 'folder': i[5] }) buildDirectory(dirlst, cache=False)
def mainMenu(): art = translatePath( os.path.join( 'special://home/addons/script.xxxodus.artwork/resources/art/', 'main/%s.png')) popup() dirlst = [] c = [] c += [ (kodi.giveColor('Welcome to XXX-O-DUS Version %s' % kodi.get_version() ,'blue',True),translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'icon','Original Code by EchoCoder, Please Report All issues to @Nemzzy668',False), \ (kodi.giveColor('Official Version Now Maintained By [COLOR yellow]@Nemzzy668[/COLOR]','blue',True),translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'icon','Please Report any issues to @Nemzzy668 On Twitter',False), \ ('[COLOR yellow]View Changelog[/COLOR]',translatePath(os.path.join(kodi.addonfolder, 'changelog.txt')),17,'changelog','View XXX-O-DUS Changelog.',False), \ ('[COLOR orange]Check XXX-O-DUS Health',None,46,'icon','Versions',True), \ ('Search...',None,29,'search','Search XXX-O-DUS',True), \ ('[COLOR pink]Live Cams',None,37,'webcams','Live Cams',True), \ ('[COLOR pink]Tubes',None,4,'tubes','Videos',True), \ #('[COLOR pink]Scenes',None,36,'scenes','XXX Scenes',True), \ ('[COLOR pink]Movies',None,43,'movies','XXX Movies',True), \ #('[COLOR pink]Films With Sex In',None,48,'sexfilms','Videos',True), \ ('[COLOR pink]Virtual Reality',None,42,'vr','XXX Virtual Reality',True), \ ('[COLOR pink]Hentai',None,39,'hentai','Hentai',True), \ #('Vintage',None,270,'vintage','Vintage',True), \ #('[COLOR pink]Fetish',None,40,'fetish','Fetish',True), \ ('[COLOR pink]Pictures',None,35,'pics','Pictures',True), \ ('[COLOR pink]For Gay Men',None,47,'gaymen','Videos',True), \ #('Comics',None,41,'comics','Comics',True), \ ('[COLOR red]Parental Controls',None,5,'parental_controls','View/Change Parental Control Settings.',True), \ ('[COLOR red]Your History',None,20,'history','View Your History.',True), \ ('[COLOR red]Your Favourites',None,23,'favourites','View Your Favourites.',True), \ ('[COLOR red]Your Downloads',None,27,'downloads','View Your Downloads.',True), \ ('[COLOR red]Your Settings',None,19,'settings','View/Change Addon Settings.',False), \ #('View Disclaimer',xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/disclaimer.txt')),17,'disclaimer','View XXX-O-DUS Disclaimer.',False), \ #('View Addon Information',xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'addon_info','View XXX-O-DUS Information.',False), \ #('Debug Versions',None,45,'addon_info','View the versions of XXXODUS and its dependencies for debugging.',True), \ ('RESET XXX-O-DUS',None,18,'reset','Reset XXX-O-DUS to Factory Settings.',False), \ #(kodi.giveColor('Report Issues @ https://github.com/Colossal1/plugin.video.xxx-o-dus/issues','violet',True),xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'report','All issues must be reported at https://github.com/Colossal1/plugin.video.xxx-o-dus/issues or I will not know the issues exist. I will not provide support at any other location as one central place for everyone to see and discuss issues benefits everyone.',False), \ ] for i in c: icon = art % i[3] fanart = kodi.addonfanart dirlst.append({ 'name': kodi.giveColor(i[0], 'white'), 'url': i[1], 'mode': i[2], 'icon': icon, 'fanart': fanart, 'description': i[4], 'folder': i[5] }) #dialog.ok("DIRLIST",str(dirlst)) buildDirectory(dirlst, cache=False)
def getDownloads(): dirlist = [] lst = [ (kodi.giveColor('Download Location: ','white')+'file_path'+kodi.giveColor(str(download_folder),'dodgerblue'),None,19,None,False), \ (kodi.giveColor('Change Download Location','white'),None,19,None,False), \ ('###########################################',None,999,None,False) \ ] extensions = ['.mp4'] for file in os.listdir(download_folder): for extension in extensions: if file.endswith('.tmp_mp4'): try: os.remove(os.path.join(download_folder, file)) except: pass if file.endswith(extension): name = urllib.unquote_plus(file) lst += [ (kodi.giveColor(str(name),'white'),os.path.join(download_folder, file),803,None,True), \ ] conn = sqlite3.connect(downloaddb) conn.text_factory = str c = conn.cursor() for i in lst: find_string = i[0] if i[1]: try: find_string = find_string.replace('.mp4', '') find_string = kodi.stripColor(find_string) c.execute("SELECT image FROM downloads WHERE name = '%s'" % find_string) icon = c.fetchone()[0] except: icon = None else: icon = i[3] dirlist.append({ 'name': find_string, 'url': i[1], 'mode': i[2], 'icon': icon, 'fanart': None, 'folder': False, 'isDownloaded': i[4] }) if c: c.close() buildDirectory(dirlist)
def mainMenu(): art = xbmc.translatePath( os.path.join( 'special://home/addons/script.wankbank.artwork/resources/art/', 'main/%s.png')) popup() dirlst = [] c = [] c += [ (kodi.giveColor('Welcome to wankbank Version %s' % kodi.get_version() ,'blue',True),xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'icon','Original Code by EchoCoder, Please Report All issues to @Nemzzy668',False), \ ('[COLOR yellow]View Changelog[/COLOR]',xbmc.translatePath(os.path.join(kodi.addonfolder, 'changelog.txt')),17,'changelog','View wankbank Changelog.',False), \ ('Search...',None,29,'search','Search wankbank',True), \ ('Live Cams',None,37,'webcams','Live Cams',True), \ ('Tubes',None,4,'tubes','Videos',True), \ ('Scenes',None,36,'scenes','XXX Scenes',True), \ ('Movies',None,43,'movies','XXX Movies',True), \ ('Virtual Reality',None,42,'vr','XXX Virtual Reality',True), \ ('Hentai',None,39,'hentai','Hentai',True), \ #('Vintage',None,270,'vintage','Vintage',True), \ ('Fetish',None,40,'fetish','Fetish',True), \ ('Pictures',None,35,'pics','Pictures',True), \ #('Comics',None,41,'comics','Comics',True), \ ('Parental Controls',None,5,'parental_controls','View/Change Parental Control Settings.',True), \ ('Your History',None,20,'history','View Your History.',True), \ ('Your Favourites',None,23,'favourites','View Your Favourites.',True), \ ('Your Downloads',None,27,'downloads','View Your Downloads.',True), \ ('Your Settings',None,19,'settings','View/Change Addon Settings.',False), \ ('View Disclaimer',xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/disclaimer.txt')),17,'disclaimer','View wankbank Disclaimer.',False), \ ('View Addon Information',xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'addon_info','View wankbank Information.',False), \ ('Debug Versions',None,45,'addon_info','View the versions of XXXODUS and its dependencies for debugging.',True), \ ('RESET wankbank',None,18,'reset','Reset wankbank to Factory Settings.',False), \ #(kodi.giveColor('Report Issues @ https://github.com/Colossal1/plugin.video.wankbank/issues','violet',True),xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'report','All issues must be reported at https://github.com/Colossal1/plugin.video.wankbank/issues or I will not know the issues exist. I will not provide support at any other location as one central place for everyone to see and discuss issues benefits everyone.',False), \ ] for i in c: icon = art % i[3] fanart = kodi.addonfanart dirlst.append({ 'name': kodi.giveColor(i[0], 'white'), 'url': i[1], 'mode': i[2], 'icon': icon, 'fanart': fanart, 'description': i[4], 'folder': i[5] }) buildDirectory(dirlst, cache=False)
def watchpornfree(self, url): #dialog.notification('XXX-O-DUS', '[COLOR yellow]Getting Links Now[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000) r = scraper.get(url).content r = re.findall('<div id="pettabs">(.*?)</div>', r, flags=re.DOTALL)[0] pattern = r'''href=['"]([^'"]+)['"].+?>(.*?)<''' r = re.findall(pattern, r) names = [] srcs = [] found = 0 xbmc.executebuiltin("Dialog.Close(busydialog)") for url, name in r: if resolveurl.HostedMediaFile(url).valid_url(): names.append(kodi.giveColor(name, 'white', True)) srcs.append(url) selected = kodi.dialog.select('Select a link.', names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] try: u = resolveurl.HostedMediaFile(url2).resolve() xbmc.Player().play(u) except: dialog.notification( 'XXX-O-DUS', '[COLOR yellow]Resolver Couldn\'t Resolve Link, Try Another[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000)
def fapality(self, url): c = client.request(url) soup = BeautifulSoup(c, 'html.parser') r = soup.find_all('source', id=re.compile("video_source_[0-9]")) names = [] srcs = [] for i in r: name = i['title'] names.append(kodi.giveColor(name, 'white', True)) src = i['src'] srcs.append(src) selected = kodi.dialog.select('Select a Quality.', names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36', 'Referer': url } link = requests.get(url2, headers=headers, stream=True) xbmc.Player().play(link.url)
def pandamovie(self,url): headers = {'User-Agent' : 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'} link = requests.get(url,headers=headers).text soup = BeautifulSoup(link, 'html.parser') data = soup.find_all('li', class_={'hosts-buttons-wpx'}) names = [] srcs = [] found = 0 xbmc.executebuiltin("Dialog.Close(busydialog)") dialog.notification('XXX-O-DUS', '[COLOR yellow]Checking For Links Now, Be Patient[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000) for i in data: url = i.a['href'] if 'drivevideo' in url: url = url.split('?link=')[1] title = i.a['title'] if resolveurl.HostedMediaFile(url).valid_url(): names.append(kodi.giveColor(title,'white',True)) srcs.append(url) selected = kodi.dialog.select('Select a link.',names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] try: u = resolveurl.HostedMediaFile(url2).resolve() xbmc.Player().play(u) except : dialog.notification('XXX-O-DUS', '[COLOR yellow]Resolver Couldn\'t Resolve Link, Try Another[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000)
def pandamovie(self, url): r = client.request(url) r = re.findall('<div id="pettabs">(.*?)</div>', r, flags=re.DOTALL)[0] pattern = r'''href=['"]([^'"]+)['"].+?>(.*?)<''' r = re.findall(pattern, r) names = [] srcs = [] xbmc.executebuiltin("Dialog.Close(busydialog)") for url, quality in sorted(r, reverse=True): names.append(kodi.giveColor(quality, 'white', True)) srcs.append(url) selected = kodi.dialog.select('Select a link.', names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] if resolveurl.HostedMediaFile(url2).valid_url(): stream_url = resolveurl.HostedMediaFile(url2).resolve() #liz = xbmcgui.ListItem(name,iconImage=icon, thumbnailImage=icon) #liz.setPath(stream_url) xbmc.Player().play(stream_url) else: xbmc.Player().play(url2)
def watchpornfree(self, url): #dialog.notification('XXX-O-DUS', '[COLOR yellow]Getting Links Now[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000) r = scraper.get(url).content r = re.findall('<div id="pettabs">(.*?)</div>',r, flags=re.DOTALL)[0] pattern = r'''href=['"]([^'"]+)['"].+?>(.*?)<''' r = re.findall(pattern,r) names = [] srcs = [] found = 0 xbmc.executebuiltin("Dialog.Close(busydialog)") for url,name in r: if resolveurl.HostedMediaFile(url).valid_url(): dialog.notification('XXX-O-DUS', '[COLOR yellow]Checking For Links Now, Be Patient[/COLOR]', xbmcgui.NOTIFICATION_INFO, 13000) try: found +=1 u = resolveurl.HostedMediaFile(url, include_popups=False).resolve() if u: names.append(kodi.giveColor(name,'white',True)) srcs.append(u) except: pass if found >= 1: selected = kodi.dialog.select('Select a link.',names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] xbmc.Player().play(url2) else: dialog.notification('XXX-O-DUS', '[COLOR yellow]No Working Links Found Sorry[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000)
def streamingporn(self, url): r = client.request(url) r = re.findall('<em>(.*?)</div>', r, flags=re.DOTALL)[0] pattern = r'''<a\s+href=['"]([^'"]+)['"].+?.>(.*?)<''' r = re.findall(pattern, r) names = [] srcs = [] xbmc.executebuiltin("Dialog.Close(busydialog)") for url, name in r: name = name.replace('Download', '').strip() names.append(kodi.giveColor(name, 'white', True)) srcs.append(url) selected = kodi.dialog.select('Select a link.', names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] if resolveurl.HostedMediaFile(url2).valid_url(): stream_url = resolveurl.HostedMediaFile(url2).resolve() #liz = xbmcgui.ListItem(name,iconImage=icon, thumbnailImage=icon) #liz.setPath(stream_url) xbmc.Player().play(stream_url) else: xbmc.Player().play(url2)
def pandamovie(self, url): r = client.request(url) r = re.findall('<div id="pettabs">(.*?)</div>', r, flags=re.DOTALL)[0] pattern = r'''href=['"]([^'"]+)['"].+?>(.*?)<''' r = re.findall(pattern, r) names = [] srcs = [] found = 0 xbmc.executebuiltin("Dialog.Close(busydialog)") dialog.notification( 'XXX-O-DUS', '[COLOR yellow]Checking For Links Now, Be Patient[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000) for url, quality in sorted(r, reverse=True): if resolveurl.HostedMediaFile(url).valid_url(): names.append(kodi.giveColor(quality, 'white', True)) srcs.append(url) selected = kodi.dialog.select('Select a link.', names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] try: u = resolveurl.HostedMediaFile(url2).resolve() xbmc.Player().play(u) except: dialog.notification( 'XXX-O-DUS', '[COLOR yellow]Resolver Couldn\'t Resolve Link, Try Another[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000)
def virtualReality(): sources = __all__ vr_sources = [] base_name = [] menu_mode = [] art_dir = [] sources = [i for i in sources] for i in sources: try: if eval(i + ".type") == 'vr': base_name.append(eval(i + ".base_name")) menu_mode.append(eval(i + ".menu_mode")) art_dir.append(i) vr_sources = zip(base_name, menu_mode, art_dir) except: pass if vr_sources: dirlst = [] for i in sorted(vr_sources): dirlst.append({ 'name': kodi.giveColor(i[0], 'white'), 'url': None, 'mode': i[1], 'icon': specific_icon % i[2], 'fanart': specific_fanart % i[2], 'folder': True }) buildDirectory(dirlst)
def movies(): sources = __all__ movies_sources = [] base_name = [] menu_mode = [] art_dir = [] sources = [i for i in sources] for i in sources: try: if eval(i + ".type") == 'movies': base_name.append(eval(i + ".base_name")) menu_mode.append(eval(i + ".menu_mode")) art_dir.append(i.replace('_movies', '')) movies_sources = zip(base_name, menu_mode, art_dir) except: pass if movies_sources: dirlst = [] for i in sorted(movies_sources): dirlst.append({ 'name': kodi.giveColor(i[0], 'white'), 'url': None, 'mode': i[1], 'icon': specific_icon % i[0].lower(), 'fanart': specific_fanart % i[0].lower(), 'folder': True }) buildDirectory(dirlst)
def streamingporn(self,url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'} r = requests.get(url,headers=headers).text r = re.findall('<div class="entry-content">(.*?)</div>',r, flags=re.DOTALL)[0] pattern = r'''<a\s+href=['"]([^'"]+)['"].+?.>(.*?)<''' r = re.findall(pattern,r) names = [] srcs = [] found = 0 #xbmc.executebuiltin("Dialog.Close(busydialog)") for url,name in r: if not 'image' in url: if not 'severeporn' in name: if resolveurl.HostedMediaFile(url).valid_url(): #dialog.notification('XXX-O-DUS', '[COLOR yellow]Checking For Links Now, Be Patient[/COLOR]', xbmcgui.NOTIFICATION_INFO, 13000) try: found +=1 #u = resolveurl.HostedMediaFile(url, include_popups=False).resolve() name = name.replace('Download','').strip() names.append(kodi.giveColor(name,'white',True)) srcs.append(url) except: pass if found >= 1: selected = kodi.dialog.select('Select a link.',names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] dialog.notification('XXX-O-DUS', '[COLOR yellow]Getting Links Now[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000) u = resolveurl.HostedMediaFile(url2, include_popups=False).resolve() xbmc.Player().play(u) else: dialog.notification('XXX-O-DUS', '[COLOR yellow]No Working Links Found Sorry[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000)
def freeomovie(self, url): #dialog.ok("HERE",str(url)) ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36' headers = {'User-Agent': ua} c = requests.get(url, headers=headers).content soup = BeautifulSoup(c, 'html5lib') r = soup.find('div', id={'pettabs'}) names = [] srcs = [] found = 0 for links in r.find_all('a'): sources = links['href'] titles = links.text if resolveurl.HostedMediaFile(sources).valid_url(): names.append(kodi.giveColor(titles, 'white', True)) srcs.append(sources) selected = kodi.dialog.select('Select a link.', names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] try: u = resolveurl.HostedMediaFile(url2).resolve() xbmc.Player().play(u) except: dialog.notification( 'XXX-O-DUS', '[COLOR yellow]Resolver Couldn\'t Resolve Link, Try Another[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000)
def pictures(): sources = __all__ picture_sources = [] base_name = [] menu_mode = [] art_dir = [] sources = [i for i in sources if i != 'chaturbate'] for i in sources: try: if eval(i + ".pictures_tag") == 1: base_name.append(eval(i + ".base_name")) menu_mode.append(eval(i + ".pic_men_mode")) art_dir.append(i) picture_sources = zip(base_name, menu_mode, art_dir) except: pass if picture_sources: dirlst = [] for i in sorted(picture_sources): dirlst.append({ 'name': kodi.giveColor(i[0], 'white'), 'url': None, 'mode': i[1], 'icon': specific_icon % i[2], 'fanart': specific_fanart % i[2], 'folder': True }) buildDirectory(dirlst)
def pornrox(self, url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36' } link = requests.get(url, headers=headers) cookie = link.cookies.get_dict() soup = BeautifulSoup(link.content, 'html.parser') r = soup.find_all('source', {"type": "video/mp4"}) names = [] srcs = [] for i in r: qual = i['label'] source = i['src'] names.append(kodi.giveColor(qual, 'white', True)) srcs.append(source) selected = kodi.dialog.select('Select a link.', names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36', 'Referer': url } link2 = requests.get(url2, headers=headers, cookies=cookie, stream=True) play = link2.url xbmc.Player().play(play)
def siska(self, url): c = client.request(url) pattern = r'''<iframe src=['"](.*?)['"]''' r = re.findall(pattern, c, flags=re.DOTALL) names = [] srcs = [] found = 0 for url in r: if not 'hqq.tv' in url: if resolveurl.HostedMediaFile(url).valid_url(): u = resolveurl.HostedMediaFile( url, include_popups=False).resolve() if u: found += 1 stream = ('Link %s' % found) names.append(kodi.giveColor(stream, 'white', True)) srcs.append(u) selected = kodi.dialog.select('Select a Quality.', names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] xbmc.Player().play(url2)
def watchpornfree(self, url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36', 'Referer' : url} #dialog.notification('XXX-O-DUS', '[COLOR yellow]Getting Links Now[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000) r = requests.get(url, headers=headers).text soup = BeautifulSoup(r,'html.parser') r = soup.find('div', id={'pettabs'}) #r = re.findall('<div id="pettabs">(.*?)</div>',r, flags=re.DOTALL)[0] pattern = r'''href=['"]([^'"]+)['"].+?>(.*?)<''' r = re.findall(pattern,str(r)) names = [] srcs = [] found = 0 xbmc.executebuiltin("Dialog.Close(busydialog)") for url,name in r: if 'drivevideo' in url: url = url.split('?link=')[1] if resolveurl.HostedMediaFile(url).valid_url(): found += 1 name = ("Link %s" % found) names.append(kodi.giveColor(name,'white',True)) srcs.append(url) selected = kodi.dialog.select('Select a link.',names) if selected < 0: kodi.notify(msg='No option selected.') kodi.idle() quit() else: url2 = srcs[selected] try: u = resolveurl.HostedMediaFile(url2).resolve() xbmc.Player().play(u) except : dialog.notification('XXX-O-DUS', '[COLOR yellow]Resolver Couldn\'t Resolve Link, Try Another[/COLOR]', xbmcgui.NOTIFICATION_INFO, 5000)
def searchHistory(name,url): searches = [] mode,site = url.split('|SPLIT|') mode = int(mode) lst = [('New Search...',mode,'null','Search wankbank',True),('Clear History',15,'url',None,False), \ ('Disable Search History',16,None,None,False),('################## Recent Searches #########################',999,'url',None,False)] conn = sqlite3.connect(searchdb) conn.text_factory = str c = conn.cursor() c.execute("SELECT * FROM terms ORDER BY ID DESC") for (id,got_term) in c.fetchall(): lst += [(got_term,mode,'search_term='+got_term,got_term,True)] dirlst = [] for i in lst: icon = search_icon fanart = kodi.addonfanart dirlst.append({'name': kodi.giveColor(i[0],'white'), 'url': '%s|SPLIT|%s' % (i[2], site), 'mode': i[1], 'icon': icon, 'fanart': fanart, 'description': i[3], 'folder': i[4]}) if dirlst: buildDirectory(dirlst) utils.setView('list')
def searchMain(): dirlst = [] dirlst.append({'name': kodi.giveColor('Search All Providers','white'), 'url': 'all', 'mode': '1', 'icon': search_icon, 'fanart': kodi.addonfanart, 'folder': True}) sources = __all__ ; search_sources = [] for i in sources: try: if eval(i + ".search_tag") == 1: search_sources.append(i) except: pass if search_sources: for i in sorted(search_sources): dirlst.append({'name': kodi.giveColor('Search ' + i.title(),'white'), 'url': i, 'mode': '1', 'icon': specific_icon % i, 'fanart': specific_fanart % i, 'folder': True}) buildDirectory(dirlst)
def clearFavorites(): if os.path.isfile(favoritesdb): choice = xbmcgui.Dialog().yesno(kodi.get_name(), kodi.giveColor('Would you like to clear all of your favorites?','white')) if choice: try: os.remove(favoritesdb) except: kodi.notify(msg='Error clearing favorites.') xbmc.executebuiltin("Container.Refresh")
def clearSearch(): if os.path.isfile(searchdb): choice = xbmcgui.Dialog().yesno(kodi.get_name(), kodi.giveColor('Would you like to clear all stored search history?','white')) if choice: try: os.remove(searchdb) except: kodi.notify(msg='Error removing search history.') xbmc.executebuiltin("Container.Refresh")
def mainMenu(): art = xbmc.translatePath( os.path.join( 'special://home/addons/script.xxxodus.artwork/resources/art/', 'main/%s.png')) dirlst = [] c = [] if kodi.get_setting('mobile_mode') == 'true': c += [( kodi.giveColor('Mobile Mode ON', 'deeppink', True), None, 19, None, 'Mobile Mode auto selects low bandwidth files to limit mobile data usage.', False)] c += [ (kodi.giveColor('Welcome to XXX-O-DUS Version %s' % kodi.get_version() ,'dodgerblue',True),xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'icon','All issues must be reported at https://github.com/xibalba10/plugin.video.xxx-o-dus/issues or I will not know the issues exist. I will not provide support at any other location as one central place for everyone to see and discuss issues benefits everyone.',False), \ (kodi.giveColor(kodi.countGitHubIssues('https://github.com/xibalba10/plugin.video.xxx-o-dus/issues'),'dodgerblue',True) + kodi.giveColor(' | Click To View Issues','white',True),None,34,'report','All issues must be reported at https://github.com/xibalba10/plugin.video.xxx-o-dus/issues or I will not know the issues exist. I will not provide support at any other location as one central place for everyone to see and discuss issues benefits everyone.',False), \ ('Search...',None,29,'search','Search XXX-O-DUS',True), \ ('Chaturbate',None,300,'chaturbate','Chaturbate',True), \ ('Tubes',None,4,'tubes','Videos',True), \ ('Parental Controls',None,5,'parental_controls','View/Change Parental Control Settings.',True), \ ('Your History',None,20,'history','View Your History.',True), \ ('Your Favourites',None,23,'favourites','View Your Favourites.',True), \ ('Your Downloads',None,27,'downloads','View Your Downloads.',True), \ ('Your Settings',None,19,'settings','View/Change Addon Settings.',False), \ #('View Disclaimer',xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/disclaimer.txt')),17,'disclaimer','View XXX-O-DUS Disclaimer.',False), \ ('View Addon Information',xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'addon_info','View XXX-O-DUS Information.',False), \ ('RESET XXX-O-DUS',None,18,'reset','Reset XXX-O-DUS to Factory Settings.',False), \ (kodi.giveColor('Report Issues @ https://github.com/xibalba10/plugin.video.xxx-o-dus/issues','white',True),xbmc.translatePath(os.path.join(kodi.addonfolder, 'resources/files/information.txt')),17,'report','All issues must be reported at https://github.com/xibalba10/plugin.video.xxx-o-dus/issues or I will not know the issues exist. I will not provide support at any other location as one central place for everyone to see and discuss issues benefits everyone.',False), \ ] for i in c: icon = art % i[3] fanart = kodi.addonfanart dirlst.append({ 'name': kodi.giveColor(i[0], 'white'), 'url': i[1], 'mode': i[2], 'icon': icon, 'fanart': fanart, 'description': i[4], 'folder': i[5] }) buildDirectory(dirlst, cache=False)
def parentalControls(): list = [] password = None conn = sqlite3.connect(parentaldb) conn.text_factory = str c = conn.cursor() c.execute("SELECT * FROM parental") for (timest, passwd) in c.fetchall(): timestamp = timest password = passwd conn.close() if password: c = [(kodi.giveColor('PARENTAL CONTROLS - ','white',True) + kodi.giveColor('ON','lime'),999), \ (kodi.giveColor('Change Password','white'),13), \ (kodi.giveColor('Disable Password','white'),14), \ ] else: c = [(kodi.giveColor('PARENTAL CONTROLS - ','white',True) + kodi.giveColor('OFF','orangered'),999), \ (kodi.giveColor('Setup Parental Password','white'),13), \ ] for i in c: icon = parental_icon fanart = kodi.addonfanart list.append({'name': i[0], 'url': 'none', 'mode': i[1], 'icon': icon, 'fanart': fanart, 'folder': False}) if list: buildDirectory(list)