# -*- coding: utf-8 -*- import re import urllib import urlparse from core import httptools from core import scrapertools from core.item import Item from platformcode import config, logger def mainlist(item): logger.info() itemlist = [] config.set_setting("url_error", False, "cumlouder") itemlist.append(item.clone(title="Últimos videos", action="videos", url="https://www.cumlouder.com/")) itemlist.append(item.clone(title="Categorias", action="categorias", url="https://www.cumlouder.com/categories/")) itemlist.append(item.clone(title="Pornstars", action="pornstars_list", url="https://www.cumlouder.com/girls/")) itemlist.append(item.clone(title="Buscar", action="search", url="https://www.cumlouder.com/search?q=%s")) return itemlist def search(item, texto): logger.info() item.url = item.url % texto item.action = "videos" try: return videos(item) except: import traceback logger.error(traceback.format_exc()) return [] def pornstars_list(item): logger.info() itemlist = [] for letra in "abcdefghijklmnopqrstuvwxyz": itemlist.append(item.clone(title=letra.upper(), url=urlparse.urljoin(item.url, letra), action="pornstars")) return itemlist def pornstars(item): logger.info() itemlist = [] data = get_data(item.url) patron = '[^<]+' patron += 'Next[^<]+', re.DOTALL).findall(data) if matches: if "go.php?" in matches[0]: url = urllib.unquote(matches[0].split("/go.php?u=")[1].split("&")[0]) else: url = urlparse.urljoin(item.url, matches[0]) itemlist.append(item.clone(title="Pagina Siguiente", url=url)) return itemlist def categorias(item): logger.info() itemlist = [] data = get_data(item.url) # logger.info("channels.cumlouder data="+data) patron = '[^<]+' patron += '([^"]+)' matches = re.compile(patron, re.DOTALL).findall(data) for url, title, thumbnail, count in matches: if "go.php?" in url: url = urllib.unquote(url.split("/go.php?u=")[1].split("&")[0]) thumbnail = urllib.unquote(thumbnail.split("/go.php?u=")[1].split("&")[0]) else: url = urlparse.urljoin(item.url, url) if not thumbnail.startswith("https"): thumbnail = "https:%s" % thumbnail itemlist.append( item.clone(title="%s (%s videos)" % (title, count), url=url, action="videos", thumbnail=thumbnail)) # Paginador matches = re.compile('Next[^<]+', re.DOTALL).findall(data) if matches: if "go.php?" in matches[0]: url = urllib.unquote(matches[0].split("/go.php?u=")[1].split("&")[0]) else: url = urlparse.urljoin(item.url, matches[0]) itemlist.append(item.clone(title="Pagina Siguiente", url=url)) return itemlist def videos(item): logger.info() itemlist = [] data = get_data(item.url) patron = ' ([^<]+)' matches = re.compile(patron, re.DOTALL).findall(data) for url, title, thumbnail, duration in matches: if "go.php?" in url: url = urllib.unquote(url.split("/go.php?u=")[1].split("&")[0]) thumbnail = urllib.unquote(thumbnail.split("/go.php?u=")[1].split("&")[0]) else: url = urlparse.urljoin("https://www.cumlouder.com", url) if not thumbnail.startswith("https"): thumbnail = "https:%s" % thumbnail itemlist.append(item.clone(title="%s (%s)" % (title, duration), url=urlparse.urljoin(item.url, url), action="play", thumbnail=thumbnail, contentThumbnail=thumbnail, contentType="movie", contentTitle=title)) # Paginador nextpage = scrapertools.find_single_match(data, '