def content(url, searched=False): try: c = client.request(url) r = re.findall('<div class="item"\s+style="width:.+?">(.*?)/span>', c, flags=re.DOTALL) 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 = re.findall('alt="(.*?)"', i, flags=re.DOTALL)[0] url2 = re.findall('<a href="(.*?)"', i, flags=re.DOTALL)[0] if not base_domain in url: url = base_domain + url icon = re.findall('<img src="(.*?)"', i, flags=re.DOTALL)[0] fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': url2, 'mode': player_mode, 'icon': icon, 'fanart': fanarts, 'folder': False }) except Exception as e: log_utils.log( 'Error adding menu item. %s:: Error: %s' % (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 = '''<a\s*href=['"]([^'"]+)['"]\s*class="next"''' 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, 'div', {'id': re.compile('video_\d+')}) 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 = [(urlparse.urljoin(base_domain, i[0][0].attrs['href']), i[0][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')) 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=['"]([^'"]+)"\s*class="no-page">Next''' parse = base_domain helper.scraper().get_next_page(content_mode, url, search_pattern, filename, parse)
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: headers = {'User-Agent' : 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'} c = requests.get(url,headers=headers).text soup = BeautifulSoup(c,'html.parser') r = soup.find_all('div', class_={'list__item'}) #dialog.ok("R",str(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 = i.a['title'] media_url = i.a['href'] icon = i.img['src'] if searched: description = 'Result provided by %s' % base_name.title() else: description = name if not 'http' in icon: icon='http:'+icon if not base_domain in media_url: media_url = base_domain + media_url fanarts = translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': media_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=False, 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 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) soup = BeautifulSoup(c, 'html.parser') r = soup.find_all('div', class_={'item'}) 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 = i.img['alt'] url2 = i.a['href'] icon = i.img['src'] if not base_domain in url: url = base_domain + url fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': url2, 'mode': player_mode, 'icon': icon, 'fanart': fanarts, 'folder': False }) except Exception as e: log_utils.log( 'Error adding menu item. %s:: Error: %s' % (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 = '''<a\s*href=['"]([^'"]+)['"]\s*class="next"''' parse = base_domain helper.scraper().get_next_page(content_mode, url, search_pattern, filename, parse)
def content(url,searched=False): try: c = client.request(url) r = dom_parser2.parse_dom(c, 'div', {'class': 'content-index'}) r = [(dom_parser2.parse_dom(i, 'a', req=['href','title']), \ dom_parser2.parse_dom(i, 'span', {'class': 'left'}), \ dom_parser2.parse_dom(i, 'img', req='data-src')) \ for i in r if i] r = [(i[0][0].attrs['href'], i[0][0].attrs['title'], \ i[1][0].content.split('<')[0], i[2][0].attrs['data-src']) 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 = kodi.sortX(i[1].encode('utf-8')).title() name = name.title() + ' - [ %s ]' % i[2] 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: parse = re.findall('''<li\s*class=['"]current['"]><a href=['"]([^'"]+)['"]>''',c)[0] search_pattern = '''<a\s*href=['"]([^'"]+)['"]\s*class=['"]next['"]>NEXT</a>''' 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(): url = urlparse.urljoin(base_domain,'0') content_type = 'dir' title_pattern = '''<strong>([^<]+)''' url_pattern = '''href="([^"]+)''' icon_pattern = None d_p1 = 'li' d_p2 = 'class' d_p3 = '' parse = '%s|SPLIT|url' % base_domain cache_time = 4 helper.scraper().get_list(content_mode,content_type,url,title_pattern,url_pattern,icon_pattern,filename,d_p1,d_p2,d_p3,parse,cache_time)
def content(url,searched=False): try: c = client.request(url) r = dom_parser2.parse_dom(c, 'div', {'class': ['brick','zoe-grid']}) r = [(dom_parser2.parse_dom(i, 'a', req=['class','href']), \ dom_parser2.parse_dom(i, 'p', {'class': ['r_year','text-muted']}), \ dom_parser2.parse_dom(i, 'img', req='data-src'), \ dom_parser2.parse_dom(i, 'p', {'class': 'description'})) \ for i in r if i] r = [(i[0][-1].attrs['href'], i[0][-1].content, i[1][0].content if i[1] else 'Unknown', \ i[2][0].attrs['data-src'], i[3][0].content if i[3] else 'Unknown') 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 = kodi.sortX(i[1].encode('utf-8')) name = name.title() + ' - [ %s ]' % i[2] 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': i[4], '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 = '''<link\s*rel=['"]next['"]\s*href=['"]([^'"]+)''' parse = base_domain helper.scraper().get_next_page(content_mode,url,search_pattern,filename)
def content(url,searched=False): try: c = client.request(url) r = dom_parser2.parse_dom(c, 'a') r = [i for i in r if '<div class="info_r">' in i.content] r = [(i.attrs['href'], \ dom_parser2.parse_dom(i, 'strong', {'class': 'title'}), \ dom_parser2.parse_dom(i, 'span', {'class': 'dur'}), \ dom_parser2.parse_dom(i, 'img', req='src')) \ for i in r if i] r = [(i[0], i[1][0].content, i[2][0].content, i[3][0].attrs['src']) 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 = kodi.sortX(i[1].encode('utf-8')) name = name.title() + ' - [ %s ]' % i[2] 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[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 = '''<a\s*href=['"]([^'"]+)['"]\s*title=['"]Next\s*Page['"]>Next<\/a>''' parse = base_domain helper.scraper().get_next_page(content_mode,url,search_pattern,filename,parse)
def content(url,searched=False): import xbmcgui dialog = xbmcgui.Dialog() try: c = client.request(url) r = re.findall('<ul id="videoCategory"(.*?)</ul>',c,flags=re.DOTALL)[0] b = re.findall('<div class="img fade fadeUp videoPreviewBg">(.*?)</div>',r,flags=re.DOTALL) 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 b: try: name = re.findall('title="(.*?)"',i,flags=re.DOTALL)[0] if searched: description = 'Result provided by %s' % base_name.title() else: description = name content_url = re.findall('<a href="(.*?)"',i,flags=re.DOTALL)[0] if not base_domain in content_url: content_url = base_domain + content_url icon = re.findall('data-thumb_url\s+=\s+"(.*?)"',i,flags=re.DOTALL)[0] 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 = '''\<link\s*rel\=['"]next['"]\s*href\=['"]([^'"]+)''' parse = base_domain helper.scraper().get_next_page(content_mode,url,search_pattern,filename) 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) soup = BeautifulSoup(c, 'html5lib') r = soup.find_all('div', class_={'thumb'}) 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 = i.h3.text.strip() icon = i.img['data-src'] url2 = i.a['href'] if not base_domain in url2: url2 = base_domain+url2 if not base_domain in icon: icon = base_domain+icon fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': url2, 'mode': player_mode, 'icon': icon, 'fanart': fanarts, 'description': name, 'folder': False}) except Exception as e: log_utils.log('Error: %s' % 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=['"]([^'"]+)['"]>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): if not base_domain in url: url = base_domain + url try: headers = {'User-Agent': 'Google Chrome Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'} c = client.request(url, headers = headers) r = re.findall('<div class="video-item">(.*?)</select>',c, flags=re.DOTALL) 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 = re.findall("""<a href='.+?'>(.*?)</a>""",i, flags=re.DOTALL)[0] url2 = re.findall('href="(.*?)"',i, flags=re.DOTALL)[0] if not base_domain in url2: url2 = base_domain + url2 icon = re.findall('data-original="(.*?)"',i, flags=re.DOTALL)[0] if not 'https' in icon: icon = 'https:' + icon fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': url2, 'mode': player_mode, 'icon': icon, 'fanart': fanarts, '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 = '''\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: scraper = cfscrape.create_scraper() c = scraper.get(url).content r = dom_parser2.parse_dom(c, 'div', {'class': 'video'}) r = [(dom_parser2.parse_dom(i, 'a'),\ dom_parser2.parse_dom(i, 'img', req=['src','width','height'])) \ for i in r if i] r = [(i[0][0].attrs['href'],i[0][0].attrs['title'],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 = i[1].title() 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': i[2], '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 = '''rel\=['"]next['"]\s*href=['"]([^'"]+)\s*''' helper.scraper().get_next_page(content_mode,url,search_pattern,filename)
def content(url,searched=False): try: 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_all('li', class_={'TPostMv'}) 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 = i.find('div', class_={'Title'}).text url2 = i.a['href'] icon = i.img['src'] #fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': url2, 'mode': player_mode, 'icon': icon, 'fanart': 'dd', '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 rel=['"]next['"]\s*href=['"]([^'"]+)''' helper.scraper().get_next_page(content_mode,url,search_pattern,filename) 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: if url == '': url = urljoin(base_domain,'genres/p**n-movies/') link = requests.get(url,headers=headers).text soup = BeautifulSoup(link, 'html.parser') r = soup.find_all('article', class_={'item movies'}) 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: title = i.img['alt'] mediaurl = i.h3.a['href'] icon = i.img['src'] fanarts = translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': title, 'url': mediaurl, 'mode': player_mode, 'icon': icon, 'fanart': fanarts, 'description': 'No Desc', '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 rel=['"]next['"]\s*href=['"]([^'"]+)''' helper.scraper().get_next_page(content_mode,url,search_pattern,filename) 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): if not base_domain in url: url = base_domain + url try: c = client.request(url) r = re.findall('<div class="preloadLine">(.*?)<span class="video_count">',c, flags=re.DOTALL) 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 = re.findall('alt="(.*?)"',i, flags=re.DOTALL)[0] url2 = re.findall('<a.+?href="(.*?)"',i, flags=re.DOTALL)[0] if not base_domain in url2: url2 = base_domain + url2 icon = re.findall('data-thumb_url\s* =\s*"(.*?)"',i, flags=re.DOTALL)[0] desc = re.findall('<span class="duration">(.*?)</span>',i, flags=re.DOTALL)[0].strip() fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': url2, 'mode': player_mode, 'icon': icon, 'fanart': fanarts, 'description': desc, '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 = '''<li id="wp_navNext".+?\s*<a\s*href=['"]([^'"]+)['"]\s*>''' parse = base_domain helper.scraper().get_next_page(content_mode,url,search_pattern,filename) 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 = re.findall('class="thumb_box">(.*?)</div>',c,flags=re.DOTALL) 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: title = re.findall('title="(.*?)"',i)[0] url = re.findall('<a href="(.*?)"',i)[0] icon = re.findall('data-thumb="(.*?)"',i)[0] fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': title, 'url': url, 'mode': player_mode, 'icon': icon, 'fanart': fanarts, 'folder': False}) except: pass 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) 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): 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 content(url,searched=False): try: c = client.request(url) r = re.findall('<div\s+class="thumb\s+video\s+medium"(.*?)</a>',c,flags=re.DOTALL) 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 = re.findall('alt="(.*?)"',i,flags=re.DOTALL)[0] icon = re.findall('<img class="static"\s+src="(.*?)"',i,flags=re.DOTALL)[0] url2 = re.findall('<a\s+href="(.*?)"',i,flags=re.DOTALL)[0] fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': url2, 'mode': player_mode, 'icon': icon, 'fanart': fanarts,'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 = '''a\s*href=['"]([^'"]+)['"]\s*class=['"]pop['"]\s*rel=['"]\d+['"]>NEXT''' parse = base_domain helper.scraper().get_next_page(content_mode,url,search_pattern,filename,parse)
def content(url): try: if not url: url = 'https://xxxmoviestream.com/?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.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: 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 content(url,searched=False): try: c = client.request(url) match = re.findall ('<div class="6u">(.*?)</section>', c, flags=re.DOTALL) 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 items in match: try: name = re.findall ('alt="(.*?)"', items, flags=re.DOTALL)[0] name = name.title() url2 = re.findall ('<a href="(.*?)"',items, flags=re.DOTALL)[0] icon = re.findall ('''<div onmouseleave=.*?"(.*?)"''',items, flags=re.DOTALL)[0] length = re.findall ('<span class="icon fa-clock-o meta-data">(.*?)</span>',items, flags=re.DOTALL)[0] if not 'https:' in url2: url2 = 'https://hqporner.com' + url2 if not 'https:' in icon: icon = 'https:' + icon desc = '[COLOR yellow]Video Length :: [/COLOR]' + length fanarts = xbmc.translatePath(os.path.join('special://home/addons/script.wankbank.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({'name': name, 'url': url2, 'mode': player_mode, 'icon': icon, 'fanart': fanarts, 'description': desc, 'folder': False}) except Exception as e: log_utils.log('Error adding menu item. %s:: Error: %s' % (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 = '''<a\s*href=['"]([^'"]+)['"]\s*class=['"]button\s*mobile-pagi pagi-btn['"]>Next<\/a>''' parse = base_domain helper.scraper().get_next_page(content_mode,url,search_pattern,filename,parse)
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: 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': 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 content(url, searched=False): dialog.ok("URL", str(url)) try: c = client.request(url) r = re.findall( '<div class="items\s+clearfix">(.*?)<div\s+class="spot-container">', c, flags=re.DOTALL)[0] pattern = r'''<a\s+href=['"]([^'"]+)['"].+?\s.+url\((.*?)\).+.\s+.+\s+.+\s+.+\s+.+\s+.+\s+.+.+?.\s+.+\s+.+>(.*?)<''' r = re.findall(pattern, 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 url2, icon, name in r: try: fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': name, 'url': url2, 'mode': player_mode, 'icon': icon, 'fanart': fanarts, '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) 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': 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]] 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 = 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)
def content(url, searched=False): try: c = client.request(url) for_np = c r = dom_parser2.parse_dom(c, 'li', req='data-thumbIndexes') r = [(dom_parser2.parse_dom(i, 'a', {'class': 'title'}), \ dom_parser2.parse_dom(i, 'time'), \ i.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]) 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 ]' % (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 try: pattern = r'''((?:http)([^'"]+)(?:jpg|png|webp))([^'"]*)''' icon = re.search(pattern, i[3]) icon = icon.group(1) except: icon = xbmc.translatePath( os.path.join( 'special://home/addons/script.xxxodus.artwork', 'resources/art/%s/icon.png' % filename)) 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 = '''\<a\s*href\=['"]([^']+)['"]\>Next''' pattern = r'''((?:http|https)(\:\/\/)(?:www\.)(pornhd\.com\/category\/)([^\/?]+))''' u = re.search(pattern, url) u = u.group(0) pattern = '''li\s*class\=\"next\s*\"\>\s*\<span class\=\"icon\s*jsFilter\s*js\-link\"\s*data-query\-key\=\"page"\s*data\-query\-value\=\"(\d+)\"\>''' np = re.findall(pattern, for_np)[0] url = u + '?page=%s|%s' % (np, 'GOT_URL') helper.scraper().get_next_page(content_mode, url, search_pattern, filename) 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, 'td', {'width': '25%'}) r = [(dom_parser2.parse_dom(i, 'a', req='href'), \ dom_parser2.parse_dom(i, 'img')) for i in r] r = [(i[0][0].attrs['href'].replace('/content.fcgi?',''), i[0][0].content, urlparse.urljoin(base_domain,i[1][0].attrs['src'])) for i in r \ if 'http://www.girlfriendvideos.com' in i[0][0].attrs['href']] 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 = kodi.sortX(i[1].encode('utf-8')).title() 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[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\s*Page<\/a>''' parse = re.sub('\d+.php$', '', url) 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): url = client.request(url, output='geturl') r = client.request(url) r = dom_parser2.parse_dom(r, '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] 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 comics(url=None): reload = False try: if (not url): url = urlparse.urljoin(base_domain, 'comix/') c = client.request(url) try: r = dom_parser2.parse_dom(c, 'div', {'class': 'gallery'}) r = dom_parser2.parse_dom(r, 'a', req='href') r = [i for i in r if 'login' not in i.attrs['href']] r = [(i.attrs['href'], \ dom_parser2.parse_dom(i, 'img', req='data-src'), \ dom_parser2.parse_dom(i, 'span', {'class': 'title-text'})) \ for i in r if i] r = [(urlparse.urljoin(base_domain, i[0]), i[2][0].content, i[1][0].attrs['data-src']) for i in r if i] reload = True except: r = dom_parser2.parse_dom(c, 'div', {'class': 'gallery'}) r = dom_parser2.parse_dom(r, 'a', req='href') r = [i for i in r if 'login' not in i.attrs['href']] r = [(i.attrs['href'], \ dom_parser2.parse_dom(i, 'img', req='data-src')) \ for i in r if i] r = [(urlparse.urljoin(base_domain, i[0]), i[1][0].attrs['data-src']) for i in r if i] reload = False 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 = [] if reload: 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': comics_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) else: num = 1 for i in r: try: name = 'Page %s' % str(num) 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': pic_v_mode, 'icon': i[1], 'fanart': fanarts, '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) num += 1 if dirlst: buildDirectory(dirlst, stopend=True, pictures=True) search_pattern = '''<span\s*class=['"]next['"]>\s*<a\s*href=['"]([^'"]+)['"]>''' parse = base_domain helper.scraper().get_next_page(pic_men_mode, url, search_pattern, filename, parse, pictures=True) else: kodi.notify(msg='No Menu Items Found') quit()
def content(url, searched=False): try: c = client.request(url) soup = BeautifulSoup(c, 'html5lib') content = soup.find('div', id={'vidresults'}) if (not content) 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 a in content.find_all('a'): try: title = a['title'] url = a['href'] if not base_domain in url: url = base_domain + url try: icon = a.img['src'] except: icon = a.img['data-src'] fanarts = xbmc.translatePath( os.path.join('special://home/addons/script.xxxodus.artwork', 'resources/art/%s/fanart.jpg' % filename)) dirlst.append({ 'name': title, 'url': url, 'mode': player_mode, 'icon': icon, 'fanart': fanarts, 'description': title, '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=['"]+([^'"]+)['"]\s+title=['"]Next''' parse = base_domain helper.scraper().get_next_page(content_mode, url, search_pattern, filename, parse)