From 86e4fb1abf9c6c0eb7cebad1ddf3be654d456faf Mon Sep 17 00:00:00 2001 From: w1s0 <45774861+w1s0@users.noreply.github.com> Date: Tue, 11 Dec 2018 00:36:05 +0100 Subject: [PATCH 1/5] =?UTF-8?q?fix=20p=C3=A1gina=20siguiente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fixed página siguiente para -listado alfabetico -listado por genero Antes en listado alfabetico se repetia la url + url de la página siguiente por lo que no mostraba la página siguiente. (not working) scrapedurl = item.url + siguiente (fixed) scrapedurl = siguiente Antes en listado por genero no mostraba la página siguiente por cambios en la web (fixed) Resultados Siguientes --- plugin.video.alfa/channels/jkanime.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin.video.alfa/channels/jkanime.py b/plugin.video.alfa/channels/jkanime.py index d538fac6..f9af7b5c 100755 --- a/plugin.video.alfa/channels/jkanime.py +++ b/plugin.video.alfa/channels/jkanime.py @@ -108,8 +108,8 @@ def series(item): plot=scrapedplot, show=scrapedtitle)) tmdb.set_infoLabels(itemlist) try: - siguiente = scrapertools.find_single_match(data, 'Resultados Siguientes') - scrapedurl = item.url + siguiente + siguiente = scrapertools.find_single_match(data, ' Date: Wed, 12 Dec 2018 14:10:57 +0100 Subject: [PATCH 2/5] =?UTF-8?q?Desactivaci=C3=B3n=20de=20reglas=20de=20mig?= =?UTF-8?q?raci=C3=B3n=20de=20canales?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin.video.alfa/channels/newpct1.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.video.alfa/channels/newpct1.json b/plugin.video.alfa/channels/newpct1.json index ec77f3fa..5cf00d41 100644 --- a/plugin.video.alfa/channels/newpct1.json +++ b/plugin.video.alfa/channels/newpct1.json @@ -100,7 +100,7 @@ "id": "intervenidos_channels_list", "type": "text", "label": "Lista de canales y clones de NewPct1 intervenidos y orden de sustitución de URLs", - "default": "('0', 'canal_org', 'canal_des', 'url_org', 'url_des', 'patron1', 'patron2', 'patron3', 'patron4', 'patron5', 'content_inc', 'content_exc', 'ow_force'), ('0', 'mejortorrent', 'mejortorrent1', 'http://www.mejortorrent.com/', 'https://mejortorrent1.com/', '(http.?:\/\/.*?\/)', 'http.?:\/\/.*?\/.*?-torrent.?-[^-]+-(?:[^-]+-)([^0-9]+-)', 'http.?:\/\/.*?\/.*?-torrent.?-[^-]+-(?:[^-]+-)[^0-9]+-\\d+-(Temporada-).html', 'http.?:\/\/.*?\/.*?-torrent.?-[^-]+-(?:[^-]+-)[^0-9]+-(\\d+)-', '', 'tvshow, season', '', 'force'), ('0', 'mejortorrent', 'mejortorrent1', 'http://www.mejortorrent.com/', 'https://mejortorrent1.com/', '(http.?:\/\/.*?\/)', 'http.?:\/\/.*?\/.*?-torrent.?-[^-]+-([^.]+).html', '', '', '', 'movie', '', 'force'), ('0', 'mejortorrent', 'mejortorrent', 'http://www.mejortorrent.com/', 'http://www.mejortorrent.org/', '', '', '', '', '', '*', '', 'force'), ('1', 'plusdede', 'megadede', 'https://www.plusdede.com', 'https://www.megadede.com', '', '', '', '', '', '*', '', 'auto'), ('1', 'newpct1', 'descargas2020', 'http://www.newpct1.com', 'http://descargas2020.com', '', '', '', '', '', '*', '', 'force')", + "default": "('0', 'canal_org', 'canal_des', 'url_org', 'url_des', 'patron1', 'patron2', 'patron3', 'patron4', 'patron5', 'content_inc', 'content_exc', 'ow_force'), ('0', 'canal_org', 'canal_des', 'url_org', 'url_des', 'patron1', 'patron2', 'patron3', 'patron4', 'patron5', 'content_inc', 'content_exc', 'ow_force')", "enabled": true, "visible": false }, From 79c8029be38ca9079886b70bbe2d4ca8cf7383ad Mon Sep 17 00:00:00 2001 From: Kingbox <37674310+lopezvg@users.noreply.github.com> Date: Wed, 12 Dec 2018 14:11:35 +0100 Subject: [PATCH 3/5] =?UTF-8?q?Videolibrarytools:=20a=C3=B1adir=20mensaje?= =?UTF-8?q?=20de=20progreso=20en=20el=20cacheo=20de=20enlaces?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin.video.alfa/core/videolibrarytools.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugin.video.alfa/core/videolibrarytools.py b/plugin.video.alfa/core/videolibrarytools.py index db85bc71..e062b43a 100644 --- a/plugin.video.alfa/core/videolibrarytools.py +++ b/plugin.video.alfa/core/videolibrarytools.py @@ -415,9 +415,11 @@ def save_episodes(path, episodelist, serie, silent=False, overwrite=True): season_episode = scrapertools.get_season_and_episode(e.title) # Si se ha marcado la opción de url de emergencia, se añade ésta a cada episodio después de haber ejecutado Findvideos del canal - if e.emergency_urls and isinstance(e.emergency_urls, dict): del e.emergency_urls #Borramos trazas anterioires + if e.emergency_urls and isinstance(e.emergency_urls, dict): del e.emergency_urls #Borramos trazas anteriores json_path = filetools.join(path, ("%s [%s].json" % (season_episode, e.channel)).lower()) #Path del .json del episodio if emergency_urls_stat == 1 and not e.emergency_urls and e.contentType == 'episode': #Guardamos urls de emergencia? + if not silent: + p_dialog.update(0, 'Cacheando enlaces y archivos .torrent...', e.title) #progress dialog if json_path in ficheros: #Si existe el .json sacamos de ahí las urls if overwrite: #pero solo si se se sobrescriben los .json json_epi = Item().fromjson(filetools.read(json_path)) #Leemos el .json @@ -433,6 +435,8 @@ def save_episodes(path, episodelist, serie, silent=False, overwrite=True): if e.emergency_urls: del e.emergency_urls emergency_urls_succ = True #... es un éxito y vamos a marcar el .nfo elif emergency_urls_stat == 3 and e.contentType == 'episode': #Actualizamos urls de emergencia? + if not silent: + p_dialog.update(0, 'Cacheando enlaces y archivos .torrent...', e.title) #progress dialog e = emergency_urls(e, channel, json_path) #generamos las urls if e.emergency_urls: #Si ya tenemos urls... emergency_urls_succ = True #... es un éxito y vamos a marcar el .nfo From 82275750191fec22065263bcd539f6ca1906660a Mon Sep 17 00:00:00 2001 From: Intel1 Date: Wed, 12 Dec 2018 09:00:43 -0500 Subject: [PATCH 4/5] Actualizados html: mediaserver, para que tome los .pyc en la version exe para windows anitoostv: fix ciberpeliculashd: fix enlaces cine24h: fix trailers descargacineclasico: agregado a la busqueda global erotik: fix enlaces filesmonster_catalogue, freecambay, hentaiespanol: eliminados, web no existe pelis24: fix trailers pelisplay: fix enlaces serieslan: fix tvpelis: nuevo canal jawcloud: actualizado test_video_exists mystream: nuevo server rutube: nuevo server upvid: cambios cosmeticos --- mediaserver/platformcode/controllers/html.py | 2 +- plugin.video.alfa/addon.xml | 4 +- plugin.video.alfa/channels/anitoonstv.py | 10 +- .../channels/ciberpeliculashd.py | 6 +- plugin.video.alfa/channels/cine24h.json | 5 +- plugin.video.alfa/channels/cine24h.py | 8 +- .../channels/descargacineclasico.json | 10 + plugin.video.alfa/channels/erotik.py | 68 +-- .../channels/filesmonster_catalogue.json | 22 - .../channels/filesmonster_catalogue.py | 397 ------------------ plugin.video.alfa/channels/freecambay.json | 21 - plugin.video.alfa/channels/freecambay.py | 261 ------------ plugin.video.alfa/channels/hdfilmologia.json | 18 +- plugin.video.alfa/channels/hdfilmologia.py | 65 +-- .../channels/hentaienespanol.json | 22 - plugin.video.alfa/channels/hentaienespanol.py | 63 --- plugin.video.alfa/channels/pelis24.json | 18 +- plugin.video.alfa/channels/pelis24.py | 67 ++- plugin.video.alfa/channels/pelisplay.json | 12 +- plugin.video.alfa/channels/pelisplay.py | 175 ++++---- plugin.video.alfa/channels/serieslan.py | 44 +- plugin.video.alfa/channels/tvpelis.json | 77 ++++ plugin.video.alfa/channels/tvpelis.py | 374 +++++++++++++++++ plugin.video.alfa/fanart-xmas.jpg | Bin 0 -> 782357 bytes plugin.video.alfa/fanart.jpg | Bin 1001865 -> 0 bytes plugin.video.alfa/lib/unshortenit.py | 2 +- plugin.video.alfa/logo-n.jpg | Bin 0 -> 83029 bytes .../platformcode/platformtools.py | 2 +- plugin.video.alfa/servers/jawcloud.json | 2 +- plugin.video.alfa/servers/jawcloud.py | 3 + plugin.video.alfa/servers/mystream.json | 42 ++ plugin.video.alfa/servers/mystream.py | 34 ++ plugin.video.alfa/servers/rutube.json | 42 ++ plugin.video.alfa/servers/rutube.py | 46 ++ plugin.video.alfa/servers/upvid.py | 6 +- 35 files changed, 899 insertions(+), 1029 deletions(-) delete mode 100755 plugin.video.alfa/channels/filesmonster_catalogue.json delete mode 100755 plugin.video.alfa/channels/filesmonster_catalogue.py delete mode 100755 plugin.video.alfa/channels/freecambay.json delete mode 100755 plugin.video.alfa/channels/freecambay.py delete mode 100755 plugin.video.alfa/channels/hentaienespanol.json delete mode 100755 plugin.video.alfa/channels/hentaienespanol.py create mode 100644 plugin.video.alfa/channels/tvpelis.json create mode 100644 plugin.video.alfa/channels/tvpelis.py create mode 100644 plugin.video.alfa/fanart-xmas.jpg delete mode 100755 plugin.video.alfa/fanart.jpg create mode 100644 plugin.video.alfa/logo-n.jpg create mode 100644 plugin.video.alfa/servers/mystream.json create mode 100644 plugin.video.alfa/servers/mystream.py create mode 100644 plugin.video.alfa/servers/rutube.json create mode 100644 plugin.video.alfa/servers/rutube.py diff --git a/mediaserver/platformcode/controllers/html.py b/mediaserver/platformcode/controllers/html.py index 83a6b8b1..f59d029b 100644 --- a/mediaserver/platformcode/controllers/html.py +++ b/mediaserver/platformcode/controllers/html.py @@ -626,7 +626,7 @@ class platform(Platformtools): # Obtenemos el canal desde donde se ha echo la llamada y cargamos los settings disponibles para ese canal if not channelpath: channelpath = inspect.currentframe().f_back.f_back.f_code.co_filename - channelname = os.path.basename(channelpath).replace(".py", "") + channelname = os.path.basename(channelpath).split(".")[0] ch_type = os.path.basename(os.path.dirname(channelpath)) # Si no tenemos list_controls, hay que sacarlos del json del canal diff --git a/plugin.video.alfa/addon.xml b/plugin.video.alfa/addon.xml index b8bd9379..c96a0e4d 100755 --- a/plugin.video.alfa/addon.xml +++ b/plugin.video.alfa/addon.xml @@ -10,8 +10,8 @@ Navega con Kodi por páginas web. - logo-cumple.png - fanart1.jpg + logo-n.jpg + fanart-xmas.jpg resources/media/themes/ss/1.jpg resources/media/themes/ss/2.jpg resources/media/themes/ss/3.jpg diff --git a/plugin.video.alfa/channels/anitoonstv.py b/plugin.video.alfa/channels/anitoonstv.py index 46f2f177..ac4e623c 100644 --- a/plugin.video.alfa/channels/anitoonstv.py +++ b/plugin.video.alfa/channels/anitoonstv.py @@ -32,11 +32,11 @@ def mainlist(item): itemlist = list() - itemlist.append(Item(channel=item.channel, action="lista", title="Series", url=host+"/lista-de-anime.php", + itemlist.append(Item(channel=item.channel, action="lista", title="Series", contentTitle="Series", url=host+"/lista-de-anime.php", thumbnail=thumb_series, range=[0,19])) - itemlist.append(Item(channel=item.channel, action="lista", title="Películas", url=host+"/catalogo.php?g=&t=peliculas&o=0", + itemlist.append(Item(channel=item.channel, action="lista", title="Películas", contentTitle="Películas", url=host+"/catalogo.php?g=&t=peliculas&o=0", thumbnail=thumb_series, range=[0,19] )) - itemlist.append(Item(channel=item.channel, action="lista", title="Especiales", url=host+"/catalogo.php?g=&t=especiales&o=0", + itemlist.append(Item(channel=item.channel, action="lista", title="Especiales", contentTitle="Especiales", url=host+"/catalogo.php?g=&t=especiales&o=0", thumbnail=thumb_series, range=[0,19])) itemlist.append(Item(channel=item.channel, action="search", title="Buscar", thumbnail=thumb_series, range=[0,19])) @@ -109,14 +109,14 @@ def lista(item): context2 = autoplay.context context.extend(context2) scrapedurl=host+scrapedurl - if item.title!="Series": + if item.contentTitle!="Series": itemlist.append(item.clone(title=scrapedtitle, contentTitle=show,url=scrapedurl, thumbnail=scrapedthumbnail, action="findvideos", context=context)) else: itemlist.append(item.clone(title=scrapedtitle, contentSerieName=show,url=scrapedurl, plot=scrapedplot, thumbnail=scrapedthumbnail, action="episodios", context=context)) tmdb.set_infoLabels(itemlist, seekTmdb=True) - itemlist.append(Item(channel=item.channel, url=item.url, range=next_page, title='Pagina Siguente >>>', action='lista')) + itemlist.append(Item(channel=item.channel, url=item.url, range=next_page, title='Pagina Siguente >>>', contentTitle=item.title, action='lista')) return itemlist diff --git a/plugin.video.alfa/channels/ciberpeliculashd.py b/plugin.video.alfa/channels/ciberpeliculashd.py index 01184f6a..6921dd39 100644 --- a/plugin.video.alfa/channels/ciberpeliculashd.py +++ b/plugin.video.alfa/channels/ciberpeliculashd.py @@ -232,11 +232,11 @@ def findvideos(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data - url = scrapertools.find_single_match(data, 'iframe-.*?src="([^"]+)') - data = httptools.downloadpage(url).data - patron = '\d+
  • ') - if paginacion: itemlist.append(Item(channel=item.channel, action="lista", title=">> Página Siguiente", - url="http://ero-tik.com/" + paginacion)) - + url=host + "/" + paginacion)) return itemlist def listacategoria(item): logger.info() itemlist = [] - # Descarga la página - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t|\s{2}", "", data) - - # Extrae las entradas de la pagina seleccionada patron = '
  • .*?.img src="([^"]+)".*?alt="([^"]+)".*?>' - matches = re.compile(patron, re.DOTALL).findall(data) itemlist = [] - for scrapedurl, scrapedthumbnail, scrapedtitle in matches: url = urlparse.urljoin(item.url, scrapedurl) thumbnail = urlparse.urljoin(item.url, scrapedthumbnail) title = scrapedtitle.strip() - - # Añade al listado itemlist.append( Item(channel=item.channel, action="play", thumbnail=thumbnail, title=title, fulltitle=title, url=url, viewmode="movie", folder=True)) - paginacion = scrapertools.find_single_match(data, '
  • \d+
  • ') - if paginacion: itemlist.append( Item(channel=item.channel, action="listacategoria", title=">> Página Siguiente", url=paginacion)) - return itemlist def play(item): logger.info() itemlist = [] - # Descarga la página - data = scrapertools.cachePage(item.url) - data = scrapertools.unescape(data) - logger.info(data) - from core import servertools - itemlist.extend(servertools.find_video_items(data=data)) - for videoitem in itemlist: - videoitem.thumbnail = item.thumbnail - videoitem.channel = item.channel - videoitem.action = "play" - videoitem.folder = False - videoitem.title = item.title - + data = httptools.downloadpage(item.url).data + item.url = scrapertools.find_single_match(data, 'Playerholder.*?src="([^"]+)"') + if "tubst.net" in item.url: + url = scrapertools.find_single_match(data, 'itemprop="embedURL" content="([^"]+)') + data = httptools.downloadpage(url).data + url = scrapertools.find_single_match(data, ']*?>', '', value) - - -def mainlist(item): - logger.info() - user = config.get_setting("filesmonsteruser") - itemlist = [] - itemlist.append(Item(channel=item.channel, action="unusualporn", title="Canal unusualporn.net", - thumbnail="http://filesmonster.biz/img/logo.png")) - itemlist.append(Item(channel=item.channel, action="files_monster", title="Canal files-monster.org", - thumbnail="http://files-monster.org/template/static/images/logo.jpg")) - itemlist.append(Item(channel=item.channel, action="filesmonster", title="Canal filesmonster.filesdl.net", - thumbnail="http://filesmonster.biz/img/logo.png")) - if user != '': itemlist.append( - Item(channel=item.channel, action="favoritos", title="Favoritos en filesmonster.com del usuario " + user, - folder=True)) - - return itemlist - - -def filesmonster(item): - logger.info() - - itemlist = [] - itemlist.append(Item(channel=item.channel, action="videos", title="Ultimos vídeos", - thumbnail="http://photosex.biz/imager/w_400/h_400/9f869c6cb63e12f61b58ffac2da822c9.jpg", - url="http://filesmonster.filesdl.net")) - itemlist.append(Item(channel=item.channel, action="categorias", title="Categorias", - thumbnail="http://photosex.biz/imager/w_400/h_500/e48337cd95bbb6c2c372ffa6e71441ac.jpg", - url="http://filesmonster.filesdl.net")) - itemlist.append(Item(channel=item.channel, action="search", title="Buscar en filesmonster.fliesdl.net", - url="http://filesmonster.filesdl.net/posts/search?q=%s")) - return itemlist - - -def unusualporn(item): - logger.info() - - itemlist = [] - itemlist.append(Item(channel=item.channel, action="videos_2", title="Últimos vídeos", url="http://unusualporn.net/", - thumbnail="http://photosex.biz/imager/w_400/h_500/e48337cd95bbb6c2c372ffa6e71441ac.jpg")) - itemlist.append(Item(channel=item.channel, action="categorias_2", title="Categorías", url="http://unusualporn.net/", - thumbnail="http://photosex.biz/imager/w_400/h_500/e48337cd95bbb6c2c372ffa6e71441ac.jpg")) - itemlist.append(Item(channel=item.channel, action="search", title="Buscar en unusualporn", - url="http://unusualporn.net/search/%s")) - return itemlist - - -def files_monster(item): - logger.info() - - itemlist = [] - itemlist.append( - Item(channel=item.channel, action="videos_3", title="Últimos vídeos", url="http://www.files-monster.org/", - thumbnail="http://photosex.biz/imager/w_400/h_500/e48337cd95bbb6c2c372ffa6e71441ac.jpg")) - itemlist.append( - Item(channel=item.channel, action="categorias_3", title="Categorías", url="http://www.files-monster.org/", - thumbnail="http://photosex.biz/imager/w_400/h_500/e48337cd95bbb6c2c372ffa6e71441ac.jpg")) - itemlist.append(Item(channel=item.channel, action="search", title="Buscar en files-monster.org", - url="http://files-monster.org/search?search=%s")) - return itemlist - - -def favoritos(item): - user = config.get_setting("filesmonsteruser") - password = config.get_setting("filesmonsterpassword") - logger.info() - name_file = os.path.splitext(os.path.basename(__file__))[0] - fname = os.path.join(config.get_data_path(), "settings_channels", name_file + "_favoritos.txt") - fa = open(fname, 'a+') - fa.close() - f = open(fname, 'r') - lines = f.readlines() - f.close() - itemlist = [] - post2 = "username=" + user + "&password=" + password - login_url = "http://filesmonster.com/api/public/login" - data1 = scrapertools.cache_page(login_url, post=post2) - partes1 = data1.split('"') - estado = partes1[3] - if estado != 'success': itemlist.append(Item(channel=item.channel, - title="No pudo accederse con tus datos de acceso de Filesmonster.com, introdúcelos en con el apartado figuración. Error: " + estado + data1)) - url_favoritos = "http://filesmonster.com/?favorites=1" - data2 = scrapertools.cache_page(url_favoritos, post=post2) - data2 = scrapertools.find_single_match(data2, 'favorites-table(.*?)pager') - patronvideos = '([^<]+).*?del=([^"]+)"' - matches = re.compile(patronvideos, re.DOTALL).findall(data2) - contador = 0 - for url, title, borrar in matches: - contador = contador + 1 - imagen = '' - for linea in lines: - partes2 = linea.split("@") - parte_url = partes2[0] - parte_imagen = partes2[1] - if (parte_url == url): imagen = parte_imagen.rstrip('\n').rstrip('\r') - - if url.find("?fid=") == -1: - itemlist.append( - Item(channel=item.channel, action="play", server="filesmonster", title=title, fulltitle=item.title, - url=url, thumbnail=imagen, folder=False)) - else: - itemlist.append( - Item(channel=item.channel, action="detail", server="filesmonster", title=title, fulltitle=title, - thumbnail=imagen, url=url, folder=True)) - itemlist.append(Item(channel=item.channel, action="quitar_favorito", - title="(-) quitar de mis favoritos en filesmonster.com", thumbnail=imagen, - url="http://filesmonster.com/?favorites=1&del=" + borrar, plot=borrar)) - itemlist.append(Item(channel=item.channel, title="", folder=True)) - if contador == 0 and estado == 'success': - itemlist.append( - Item(channel=item.channel, title="No tienes ningún favorito, navega por las diferentes fuentes y añádelos")) - return itemlist - - -def quitar_favorito(item): - logger.info() - itemlist = [] - - data = scrapertools.downloadpage(item.url) - itemlist.append(Item(channel=item.channel, action="favoritos", - title="El vídeo ha sido eliminado de tus favoritos, pulsa para volver a tu lista de favoritos")) - - return itemlist - - -def anadir_favorito(item): - logger.info() - name_file = os.path.splitext(os.path.basename(__file__))[0] - fname = os.path.join(config.get_data_path(), "settings_channels", name_file + "_favoritos.txt") - user = config.get_setting("filesmonsteruser") - password = config.get_setting("filesmonsterpassword") - itemlist = [] - post2 = "username=" + user + "&password=" + password - login_url = "http://filesmonster.com/api/public/login" - data1 = scrapertools.cache_page(login_url, post=post2) - if item.plot == 'el archivo': - id1 = item.url.split('?id=') - id = id1[1] - que = "file" - if item.plot == 'la carpeta': - id1 = item.url.split('?fid=') - id = id1[1] - que = "folder" - url = "http://filesmonster.com/ajax/add_to_favorites" - post3 = "username=" + user + "&password=" + password + "&id=" + id + "&obj_type=" + que - data2 = scrapertools.cache_page(url, post=post3) - if data2 == 'Already in Your favorites': itemlist.append(Item(channel=item.channel, action="favoritos", - title="" + item.plot + " ya estaba en tu lista de favoritos (" + user + ") en Filesmonster")) - if data2 != 'You are not logged in' and data2 != 'Already in Your favorites': - itemlist.append(Item(channel=item.channel, action="favoritos", - title="Se ha añadido correctamente " + item.plot + " a tu lista de favoritos (" + user + ") en Filesmonster", - plot=data1 + data2)) - f = open(fname, "a+") - if (item.plot == 'la carpeta'): - ruta = "http://filesmonster.com/folders.php?" - if (item.plot == 'el archivo'): - ruta = "http://filesmonster.com/download.php" - laruta = ruta + item.url - laruta = laruta.replace("http://filesmonster.com/folders.php?http://filesmonster.com/folders.php?", - "http://filesmonster.com/folders.php?") - laruta = laruta.replace("http://filesmonster.com/download.php?http://filesmonster.com/download.php?", - "http://filesmonster.com/download.php?") - f.write(laruta + '@' + item.thumbnail + '\n') - f.close() - if data2 == 'You are not logged in': itemlist.append(Item(channel=item.channel, action="favoritos", - title="No ha sido posible añadir " + item.plot + " a tu lista de favoritos (" + user + " no logueado en Filesmonster)", )) - - return itemlist - - -def categorias(item): - logger.info() - itemlist = [] - - data = scrapertools.downloadpage(item.url) - data = scrapertools.find_single_match(data, - 'Categories (.*?)RSS ') - - patronvideos = '([^<]+)' - - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url, title in matches: - itemlist.append(Item(channel=item.channel, action="videos", title=title, url=url)) - - return itemlist - - -def categorias_2(item): - logger.info() - itemlist = [] - - data = scrapertools.downloadpage(item.url) - - patronvideos = '
  • ([^<]+)
  • ' - - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url, title in matches: - itemlist.append(Item(channel=item.channel, action="videos_2", title=title, url=url)) - - return itemlist - - -def categorias_3(item): - logger.info() - itemlist = [] - - data = scrapertools.downloadpage(item.url) - - patronvideos = '
  • ([^<]+)
  • ' - - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url, title in matches: - itemlist.append(Item(channel=item.channel, action="videos_3", title=title, url=url)) - - return itemlist - - -def search(item, texto): - logger.info("texto:" + texto) - original = item.url - item.url = item.url % texto - try: - if original == 'http://filesmonster.filesdl.net/posts/search?q=%s': - return videos(item) - if original == 'http://unusualporn.net/search/%s': - return videos_2(item) - if original == 'http://files-monster.org/search?search=%s': - return videos_3(item) - # Se captura la excepción, para no interrumpir al buscador global si un canal falla - except: - import sys - for line in sys.exc_info(): - logger.error("%s" % line) - return [] - - -def videos(item): - logger.info() - itemlist = [] - - url = item.url - while url and len(itemlist) < 25: - data = scrapertools.downloadpage(url) - patronvideos = '
    .*?([^<]+).*?.*?
    .*?Next').replace("&", "&") - - # Enlace para la siguiente pagina - if url: - itemlist.append(Item(channel=item.channel, action="videos", title=">> Página Siguiente", url=url)) - - return itemlist - - -def videos_2(item): - logger.info() - itemlist = [] - url_limpia = item.url.split("?")[0] - url = item.url - while url and len(itemlist) < 25: - data = scrapertools.downloadpage(url) - patronvideos = 'data-link="([^"]+)" data-title="([^"]+)" src="([^"]+)" border="0" />'; - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url, title, thumbnail in matches: - itemlist.append(Item(channel=item.channel, action="detail_2", title=title, fulltitle=title, url=url, - thumbnail=thumbnail)) - - url = scrapertools.find_single_match(data, '').replace("&", "&") - - # Enlace para la siguiente pagina - if url: - itemlist.append(Item(channel=item.channel, action="videos_2", title=">> Página Siguiente", url=url)) - - return itemlist - - -def videos_3(item): - logger.info() - itemlist = [] - - url = item.url - url_limpia = item.url.split("?")[0] - while url and len(itemlist) < 25: - data = scrapertools.downloadpage(url) - patronvideos = '.*?' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url, thumbnail, title in matches: - itemlist.append(Item(channel=item.channel, action="detail_2", title=title, fulltitle=title, url=url, - thumbnail=thumbnail)) - - url = scrapertools.find_single_match(data, - '').replace( - "&", "&") - - # Enlace para la siguiente pagina - if url: - itemlist.append( - Item(channel=item.channel, action="videos_3", title=">> Página Siguiente", url=url_limpia + url)) - - return itemlist - - -def detail(item): - logger.info() - itemlist = [] - - data = scrapertools.downloadpage(item.url) - patronvideos = '["|\'](http\://filesmonster.com/download.php\?[^"\']+)["|\']' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - for url in matches: - title = "Archivo %d: %s [filesmonster]" % (len(itemlist) + 1, item.fulltitle) - itemlist.append( - Item(channel=item.channel, action="play", server="filesmonster", title=title, fulltitle=item.fulltitle, - url=url, thumbnail=item.thumbnail, folder=False)) - itemlist.append(Item(channel=item.channel, action="anadir_favorito", - title="(+) Añadir el vídeo a tus favoritos en filesmonster", url=url, - thumbnail=item.thumbnail, plot="el archivo", folder=True)) - itemlist.append(Item(channel=item.channel, title="")); - - patronvideos = '["|\'](http\://filesmonster.com/folders.php\?[^"\']+)["|\']' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - for url in matches: - if not url == item.url: - logger.info(url) - logger.info(item.url) - title = "Carpeta %d: %s [filesmonster]" % (len(itemlist) + 1, item.fulltitle) - itemlist.append(Item(channel=item.channel, action="detail", title=title, fulltitle=item.fulltitle, url=url, - thumbnail=item.thumbnail, folder=True)) - itemlist.append(Item(channel=item.channel, action="anadir_favorito", - title="(+) Añadir la carpeta a tus favoritos en filesmonster", url=url, - thumbnail=item.thumbnail, plot="la carpeta", folder=True)) - itemlist.append(Item(channel=item.channel, title="")); - - return itemlist - - -def detail_2(item): - logger.info() - itemlist = [] - - # descarga la pagina - data = scrapertools.downloadpageGzip(item.url) - data = data.split('Download from Filesmonster') - data = data[0] - # descubre la url - patronvideos = 'href="http://filesmonster.com/download.php(.*?)".(.*?)' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - for match2 in matches: - url = "http://filesmonster.com/download.php" + match2[0] - title = "Archivo %d: %s [filesmonster]" % (len(itemlist) + 1, item.fulltitle) - itemlist.append( - Item(channel=item.channel, action="play", server="filesmonster", title=title, fulltitle=item.fulltitle, - url=url, thumbnail=item.thumbnail, folder=False)) - itemlist.append(Item(channel=item.channel, action="anadir_favorito", - title="(+) Añadir el vídeo a tus favoritos en filesmonster", url=match2[0], - thumbnail=item.thumbnail, plot="el archivo", folder=True)) - itemlist.append(Item(channel=item.channel, title="")); - - patronvideos = '["|\'](http\://filesmonster.com/folders.php\?[^"\']+)["|\']' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - for url in matches: - if not url == item.url: - logger.info(url) - logger.info(item.url) - title = "Carpeta %d: %s [filesmonster]" % (len(itemlist) + 1, item.fulltitle) - itemlist.append(Item(channel=item.channel, action="detail", title=title, fulltitle=item.fulltitle, url=url, - thumbnail=item.thumbnail, folder=True)) - itemlist.append(Item(channel=item.channel, action="anadir_favorito", - title="(+) Añadir la carpeta a tus favoritos en filesmonster", url=url, - thumbnail=item.thumbnail, plot="la carpeta", folder=True)) - itemlist.append(Item(channel=item.channel, title="")); - - return itemlist diff --git a/plugin.video.alfa/channels/freecambay.json b/plugin.video.alfa/channels/freecambay.json deleted file mode 100755 index b27ede33..00000000 --- a/plugin.video.alfa/channels/freecambay.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "freecambay", - "name": "FreeCamBay", - "language": ["*"], - "active": true, - "adult": true, - "thumbnail": "http://i.imgur.com/wuzhOCt.png?1", - "categories": [ - "adult" - ], - "settings": [ - { - "id": "menu_info", - "type": "bool", - "label": "Mostrar menú antes de reproducir con imágenes", - "default": true, - "enabled": true, - "visible": true - } - ] -} \ No newline at end of file diff --git a/plugin.video.alfa/channels/freecambay.py b/plugin.video.alfa/channels/freecambay.py deleted file mode 100755 index f3cde98a..00000000 --- a/plugin.video.alfa/channels/freecambay.py +++ /dev/null @@ -1,261 +0,0 @@ -# -*- coding: utf-8 -*- - -import re -import urlparse - -from core import httptools -from core import scrapertools -from core.item import Item -from platformcode import config, logger - -host = "http://www.freecambay.com" - - -def mainlist(item): - logger.info() - itemlist = [] - - itemlist.append(item.clone(action="lista", title="Nuevos Vídeos", url=host + "/latest-updates/")) - itemlist.append(item.clone(action="lista", title="Mejor Valorados", url=host + "/top-rated/")) - itemlist.append(item.clone(action="lista", title="Más Vistos", url=host + "/most-popular/")) - itemlist.append(item.clone(action="categorias", title="Categorías", url=host + "/categories/")) - itemlist.append(item.clone(action="categorias", title="Modelos", - url=host + "/models/?mode=async&function=get_block&block_id=list_models_models" \ - "_list&sort_by=total_videos")) - itemlist.append(item.clone(action="playlists", title="Listas", url=host + "/playlists/")) - itemlist.append(item.clone(action="tags", title="Tags", url=host + "/tags/")) - itemlist.append(item.clone(title="Buscar...", action="search")) - itemlist.append(item.clone(action="configuracion", title="Configurar canal...", text_color="gold", folder=False)) - - return itemlist - - -def configuracion(item): - from platformcode import platformtools - ret = platformtools.show_channel_settings() - platformtools.itemlist_refresh() - return ret - - -def search(item, texto): - logger.info() - item.url = "%s/search/%s/" % (host, texto.replace("+", "-")) - item.extra = texto - try: - return lista(item) - # Se captura la excepción, para no interrumpir al buscador global si un canal falla - except: - import sys - for line in sys.exc_info(): - logger.error("%s" % line) - return [] - - -def lista(item): - logger.info() - itemlist = [] - - # Descarga la pagina - data = httptools.downloadpage(item.url).data - - action = "play" - if config.get_setting("menu_info", "freecambay"): - action = "menu_info" - - # Extrae las entradas - patron = '
    ([^<]+)<' - matches = scrapertools.find_multiple_matches(data, patron) - for scrapedurl, scrapedtitle, scrapedthumbnail, quality, duration in matches: - if duration: - scrapedtitle = "%s - %s" % (duration, scrapedtitle) - if '>HD<' in quality: - scrapedtitle += " [COLOR red][HD][/COLOR]" - - itemlist.append(item.clone(action=action, title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, - fanart=scrapedthumbnail)) - - # Extrae la marca de siguiente página - if item.extra: - next_page = scrapertools.find_single_match(data, '
    ') - matches = scrapertools.find_multiple_matches(bloque, '\s*(.*?)') - for title in matches: - title = title.strip() - if title not in letras: - letras.append(title) - itemlist.append(Item(channel=item.channel, action="tags", url=item.url, title=title, extra=title)) - else: - if not item.length: - item.length = 0 - - bloque = scrapertools.find_single_match(data, - '>%s(.*?)(?:(?!%s)(?!#)[A-Z#]{1}|