def pic_content(url): try: c = client.request(url) r = dom_parser2.parse_dom(c, 'div', {'class': 'thumb-container'}) r = [(dom_parser2.parse_dom(i, 'a', req='href'), \ dom_parser2.parse_dom(i, 'img', req=['src','alt'])) \ for i in r if i] r = [(i[0][0].attrs['href'], i[1][0].attrs['alt'], i[1][0].attrs['src']) for i in r if i[0]] if (not r): log_utils.log( 'Scraping Error in %s:: Content of request: %s' % (base_name.title(), str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log( 'Fatal Error in %s:: Error: %s' % (base_name.title(), str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: if PY2: name = kodi.sortX(i[1].encode('utf-8')).title() else: name = kodi.sortX(i[1]).title() fanarts = translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': i[0], 'mode': pic_v_mode, 'icon': i[2], 'fanart': fanarts, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst, stopend=True, pictures=True) search_pattern = '''<a\s*href=['"]([^'"]+)['"]\s*class=['"]pop['"]\s*rel=['"]\d+['"]>NEXT''' parse = base_domain helper.scraper().get_next_page(pic_con_mode, url, search_pattern, filename, parse, pictures=True) else: kodi.notify(msg='No Menu Items Found') quit()
def menu(): lover.checkupdates() try: url = urljoin(base_domain, 'tags') c = client.request(url) r = dom_parser2.parse_dom(c, 'a', {'class': 'thumb-link'}) r = [(i.attrs['href'], i.attrs['title'], dom_parser2.parse_dom(i, 'li'), dom_parser2.parse_dom(i, 'img', req='src')) for i in r if i] r = [(i[0], i[1], i[2][0].content.replace('<i class="icon icon-video"></i>', ''), i[3][0].attrs['src']) for i in r if i] if (not r): log_utils.log( 'Scraping Error in %s:: Content of request: %s' % (base_name.title(), str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log( 'Fatal Error in %s:: Error: %s' % (base_name.title(), str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: if PY2: name = kodi.sortX(i[1].encode('utf-8')) else: name = kodi.sortX(i[1]) name = name.title() + ' - [ %s ]' % i[2] icon = translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/icon.png' % filename)) fanarts = translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': i[0], 'mode': content_mode, 'icon': icon, 'fanart': fanarts, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[0].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def content(url): try: if not url: url = 'https://xtheatre.org/?filtre=date&cat=0' c = client.request(url) r = dom_parser2.parse_dom(c, 'li', {'class': ['border-radius-5', 'box-shadow']}) r = [(dom_parser2.parse_dom(i, 'a', req=['href','title']), \ dom_parser2.parse_dom(i, 'p'), \ dom_parser2.parse_dom(i, 'img', req='src')) \ for i in r if i] r = [(i[0][0].attrs['href'], i[0][0].attrs['title'], i[1][0].content, \ i[2][0].attrs['src']) for i in r] if (not r): log_utils.log( 'Scraping Error in %s:: Content of request: %s' % (base_name.title(), str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) except Exception as e: log_utils.log( 'Fatal Error in %s:: Error: %s' % (base_name.title(), str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: name = kodi.sortX(i[1].title()) description = kodi.sortX(i[2]) content_url = i[0] + '|SPLIT|%s' % base_name fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': content_url, 'mode': player_mode, 'icon': i[3], 'fanart': fanarts, 'description': description, 'folder': False }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst, stopend=True, isVideo=True, isDownloadable=True) else: kodi.notify(msg='No Content Found') quit() search_pattern = '''<a\s*href=['"]([^'"]+)['"]>Next''' helper.scraper().get_next_page(menu_mode, url, search_pattern, filename)
def byTags(url): c = client.request(urlparse.urljoin(base_domain, url)) r = dom_parser2.parse_dom(c, 'div', {'class': 'tag_row'}) r = [(dom_parser2.parse_dom(i, 'a', req='href'), \ dom_parser2.parse_dom(i, 'span', {'class': 'viewers'}), \ dom_parser2.parse_dom(i, 'span', {'class': 'rooms'})) \ for i in r] r = [(urlparse.urljoin(base_domain, i[0][0].attrs['href']), i[0][0].content, i[1][0].content, i[2][0].content) for i in r] dirlst = [] for i in r: try: name = '%s - [ Viewers: %s | Rooms: %s ]' % (kodi.sortX( i[1].encode('utf-8')).title(), kodi.sortX( i[2].encode('utf-8')), kodi.sortX(i[3].encode('utf-8'))) icon = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/icon.png' % filename)) fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': i[0], 'mode': content_mode, 'icon': icon, 'fanart': fanarts, 'description': name, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: try: np = re.findall( '''<li><a\s*href=['"]([^'"]+)['"]\s*class=['"]next endless_page_link['"]>next<\/a><\/li>''', c)[0] dirlst.append({ 'name': 'Next Page -->', 'url': np, 'mode': 302, 'icon': icon, 'fanart': fanarts, 'description': 'View more tags.', 'folder': True }) except: log_utils.log( 'No next page link found for Chaturbate :: %s ' % (url), log_utils.LOGNOTICE) buildDirectory(dirlst) else: kodi.notify(msg='No Content Found') quit()
def content(url,searched=False): try: url = client.request(url, output='geturl') c = client.request(url) r = dom_parser2.parse_dom(c, 'div', {'class': 'list__item'}) r = [(dom_parser2.parse_dom(i, 'a', req=['href','title']), \ dom_parser2.parse_dom(i, 'time'), \ dom_parser2.parse_dom(i, 'img', req='data-original')) for i in r if i] r = [(urlparse.urljoin(base_domain,i[0][0].attrs['href']), \ i[0][0].attrs['title'], \ i[1][0].content, \ i[2][0].attrs['data-original']) for i in r if i] if ( not r ) and ( not searched ): log_utils.log('Scraping Error in %s:: Content of request: %s' % (base_name.title(),str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) except Exception as e: if ( not searched ): log_utils.log('Fatal Error in %s:: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() else: pass dirlst = [] for i in r: try: name = '%s - [ %s ]' % (kodi.sortX(i[1].encode('utf-8')).title(),kodi.sortX(i[2].encode('utf-8'))) if searched: description = 'Result provided by %s' % base_name.title() else: description = name content_url = i[0] + '|SPLIT|%s' % base_name fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': content_url, 'mode': player_mode, 'icon': i[3], 'fanart': fanarts, 'description': description, 'folder': False}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[1].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst, stopend=True, isVideo = True, isDownloadable = True) else: if (not searched): kodi.notify(msg='No Content Found') quit() if searched: return str(len(r)) if not searched: try: pattern = r'''((?:http|https)(?:\:\/\/)(?:www)(?:\/\/|\.)(perfectgirls.net)\/(category\/)([0-9+]\/)(.+?\/))([0-9]+)''' r = re.search(pattern,url) base = r.group(1) search_pattern = '''<a\s*class=['"]btn_wrapper__btn['"]\s*href=['"]([^'"]+)['"]>Next''' parse = base helper.scraper().get_next_page(content_mode,url,search_pattern,filename,parse) except Exception as e: log_utils.log('Error getting next page for %s :: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR)
def menu(): lover.checkupdates() try: url = urljoin(base_domain, 'categories.php') c = client.request(url) r = dom_parser2.parse_dom(c, 'a', req='href') r = [i for i in r if len(i.content) > 2 and 'pages' in i.attrs['href'] \ and '0-9' not in i.attrs['href'] and ' ' not in i.content] r = [(urljoin(base_domain, i.attrs['href']), i.content) for i in r] if (not r): log_utils.log( 'Scraping Error in %s:: Content of request: %s' % (base_name.title(), str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log( 'Fatal Error in %s:: Error: %s' % (base_name.title(), str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: if PY2: name = kodi.sortX(i[1].encode('utf-8')) else: name = kodi.sortX(i[1]) icon = translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/icon.png' % filename)) fanarts = translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': i[0], 'mode': content_mode, 'icon': icon, 'fanart': fanarts, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def content(url, searched=False): r = client.request(url) r = dom_parser2.parse_dom(r, 'ul') r = dom_parser2.parse_dom(r, 'li') r = [(dom_parser2.parse_dom(i, 'a', req=['href','title']), \ dom_parser2.parse_dom(i, 'span', {'class': 'timer'}), \ dom_parser2.parse_dom(i, 'img', req='src')) for i in r if i if 'class="thumb"' in i.content] r = [(urlparse.urljoin(base_domain, i[0][0].attrs['href']), i[0][0].attrs['title'], i[1][0].content, i[2][0].attrs['src']) for i in r if i] dirlst = [] for i in r: try: name = '%s - [ %s ]' % (kodi.sortX(i[1].encode('utf-8')).title(), kodi.sortX(i[2].encode('utf-8'))) if searched: description = 'Result provided by %s' % base_name.title() else: description = name content_url = i[0] + '|SPLIT|%s' % base_name fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': content_url, 'mode': player_mode, 'icon': i[3], 'fanart': fanarts, 'description': description, 'folder': False }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst, stopend=True, isVideo=True, isDownloadable=True) else: if (not searched): kodi.notify(msg='No Content Found') quit() if searched: return str(len(r)) if not searched: search_pattern = '''<li><a class=['"]selected"\s*>\d+<\/a><\/li>\s*<li><a\s*href=['"]([^'"]+)['"]>\d+<\/a><\/li>''' parse = base_domain helper.scraper().get_next_page(content_mode, url, search_pattern, filename, parse)
def menu(): lover.checkupdates() try: url = urljoin(base_domain, 'channels/') c = client.request(url) r = dom_parser2.parse_dom( c, 'div', {'class': ['item-col', 'item--channel', 'col']}) r = [(dom_parser2.parse_dom(i, 'a', req=['href','title']), \ dom_parser2.parse_dom(i, 'img', req='src')) \ for i in r if i] r = [(i[0][0].attrs['href'], i[0][0].attrs['title'], i[1][0].attrs['src'] \ if i[1] else urljoin(base_domain,'core/images/catdefault.jpg')) for i in r[8:]] if (not r): log_utils.log( 'Scraping Error in %s:: Content of request: %s' % (base_name.title(), str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log( 'Fatal Error in %s:: Error: %s' % (base_name.title(), str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: if PY2: name = kodi.sortX(i[1].encode('utf-8')) else: name = kodi.sortX(i[1]) fanarts = translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': i[0], 'mode': content_mode, 'icon': i[2], 'fanart': fanarts, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def content(url,searched=False): try: c = client.request(url) r = dom_parser2.parse_dom(c, 'div', {'id': re.compile('video_\d+')}) r = [(dom_parser2.parse_dom(i, 'a', req=['href','title']), \ dom_parser2.parse_dom(i, 'span', {'class': 'duration'}), \ dom_parser2.parse_dom(i, 'img', req='data-src'), \ dom_parser2.parse_dom(i, 'span', {'class': 'video-hd-mark'})) \ for i in r if i] r = [(urlparse.urljoin(base_domain,i[0][0].attrs['href']), i[0][0].attrs['title'], i[1][0].content, i[2][0].attrs['data-src'], i[3][0].content if i[3] else 'SD') for i in r] if ( not r ) and ( not searched ): log_utils.log('Scraping Error in %s:: Content of request: %s' % (base_name.title(),str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) except Exception as e: if ( not searched ): log_utils.log('Fatal Error in %s:: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() else: pass dirlst = [] for i in r: try: name = '%s - [ %s - %s ]' % (kodi.sortX(i[1].encode('utf-8')).title(),kodi.sortX(i[2].encode('utf-8')),kodi.sortX(i[4].encode('utf-8'))) if searched: description = 'Result provided by %s' % base_name.title() else: description = name icon = re.sub('(\.THUMBNUM\.)','.1.',i[3]) content_url = i[0] + '|SPLIT|%s' % base_name fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': content_url, 'mode': player_mode, 'icon': icon, 'fanart': fanarts, 'description': description, 'folder': False}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[1].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst, stopend=True, isVideo = True, isDownloadable = True) else: if (not searched): kodi.notify(msg='No Content Found') quit() if searched: return str(len(r)) if not searched: try: search_pattern = '''href=['"]([^'"]+)"\s*class="no-page\s*next-page">Next''' parse = base_domain helper.scraper().get_next_page(content_mode,url,search_pattern,filename,parse) except Exception as e: log_utils.log('Error getting next page for %s :: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR)
def content(url,searched=False): try: #url = url.replace('-','+') c = client.request(url) r = dom_parser2.parse_dom(c, 'div', {'class': ['item','newest']}) #r = dom_parser2.parse_dom(r, 'li') r = [(dom_parser2.parse_dom(i, 'a', req=['href','title']), \ dom_parser2.parse_dom(i, 'img', req='src'), \ dom_parser2.parse_dom(i.content, 'span')) \ for i in r if i] r = [(urlparse.urljoin(base_domain,i[0][1].attrs['href']),i[0][1].attrs['title'],i[2][0].content,i[1][0].attrs['src']) for i in r if i] if ( not r ) and ( not searched ): log_utils.log('Scraping Error in %s:: Content of request: %s' % (base_name.title(),str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) except Exception as e: if ( not searched ): log_utils.log('Fatal Error in %s:: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() else: pass dirlst = [] for i in r: try: name = '%s - [ %s ]' % (kodi.sortX(i[1].encode('utf-8')).title(),kodi.sortX(i[2].encode('utf-8'))) if searched: description = 'Result provided by %s' % base_name.title() else: description = name content_url = i[0] + '|SPLIT|%s' % base_name fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': content_url, 'mode': player_mode, 'icon': i[3], 'fanart': fanarts, 'description': description, 'folder': False}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[1].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst, stopend=True, isVideo = True, isDownloadable = True) else: if (not searched): kodi.notify(msg='No Content Found') quit() if searched: return str(len(r)) if not searched: try: search_pattern = '''<link\s*rel=['"]next['"]\s*href=['"]([^'"]+)['"]''' parse = base_domain helper.scraper().get_next_page(content_mode,url,search_pattern,filename,parse) except Exception as e: log_utils.log('Error getting next page for %s :: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR)
def content(url,searched=False): try: c = client.request(url) r = dom_parser2.parse_dom(c, 'li', {'class': 'thumb'}) r = [i for i in r if 'ico-views' in i.content] r = [(dom_parser2.parse_dom(i, 'a', req='href'), \ dom_parser2.parse_dom(i, 'span', {'itemprop': 'name'}), \ dom_parser2.parse_dom(i, 'span', {'class': 'duration'}), \ dom_parser2.parse_dom(i, 'img', req='data-original')) \ for i in r if i] r = [(i[0][0].attrs['href'],i[1][0].content,i[2][0].content,i[3][0].attrs['data-original']) for i in r] if ( not r ): log_utils.log('Scraping Error in %s:: Content of request: %s' % (base_name.title(),str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) except Exception as e: log_utils.log('Fatal Error in %s:: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: name = '%s - [ %s ]' % (kodi.sortX(i[1].encode('utf-8')).title(),kodi.sortX(i[2].encode('utf-8'))) if searched: description = 'Result provided by %s' % base_name.title() else: description = name content_url = i[0] + '|SPLIT|%s' % base_name fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': content_url, 'mode': player_mode, 'icon': i[3], 'fanart': fanarts, 'description': description, 'folder': False}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[1].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst, stopend=True, isVideo = True, isDownloadable = True) else: if (not searched): kodi.notify(msg='No Content Found') quit() if searched: return str(len(r)) if not searched: try: search_pattern = '''\<a\s*href\=['"]([^']+)['"]\>Next''' parse = base_domain helper.scraper().get_next_page(content_mode,url,search_pattern,filename,parse) except Exception as e: log_utils.log('Error getting next page for %s :: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR)
def content(url,searched=False): try: c = client.request(url) r = dom_parser2.parse_dom(c, 'div', {'class': ['item-col','col','popup','video-box','thumb-resize']}) r = [(dom_parser2.parse_dom(i, 'a', req='href'), \ dom_parser2.parse_dom(i, 'span', {'class': ['time','vr-yellow']}), \ dom_parser2.parse_dom(i, 'img', req=['src','alt'])) \ for i in r if i] r = [(i[0][0].attrs['href'], i[2][0].attrs['alt'], i[1][0].content, \ i[2][0].attrs['src']) for i in r if i] if ( not r ) and ( not searched ): log_utils.log('Scraping Error in %s:: Content of request: %s' % (base_name.title(),str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: if ( not searched ): log_utils.log('Fatal Error in %s:: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() else: pass dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')) name = name.title() + ' - [ %s ]' % kodi.sortX(i[2].encode('utf-8')) if searched: description = 'Result provided by %s' % base_name.title() else: description = name content_url = i[0] + '|SPLIT|%s' % base_name fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': content_url, 'mode': player_mode, 'icon': i[3], 'fanart': fanarts, 'description': description, 'folder': False}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[0].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst, stopend=True, isVideo = True, isDownloadable = True) else: if (not searched): kodi.notify(msg='No Content Found') quit() if searched: return str(len(r)) if not searched: try: parse = re.findall('''<link\s*rel=['"]canonical['"]\s*href=['"]([^'"]+)''',r)[0] except: parse = base_domain search_pattern = '''<link\s*rel=['"]next['"]\s*href=['"]([^'"]+)''' helper.scraper().get_next_page(content_mode,url,search_pattern,filename,parse)
def menu(): url = urlparse.urljoin(base_domain, 'categories') r = client.request(url) r = dom_parser2.parse_dom(r, 'li', {'id': re.compile('\d+')}) r = [(dom_parser2.parse_dom(i, 'a', req='href'), dom_parser2.parse_dom(i, 'img', req='src')) for i in r if i] r = [(urlparse.urljoin(base_domain, i[0][0].attrs['href']), i[1][0].attrs['title'], i[1][0].attrs['src']) for i in r if i] dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')).title() fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': i[0], 'mode': content_mode, 'icon': i[2], 'fanart': fanarts, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[0].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def content(url,searched=False): r = client.request(url) r = dom_parser2.parse_dom(r, 'div', {'class': re.compile('col\s*thumb_video')}) r = [(dom_parser2.parse_dom(i, 'a', req=['href', 'title']), dom_parser2.parse_dom(i, 'img', req='data-original')) for i in r] r = [(urlparse.urljoin(base_domain,i[0][0].attrs['href']), i[0][0].attrs['title'], i[1][0].attrs['data-original']) for i in r if i[0] and i[1]] dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')) if searched: description = 'Result provided by %s' % base_name.title() else: description = name content_url = i[0] + '|SPLIT|%s' % base_name fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork' , 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': content_url, 'mode': player_mode, 'icon': i[2], 'fanart': fanarts, 'description': description, 'folder': False}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[0].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst, stopend=True, isVideo = True, isDownloadable = True) else: if (not searched): kodi.notify(msg='No Content Found') quit() if searched: return str(len(r)) if not searched: search_pattern = '''href=['"]([^'"]+)['"] id=['"]next''' helper.scraper().get_next_page(content_mode,url,search_pattern,filename) kodi.setView('thumbs')
def menu(): try: url = base_domain scraper = cfscrape.create_scraper() c = scraper.get(url).content r = dom_parser2.parse_dom(c, 'ul', {'id': 'categorias'}) r = dom_parser2.parse_dom(r, 'a') r = [(i.attrs['href'],i.content) for i in r if i] if ( not r ): log_utils.log('Scraping Error in %s:: Content of request: %s' % (base_name.title(),str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log('Fatal Error in %s:: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')).title() icon = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/icon.png' % filename)) fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': i[0], 'mode': content_mode, 'icon': icon, 'fanart': fanarts, 'folder': True}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[1].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def menu(): scraper_updater.check(filename) try: url = urlparse.urljoin(base_domain,'adult/') c = client.request(url) r = dom_parser2.parse_dom(c, 'ul', {'class': 'menupopular'}) r = dom_parser2.parse_dom(r, 'a', req='href') r = [(i.attrs['href'], i.content) for i in r if 'Movies' in i.content and '/adult' in i.attrs['href']] if ( not r ): log_utils.log('Scraping Error in %s:: Content of request: %s' % (base_name.title(),str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log('Fatal Error in %s:: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')) icon = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/icon.png' % filename)) fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': i[0], 'mode': content_mode, 'icon': icon, 'fanart': fanarts, 'folder': True}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[1].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def menu(): scraper_updater.check(filename) try: url = urlparse.urljoin(base_domain, 'categories/') c = client.request(url) r = dom_parser2.parse_dom(c, 'a', {'class': 'tooltip'}) r = [(i.attrs['href'], \ i.content, \ dom_parser2.parse_dom(i, 'strong'), \ dom_parser2.parse_dom(i, 'img', req='src')) \ for i in r if i] r = [(i[0], i[2][0].content, re.findall('\((\d+)\)', i[1])[0], i[3][0].attrs['src']) for i in r] if (not r): log_utils.log( 'Scraping Error in %s:: Content of request: %s' % (base_name.title(), str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log( 'Fatal Error in %s:: Error: %s' % (base_name.title(), str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')) name = name.title() + ' - [ %s ]' % i[2] icon = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/icon.png' % filename)) fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': i[0], 'mode': content_mode, 'icon': i[3], 'fanart': fanarts, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def menu(): try: url = urlparse.urljoin(base_domain,'tags') c = client.request(url) r = dom_parser2.parse_dom(c, 'li', {'class': 'text-nowrap'}) r = [(dom_parser2.parse_dom(i, 'a', req=['href']),dom_parser2.parse_dom(i, 'strong')) for i in r if r] r = [(urlparse.urljoin(base_domain,i[0][0].attrs['href']),i[0][0].content,i[1][0].content) for i in r if i] if ( not r ): log_utils.log('Scraping Error in %s:: Content of request: %s' % (base_name.title(),str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log('Fatal Error in %s:: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')) name = name.title() + ' - [ %s ]' % i[2] icon = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/icon.png' % filename)) fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': i[0], 'mode': content_mode, 'icon': icon, 'fanart': fanarts, 'folder': True}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[1].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def menu(): url = base_domain r = client.request(url) r = dom_parser2.parse_dom(r, 'dd') r = dom_parser2.parse_dom(r, 'a', req='href') r = [i for i in r if 'private-cams' not in i.attrs['href']] r = [(urlparse.urljoin(base_domain,i.attrs['href']),i.content) for i in r if i] dirlst = [] icon = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/main/%s.png' % filename)) fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': 'Monitored Performers', 'url': 'none', 'mode': 30, 'icon': icon, 'fanart': fanarts, 'folder': True}) dirlst.append({'name': 'Search By Username', 'url': 'none', 'mode': 32, 'icon': icon, 'fanart': fanarts, 'folder': False}) dirlst.append({'name': 'Rooms By Tag', 'url': 'tags', 'mode': 302, 'icon': icon, 'fanart': fanarts, 'folder': True}) for i in r: try: name = kodi.sortX(i[1].encode('utf-8')).title() dirlst.append({'name': name, 'url': i[0], 'mode': content_mode, 'icon': icon, 'fanart': fanarts, 'folder': True}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[1].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def menu(): lover.checkupdates() try: url = urlparse.urljoin(base_domain, 'categories.html') c = client.request(url) r = dom_parser2.parse_dom(c, 'li') r = [i for i in r if '<span class="category-thumb">' in i.content] r = [(dom_parser2.parse_dom(i, 'a'), dom_parser2.parse_dom(i, 'img')) for i in r] r = [(i[0][0].attrs['href'], re.sub('<.+?>','',i[1][0].content), i[1][0].attrs['data-thumb']) for i in r[1:]] if ( not r ): log_utils.log('Scraping Error in %s:: Content of request: %s' % (base_name.title(),str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log('Fatal Error in %s:: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')) fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': i[0], 'mode': content_mode, 'icon': i[2], 'fanart': fanarts, 'folder': True}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[1].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def content(url, searched=None): content_type = 'link' pattern = r'''%s\=['"]+([^'"]+)''' r = client.request(url) r = dom_parser2.parse_dom(r, 'li') r = [i.content for i in r if 'thumb-item-desc' in i.content] dirlst = [] for i in r: try: name = re.findall(pattern % 'title', i)[0] name = kodi.sortX(name.encode('utf-8')) if searched: description = 'Result provided by %s' % base_name.title() else: description = name url = re.findall(pattern % 'href', i)[0] iconimg = re.findall(pattern % 'src', i)[0] iconimg = 'http:%s' % iconimg if iconimg.startswith( '//') else iconimg fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': urlparse.urljoin(base_domain, url + '|SPLIT|%s' % base_name), 'mode': player_mode, 'icon': iconimg, 'fanart': fanarts, 'description': description, 'folder': False }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if searched: if dirlst: buildDirectory(dirlst, stopend=True, isVideo=True, isDownloadable=True) return str(len(r)) else: if dirlst: buildDirectory(dirlst, isVideo=True, isDownloadable=True) else: kodi.notify(msg='No Content Found') quit()
def menu(): scraper_updater.check(filename) try: url = urlparse.urljoin( base_domain, 'brittany-shae-shows-us-shes-got-bangcasting-combangbros-com/') c = client.request(url) r = dom_parser2.parse_dom(c, 'div', {'class': 'textwidget'}) r = dom_parser2.parse_dom(r, 'p') r = [i.content for i in r if 'Popular Categories' in i.content] r = dom_parser2.parse_dom(r, 'a') r = [(i.attrs['href'], i.content) for i in r] if (not r): log_utils.log( 'Scraping Error in %s:: Content of request: %s' % (base_name.title(), str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log( 'Fatal Error in %s:: Error: %s' % (base_name.title(), str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] icon = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/icon.png' % filename)) fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) #dirlst.append({'name': 'Full Movies', 'url': 'http://streamingporn.xyz/movies/', 'mode': content_mode, 'icon': icon, 'fanart': fanarts, 'folder': True}) for i in r: try: name = kodi.sortX(i[1].encode('utf-8')).title() dirlst.append({ 'name': name, 'url': i[0], 'mode': content_mode, 'icon': icon, 'fanart': fanarts, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def menu(): scraper_updater.check(filename) try: url = urlparse.urljoin(base_domain, 'categories2018') c = client.request(url) r = dom_parser2.parse_dom(c, 'ul', {'class': 'listing-cat'}) r = dom_parser2.parse_dom( r, 'li', {'class': re.compile('border-radius-\d*\s*box-shadow')}) r = [(dom_parser2.parse_dom(i, 'a', req=['href','title']), \ dom_parser2.parse_dom(i, 'img', req='data-lazy-src')) \ for i in r if i] r = [(i[0][0].attrs['href'], i[0][0].attrs['title'], i[1][0].attrs['data-lazy-src'] if i[1] else '') for i in r if i[0] and i[1]] if (not r): log_utils.log( 'Scraping Error in %s:: Content of request: %s' % (base_name.title(), str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log( 'Fatal Error in %s:: Error: %s' % (base_name.title(), str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')) if 'https' not in i[2]: icon = 'https:' + i[2] else: icon = i[2] fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': i[0], 'mode': content_mode, 'icon': icon, 'fanart': fanarts, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def menu(): lover.checkupdates() try: url = urlparse.urljoin(base_domain, 'categories') c = client.request(url) r = dom_parser2.parse_dom(c, 'div', {'class': re.compile('row\smost_popular')}) r = dom_parser2.parse_dom(r, 'a') r = [(i.attrs['href'], \ dom_parser2.parse_dom(i, 'span'), \ dom_parser2.parse_dom(i, 'img', req='data-original')) \ for i in r if i] r = [(urlparse.urljoin(base_domain, i[0]), i[2][0].attrs['alt'], i[1][0].content, i[2][0].attrs['data-original']) for i in r] if (not r): log_utils.log( 'Scraping Error in %s:: Content of request: %s' % (base_name.title(), str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log( 'Fatal Error in %s:: Error: %s' % (base_name.title(), str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')) name = name.title() + ' - [ %s ]' % i[2].split(' ')[0] fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': i[0], 'mode': content_mode, 'icon': i[3], 'fanart': fanarts, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def menu(): try: url = urlparse.urljoin(base_domain, 'categories/') c = client.request(url) r = dom_parser2.parse_dom(c, 'div', {'class': ['item', 'pic-category']}) r = [(dom_parser2.parse_dom(i, 'a', req='href'), \ dom_parser2.parse_dom(i, 'img', req=['src','alt']), \ dom_parser2.parse_dom(i, 'span', {'class': 'item-stats'})) \ for i in r if i] r = [(i[0][0].attrs['href'], i[1][0].attrs['alt'], i[1][0].attrs['src'], re.findall('.+?(\d+)', re.sub('<.+?>', '', i[2][0].content))[0]) for i in r if i] if (not r): log_utils.log( 'Scraping Error in %s:: Content of request: %s' % (base_name.title(), str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log( 'Fatal Error in %s:: Error: %s' % (base_name.title(), str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')).title() name = name.title() + ' - [ %s ]' % i[3] fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': i[0], 'mode': content_mode, 'icon': i[2], 'fanart': fanarts, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def content(url, searched=False): r = client.request(url) r = re.findall('(<h1.+?)<div class="timewrap">', r, re.DOTALL) r = [(dom_parser2.parse_dom(i, 'h1', {'class': 'mtitle'}, req='title'), dom_parser2.parse_dom(i, 'div', {'class': 'thumb_container'})) for i in r if i] r = [(i[0][0].attrs['title'],dom_parser2.parse_dom(i[0][0].content, 'a', req='href'), \ dom_parser2.parse_dom(i[1][0].content, 'img', req='src')) for i in r if i[0]] r = [(i[0], urlparse.urljoin(base_domain, i[1][0].attrs['href']), i[2][0].attrs['src']) for i in r if i] dirlst = [] for i in r: try: name = kodi.sortX(i[0].encode('utf-8')) if searched: description = 'Result provided by %s' % base_name.title() else: description = name content_url = i[1] + '|SPLIT|%s' % base_name fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': content_url, 'mode': player_mode, 'icon': i[2], 'fanart': fanarts, 'description': description, 'folder': False }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[0].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst, stopend=True, isVideo=True, isDownloadable=True) else: if (not searched): kodi.notify(msg='No Content Found') quit() if searched: return str(len(r)) if not searched: search_pattern = '''"\w{4}"\s*\w{4}\=['"]([^\'\"]+)[\'\"]\s*\/>''' parse = base_domain helper.scraper().get_next_page(content_mode, url, search_pattern, filename, parse)
def content(url,searched=False): r = client.request(url) r = dom_parser2.parse_dom(r, 'li') r = [(dom_parser2.parse_dom(i, 'div', {'class': 'title'}), \ dom_parser2.parse_dom(i, 'img', req='src'), \ dom_parser2.parse_dom(i, 'div', {'class': re.compile('thumbnail_label.+?')}), \ dom_parser2.parse_dom(i, 'li', {'title': re.compile('.+?')}), \ dom_parser2.parse_dom(i, 'li', {'class': 'location'}), \ dom_parser2.parse_dom(i, 'li', {'class': 'cams'}) \ ) for i in r if '<div class="title">' in i.content] r = [(dom_parser2.parse_dom(i[0], 'a'), \ dom_parser2.parse_dom(i[0], 'span'), \ i[2][0].content, \ i[1][0].attrs['src'], \ i[3][0].content if i[3] else 'Unknown', \ i[4][0].content, \ i[5][0].content, \ ) for i in r] r = [(urlparse.urljoin(base_domain,i[0][0].attrs['href']), i[0][0].content, i[1][0].content,i[2],i[3],i[6],i[5],i[4]) for i in r] dirlst = [] for i in r: try: name = '%s - [ %s ]' % (kodi.sortX(i[1].encode('utf-8')).title(),kodi.sortX(i[3].encode('utf-8'))) description = 'Name: %s \nAge: %s \nLocation: %s \nStats: %s \n\nDescription: %s' % \ (kodi.sortX(i[1].encode('utf-8')),i[2],kodi.sortX(i[6].encode('utf-8')),kodi.sortX(i[5].encode('utf-8')),kodi.sortX(i[7].encode('utf-8'))) content_url = i[0] + '|SPLIT|%s' % base_name fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': content_url, 'mode': player_mode, 'icon': i[4], 'fanart': fanarts, 'description': description, 'folder': False}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[1].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst, stopend=True, isVideo = False, isDownloadable = False, chaturbate = True) else: kodi.notify(msg='No Content Found') quit() search_pattern = '''<li><a\s*href=['"]([^'"]+)['"]\s*class=['"]next endless_page_link['"]>next<\/a><\/li>''' parse = base_domain helper.scraper().get_next_page(content_mode,url,search_pattern,filename,parse)
def menu(): url = base_domain content_type = 'dir' cache_time = 4 r = cache.get(client.request, cache_time, url) r = dom_parser2.parse_dom(r, 'li') r = dom_parser2.parse_dom(r, 'a', req='title') r = [(urlparse.urljoin(base_domain, i.attrs['href']), i.content) for i in r if '/tag' in i.attrs['href']] dirlst = [] if r: for i in r: try: iconimage = xbmc.translatePath( os.path.join( 'special://home/addons/script.xxxodus.artwork', 'resources/art/%s/icon.png' % filename)) fanarts = xbmc.translatePath( os.path.join( 'special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) name = kodi.sortX(i[1].encode('utf-8')) dirlst.append({ 'name': name, 'url': i[0], 'mode': content_mode, 'icon': iconimage, 'fanart': fanarts, 'folder': True }) except Exception as e: log_utils.log( 'Error adding menu item %s in %s:: Error: %s' % (i[1].title(), base_name.title(), str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()
def get_list(self, mode, type, url, title_pattern, url_pattern, icon_pattern=None, site=None, d_p1=None, d_p2=None, d_p3=None, parse=None, cache_time=None,searched=False,stopend=False, isVideo=False, isDownloadable = False): if cache_time: r = cache.get(client.request,cache_time,url) else: r = client.request(url) if 're|' in d_p3: d_p3 = d_p3.replace('re|','') r = dom_parser2.parse_dom(r, d_p1, {d_p2: re.compile('%s' % d_p3)}) else: r = dom_parser2.parse_dom(r, d_p1, {d_p2: d_p3}) if r: dirlst = [] for i in r: name = re.findall(r'%s' % title_pattern,i.content)[0] name = kodi.sortX(i[1].encode('utf-8')) url = re.findall(r'%s' % url_pattern,i.content)[0] if icon_pattern: iconimage = re.findall(r'%s' % icon_pattern,i.content)[0] elif site: iconimage = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/icon.png' % site)) else: iconimage = xbmc.translatePath(os.path.join('special://home/addons/' + kodi.get_id(), 'icon.png')) fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/fanart.jpg' % site)) if parse: link,tag = parse.split('|SPLIT|') if tag == 'url': url = urlparse.urljoin(link,url) elif tag == 'icon': iconimage = urlparse.urljoin(link,iconimage) else: url = urlparse.urljoin(link,url) iconimage = urlparse.urljoin(link,iconimage) if site: url += '|SPLIT|' + site if type == 'dir': dirlst.append({'name': kodi.giveColor(name,'white'), 'url': url, 'mode': mode, 'icon': iconimage, 'fanart': fanarts, 'description': name, 'folder': True}) else: dirlst.append({'name': kodi.giveColor(name,'white'), 'url': url, 'mode': mode, 'icon': iconimage, 'fanart': fanarts, 'description': name, 'folder': False}) if dirlst: if stopend: buildDirectory(dirlst, stopend=True, isVideo=isVideo, isDownloadable=isDownloadable) else: buildDirectory(dirlst, isVideo=isVideo, isDownloadable=isDownloadable)
def menu(): lover.checkupdates() try: url = urlparse.urljoin(base_domain,'pick-your-poison') c = client.request(url) r = dom_parser2.parse_dom(c, 'div', {'class': ['taglist','tags-links']}) r = dom_parser2.parse_dom(r, 'span', {'class': 'tooltip-wrapper'}) r = [(i.attrs['data-tooltip'], \ dom_parser2.parse_dom(i, 'a')) \ for i in r if i] r = [(i[1][0].attrs['href'], i[1][0].content, i[0]) for i in r if i] if ( not r ): log_utils.log('Scraping Error in %s:: Content of request: %s' % (base_name.title(),str(c)), log_utils.LOGERROR) kodi.notify(msg='Scraping Error: Info Added To Log File', duration=6000, sound=True) quit() except Exception as e: log_utils.log('Fatal Error in %s:: Error: %s' % (base_name.title(),str(e)), log_utils.LOGERROR) kodi.notify(msg='Fatal Error', duration=4000, sound=True) quit() dirlst = [] for i in r: try: name = kodi.sortX(i[1].encode('utf-8')) icon = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/icon.png' % filename)) fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': i[0], 'mode': content_mode, 'icon': icon, 'fanart': fanarts, 'description': i[2], 'folder': True}) except Exception as e: log_utils.log('Error adding menu item %s in %s:: Error: %s' % (i[1].title(),base_name.title(),str(e)), log_utils.LOGERROR) if dirlst: buildDirectory(dirlst) else: kodi.notify(msg='No Menu Items Found') quit()