diff --git a/plugin.video.alfa/addon.xml b/plugin.video.alfa/addon.xml index 35fd5c2c..ae32cdbb 100755 --- a/plugin.video.alfa/addon.xml +++ b/plugin.video.alfa/addon.xml @@ -1,5 +1,5 @@  - + @@ -19,17 +19,19 @@ [B]Estos son los cambios para esta versión:[/B] [COLOR green][B]Canales agregados y arreglos[/B][/COLOR] - » animeflv_me » gmobi - » hdfull » peliculasrey - » peliscity » pelisplanet - » bitp » cloudy - » canalpelis » cinefox - » cinefoxtv » gnula - » pedropolis » pelisfox - » gamovideo » rapidgator - » streamplay » yourupload - » cloudsany ¤ arreglos internos - + » maxipelis » peliculasaudiolatino + » peliculasmx » peliscity + » repelis » seriesmeme + » seriesyonkis » verpeliculasnuevas + » zonatorrent » kabagi/diskokosmico + » tiotorrent » allcalidad + » areadocumental » cinetux + » hdfull » newpct1 + » ohpelis » animeyt + » flashx » kbagi + » gamovideo » vidup + ¤ arreglos internos + [COLOR green]Gracias a [COLOR yellow]RIgodonius[/COLOR] por su colaboración en esta versión[/COLOR] Navega con Kodi por páginas web para ver sus videos de manera fácil. Browse web pages using Kodi diff --git a/plugin.video.alfa/channels/allcalidad.py b/plugin.video.alfa/channels/allcalidad.py index 9d5f6a7e..8a64360a 100755 --- a/plugin.video.alfa/channels/allcalidad.py +++ b/plugin.video.alfa/channels/allcalidad.py @@ -92,9 +92,14 @@ def peliculas(item): matches = scrapertools.find_multiple_matches(data, patron) for url, thumbnail, titulo, varios in matches: idioma = scrapertools.find_single_match(varios, '(?s)Idioma.*?kinopoisk">([^<]+)') + number_idioma = scrapertools.find_single_match(idioma, '[0-9]') + mtitulo = titulo + if number_idioma != "": + idioma = "" + else: + mtitulo += " (" + idioma + ")" year = scrapertools.find_single_match(varios, 'Año.*?kinopoisk">([^<]+)') year = scrapertools.find_single_match(year, '[0-9]{4}') - mtitulo = titulo + " (" + idioma + ")" if year: mtitulo += " (" + year + ")" item.infoLabels['year'] = int(year) diff --git a/plugin.video.alfa/channels/animeyt.json b/plugin.video.alfa/channels/animeyt.json new file mode 100644 index 00000000..d5672f1a --- /dev/null +++ b/plugin.video.alfa/channels/animeyt.json @@ -0,0 +1,36 @@ +{ + "id": "animeyt", + "name": "AnimeYT", + "active": true, + "adult": false, + "language": "es", + "thumbnail": "http://i.imgur.com/dHpupFk.png", + "version": 1, + "changes": [ + { + "date": "17/05/2017", + "description": "Fix novedades y replace en findvideos" + } + ], + "categories": [ + "anime" + ], + "settings": [ + { + "id": "include_in_global_search", + "type": "bool", + "label": "Incluir en busqueda global", + "default": false, + "enabled": true, + "visible": true + }, + { + "id": "modo_grafico", + "type": "bool", + "label": "información extra", + "default": true, + "enabled": true, + "visible": true + } + ] +} diff --git a/plugin.video.alfa/channels/animeyt.py b/plugin.video.alfa/channels/animeyt.py new file mode 100644 index 00000000..bae04053 --- /dev/null +++ b/plugin.video.alfa/channels/animeyt.py @@ -0,0 +1,187 @@ +# -*- coding: utf-8 -*- + +import re +import urlparse + + +from core import httptools +from core import scrapertools +from core import servertools +from core.item import Item +from core import tmdb +from platformcode import config,logger + +__modo_grafico__ = config.get_setting('modo_grafico', 'animeyt') + +HOST = "http://animeyt.tv/" + +def mainlist(item): + logger.info() + + itemlist = list() + + itemlist.append(Item(channel=item.channel, title="Novedades", action="novedades", url=HOST)) + + itemlist.append(Item(channel=item.channel, title="Recientes", action="recientes", url=HOST)) + + itemlist.append(Item(channel=item.channel, title="Alfabético", action="alfabetico", url=HOST)) + + itemlist.append(Item(channel=item.channel, title="Búsqueda", action="search", url=urlparse.urljoin(HOST, "busqueda?terminos="))) + + + return itemlist + + +def novedades(item): + logger.info() + itemlist = list() + if not item.pagina: + item.pagina = 0 + + data = httptools.downloadpage(item.url).data + data = re.sub(r"\n|\r|\t| |
", "", data) + + patron_novedades = '
[\s\S]+?

Comentarios

' + + data_novedades = scrapertools.find_single_match(data, patron_novedades) + + patron = 'href="([^"]+)"[\s\S]+?src="([^"]+)"[^<]+alt="([^"]+) (\d+)([^"]+)' + + matches = scrapertools.find_multiple_matches(data_novedades, patron) + + for url, img, scrapedtitle, eps, info in matches[item.pagina:item.pagina + 20]: + title = scrapedtitle + " " + "1x" + eps + info + title = title.replace("Sub Español", "").replace("sub español", "") + infoLabels = {'filtro': {"original_language": "ja"}.items()} + itemlist.append(Item(channel=item.channel, title=title, url=url, thumb=img, action="findvideos", contentTitle=scrapedtitle, contentSerieName=scrapedtitle, infoLabels=infoLabels, contentType="tvshow")) + try: + from core import tmdb + tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__) + for it in itemlist: + it.thumbnail = it.thumb + except: + pass + + if len(matches) > item.pagina + 20: + pagina = item.pagina + 20 + itemlist.append(item.clone(channel=item.channel, action="novedades", url=item.url, title=">> Página Siguiente", pagina=pagina)) + + return itemlist + + +def alfabetico(item): + logger.info() + itemlist = [] + + data = httptools.downloadpage(item.url).data + data = re.sub(r"\n|\r|\t| |
", "", data) + + + for letra in '0ABCDEFGHIJKLMNOPQRSTUVWXYZ': + titulo = letra + if letra == "0": + letra = "num" + itemlist.append(Item(channel=item.channel, action="recientes", title=titulo, + url=urlparse.urljoin(HOST, "animes?tipo=0&genero=0&anio=0&letra={letra}".format(letra=letra)))) + + + return itemlist + + +def search(item, texto): + logger.info() + + texto = texto.replace(" ","+") + item.url = item.url+texto + if texto!='': + return recientes(item) + + +def recientes(item): + logger.info() + itemlist = [] + + data = httptools.downloadpage(item.url).data + data = re.sub(r"\n|\r|\t| |
", "", data) + + patron_recientes = '
[\s\S]+?' + + data_recientes = scrapertools.find_single_match(data, patron_recientes) + + patron = '(.*?)<.*?

(.*?)(.*?)' + + matches = scrapertools.find_multiple_matches(data_recientes, patron) + + for url, thumbnail, plot, title, cat in matches: + itemlist.append(item.clone(title=title, url=url, action="episodios", show=title, thumbnail=thumbnail, plot=plot, cat=cat)) + + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb = True) + + paginacion = scrapertools.find_single_match(data, '", "", data) + + patron = 'Player\("(.*?)"' + + matches = scrapertools.find_multiple_matches(data, patron) + + for url in matches: + if "cldup" in url: + title = "Opcion Cldup" + if "chumi" in url: + title = "Opcion Chumi" + itemlist.append(item.clone(channel=item.channel, folder=False, title=title, action="play", url=url)) + + if item.extra != "library": + if config.get_videolibrary_support() and item.extra: + itemlist.append(item.clone(channel=item.channel, title="[COLOR yellow]Añadir pelicula a la videoteca[/COLOR]", url=item.url, action="add_pelicula_to_library", extra="library", contentTitle=item.show, contentType="movie")) + + return itemlist + + +def player(item): + logger.info() + itemlist = [] + + data = httptools.downloadpage(item.url, add_referer=True).data + data = re.sub(r"\n|\r|\t| |
", "", data) + + url = scrapertools.find_single_match(data, 'sources: \[{file:\'(.*?)\'') + + itemlist = servertools.find_video_items(data=data) + + return itemlist + diff --git a/plugin.video.alfa/channels/areadocumental.py b/plugin.video.alfa/channels/areadocumental.py index 6a04ef75..b360e078 100644 --- a/plugin.video.alfa/channels/areadocumental.py +++ b/plugin.video.alfa/channels/areadocumental.py @@ -23,12 +23,12 @@ def mainlist(item): itemlist = [] item.text_color = color1 itemlist.append(item.clone(title="Novedades", action="entradas", - url="http://www.area-documental.com/resultados-reciente.php?buscar=&genero=", + url= host + "/resultados-reciente.php?buscar=&genero=", fanart="http://i.imgur.com/Q7fsFI6.png")) itemlist.append(item.clone(title="Destacados", action="entradas", - url="http://www.area-documental.com/resultados-destacados.php?buscar=&genero=", + url= host + "/resultados-destacados.php?buscar=&genero=", fanart="http://i.imgur.com/Q7fsFI6.png")) - itemlist.append(item.clone(title="Categorías", action="cat", url="http://www.area-documental.com/index.php", + itemlist.append(item.clone(title="Categorías", action="cat", url= host + "/index.php", fanart="http://i.imgur.com/Q7fsFI6.png")) itemlist.append(item.clone(title="Ordenados por...", action="indice", fanart="http://i.imgur.com/Q7fsFI6.png")) @@ -47,7 +47,7 @@ def configuracion(item): def search(item, texto): logger.info() - item.url = "http://www.area-documental.com/resultados.php?buscar=%s&genero=&x=0&y=0" % texto + item.url = host + "/resultados.php?buscar=%s&genero=&x=0&y=0" % texto item.action = "entradas" try: itemlist = entradas(item) @@ -65,7 +65,7 @@ def newest(categoria): item = Item() try: if categoria == "documentales": - item.url = "http://www.area-documental.com/resultados-reciente.php?buscar=&genero=" + item.url = host + "/resultados-reciente.php?buscar=&genero=" item.action = "entradas" itemlist = entradas(item) @@ -86,9 +86,9 @@ def indice(item): logger.info() itemlist = [] itemlist.append(item.clone(title="Título", action="entradas", - url="http://www.area-documental.com/resultados-titulo.php?buscar=&genero=")) + url= host + "/resultados-titulo.php?buscar=&genero=")) itemlist.append(item.clone(title="Año", action="entradas", - url="http://www.area-documental.com/resultados-anio.php?buscar=&genero=")) + url= host + "/resultados-anio.php?buscar=&genero=")) return itemlist @@ -125,9 +125,13 @@ def entradas(item): data2 = "" data = data.replace("\n", "").replace("\t", "") - patron = '
.*?(.*?)(.*?)

(.*?)

' \ - '.*?: (.*?).*?(.*?)
' + patron = '(?s)
.*?a href="([^"]+)".*?' + patron += '' in s_p[0]: - return [Item(channel=item.channel, title=bbcode_kodi2html( - "[COLOR gold][B]HDFull:[/B][/COLOR] [COLOR blue]" + texto.replace('%20', - ' ') + "[/COLOR] sin resultados"))] + return [Item(channel=item.channel, title="[COLOR gold][B]HDFull:[/B][/COLOR] [COLOR blue]" + texto.replace('%20', + ' ') + "[/COLOR] sin resultados")] else: data = s_p[0] + s_p[1] else: @@ -321,12 +319,12 @@ def fichas(item): if scrapedlangs != ">": textoidiomas, language = extrae_idiomas(scrapedlangs) #Todo Quitar el idioma - title += bbcode_kodi2html(" ( [COLOR teal][B]" + textoidiomas + "[/B][/COLOR])") + title += " ( [COLOR teal][B]" + textoidiomas + "[/B][/COLOR])" if scrapedrating != ">": valoracion = re.sub(r'><[^>]+>(\d+)(\d+)', r'\1,\2', scrapedrating) infoLabels['rating']=valoracion - title += bbcode_kodi2html(" ([COLOR orange]" + valoracion + "[/COLOR])") + title += " ([COLOR orange]" + valoracion + "[/COLOR])" url = urlparse.urljoin(item.url, scrapedurl) @@ -346,7 +344,7 @@ def fichas(item): if item.title == "Buscar...": tag_type = scrapertools.get_match(url, 'l.tv/([^/]+)/') - title += bbcode_kodi2html(" - [COLOR blue]" + tag_type.capitalize() + "[/COLOR]") + title += " - [COLOR blue]" + tag_type.capitalize() + "[/COLOR]" itemlist.append( Item(channel=item.channel, action=action, title=title, url=url, fulltitle=title, thumbnail=thumbnail, @@ -388,7 +386,7 @@ def episodios(item): str = get_status(status, "shows", id) if str != "" and account and item.category != "Series" and "XBMC" not in item.title: if config.get_videolibrary_support(): - title = bbcode_kodi2html(" ( [COLOR gray][B]" + item.show + "[/B][/COLOR] )") + title = " ( [COLOR gray][B]" + item.show + "[/B][/COLOR] )" itemlist.append( Item(channel=item.channel, action="episodios", title=title, fulltitle=title, url=url_targets, thumbnail=item.thumbnail, show=item.show, folder=False)) @@ -397,11 +395,11 @@ def episodios(item): thumbnail=item.thumbnail, show=item.show, folder=True)) elif account and item.category != "Series" and "XBMC" not in item.title: if config.get_videolibrary_support(): - title = bbcode_kodi2html(" ( [COLOR gray][B]" + item.show + "[/B][/COLOR] )") + title = " ( [COLOR gray][B]" + item.show + "[/B][/COLOR] )" itemlist.append( Item(channel=item.channel, action="episodios", title=title, fulltitle=title, url=url_targets, thumbnail=item.thumbnail, show=item.show, folder=False)) - title = bbcode_kodi2html(" ( [COLOR orange][B]Seguir[/B][/COLOR] )") + title = " ( [COLOR orange][B]Seguir[/B][/COLOR] )" itemlist.append(Item(channel=item.channel, action="set_status", title=title, fulltitle=title, url=url_targets, thumbnail=item.thumbnail, show=item.show, folder=True)) @@ -436,7 +434,7 @@ def episodios(item): idiomas = "( [COLOR teal][B]" for idioma in episode['languages']: idiomas += idioma + " " idiomas += "[/B][/COLOR])" - idiomas = bbcode_kodi2html(idiomas) + idiomas = idiomas else: idiomas = "" @@ -513,7 +511,7 @@ def novedades_episodios(item): idiomas = "( [COLOR teal][B]" for idioma in episode['languages']: idiomas += idioma + " " idiomas += "[/B][/COLOR])" - idiomas = bbcode_kodi2html(idiomas) + idiomas = idiomas else: idiomas = "" @@ -522,7 +520,7 @@ def novedades_episodios(item): except: show = episode['show']['title']['en'].strip() - show = bbcode_kodi2html("[COLOR whitesmoke][B]" + show + "[/B][/COLOR]") + show = "[COLOR whitesmoke][B]" + show + "[/B][/COLOR]" if episode['title']: try: @@ -610,8 +608,9 @@ def generos_series(item): def findvideos(item): logger.info() - itemlist = [] + it1 = [] + it2 = [] ## Carga estados status = jsontools.load(httptools.downloadpage(host + '/a/status/all').data) url_targets = item.url @@ -623,21 +622,21 @@ def findvideos(item): item.url = item.url.split("###")[0] if type == "2" and account and item.category != "Cine": - title = bbcode_kodi2html(" ( [COLOR orange][B]Agregar a Favoritos[/B][/COLOR] )") + title = " ( [COLOR orange][B]Agregar a Favoritos[/B][/COLOR] )" if "Favorito" in item.title: - title = bbcode_kodi2html(" ( [COLOR red][B]Quitar de Favoritos[/B][/COLOR] )") + title = " ( [COLOR red][B]Quitar de Favoritos[/B][/COLOR] )" if config.get_videolibrary_support(): - title_label = bbcode_kodi2html(" ( [COLOR gray][B]" + item.show + "[/B][/COLOR] )") - itemlist.append(Item(channel=item.channel, action="findvideos", title=title_label, fulltitle=title_label, + title_label = " ( [COLOR gray][B]" + item.show + "[/B][/COLOR] )" + it1.append(Item(channel=item.channel, action="findvideos", title=title_label, fulltitle=title_label, url=url_targets, thumbnail=item.thumbnail, show=item.show, folder=False)) - title_label = bbcode_kodi2html(" ( [COLOR green][B]Tráiler[/B][/COLOR] )") + title_label = " ( [COLOR green][B]Tráiler[/B][/COLOR] )" - itemlist.append( - Item(channel=item.channel, action="buscartrailer", title=title_label, fulltitle=title_label, url=url_targets, + it1.append( + item.clone(channel="trailertools", action="buscartrailer", title=title_label, contentTitle=item.show, url=item.url, thumbnail=item.thumbnail, show=item.show)) - itemlist.append(Item(channel=item.channel, action="set_status", title=title, fulltitle=title, url=url_targets, + it1.append(Item(channel=item.channel, action="set_status", title=title, fulltitle=title, url=url_targets, thumbnail=item.thumbnail, show=item.show, folder=True)) data_js = httptools.downloadpage("http://hdfull.tv/templates/hdfull/js/jquery.hdfull.view.min.js").data @@ -663,7 +662,6 @@ def findvideos(item): infolabels = {} year = scrapertools.find_single_match(data, 'Año:\s*.*?(\d{4})') infolabels["year"] = year - matches = [] for match in data_decrypt: prov = eval(scrapertools.find_single_match(data_js, 'p\[%s\]\s*=\s*(\{.*?\}[\'"]\})' % match["provider"])) @@ -679,8 +677,10 @@ def findvideos(item): for idioma, calidad, url, embed in matches: mostrar_server = True option = "Ver" + option1 = 1 if re.search(r'return ([\'"]{2,}|\})', embed): option = "Descargar" + option1 = 2 calidad = unicode(calidad, "utf8").upper().encode("utf8") title = option + ": %s (" + calidad + ")" + " (" + idioma + ")" thumbnail = item.thumbnail @@ -691,13 +691,15 @@ def findvideos(item): if account: url += "###" + id + ";" + type - itemlist.append( - Item(channel=item.channel, action="play", title=title, fulltitle=title, url=url, thumbnail=thumbnail, + it2.append( + item.clone(channel=item.channel, action="play", title=title, url=url, thumbnail=thumbnail, plot=plot, fanart=fanart, show=item.show, folder=True, infoLabels=infolabels, - contentTitle=item.contentTitle, contentType=item.contentType, tipo=option)) + contentTitle=item.title, contentType=item.contentType, tipo=option, tipo1=option1, idioma=idioma)) - itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize()) - itemlist.sort(key=lambda it: it.title, reverse=True) + it2 = servertools.get_servers_itemlist(it2, lambda i: i.title % i.server.capitalize()) + it2.sort(key=lambda it: (it.tipo1, it.idioma, it.server)) + itemlist.extend(it1) + itemlist.extend(it2) ## 2 = película if type == "2" and item.category != "Cine": if config.get_videolibrary_support(): @@ -754,22 +756,6 @@ def extrae_idiomas(bloqueidiomas): return textoidiomas, language -def bbcode_kodi2html(text): - if config.get_platform().startswith("plex") or config.get_platform().startswith("mediaserver"): - import re - text = re.sub(r'\[COLOR\s([^\]]+)\]', - r'', - text) - text = text.replace('[/COLOR]', '') - text = text.replace('[CR]', '
') - text = re.sub(r'\[([^\]]+)\]', - r'<\1>', - text) - text = text.replace('"color: white"', '"color: auto"') - - return text - - ## -------------------------------------------------------------------------------- def set_status(item): @@ -797,7 +783,7 @@ def set_status(item): data = httptools.downloadpage(host + path, post=post).data - title = bbcode_kodi2html("[COLOR green][B]OK[/B][/COLOR]") + title = "[COLOR green][B]OK[/B][/COLOR]" return [Item(channel=item.channel, action="episodios", title=title, fulltitle=title, url=item.url, thumbnail=item.thumbnail, show=item.show, folder=False)] @@ -815,15 +801,14 @@ def get_status(status, type, id): try: if id in status['favorites'][type]: - str1 = bbcode_kodi2html(" [COLOR orange][B]Favorito[/B][/COLOR]") + str1 = " [COLOR orange][B]Favorito[/B][/COLOR]" except: str1 = "" try: if id in status['status'][type]: str2 = state[status['status'][type][id]] - if str2 != "": str2 = bbcode_kodi2html( - " [COLOR green][B]" + state[status['status'][type][id]] + "[/B][/COLOR]") + if str2 != "": str2 = "[COLOR green][B]" + state[status['status'][type][id]] + "[/B][/COLOR]" except: str2 = "" diff --git a/plugin.video.alfa/channels/copiapop.json b/plugin.video.alfa/channels/kbagi.json similarity index 75% rename from plugin.video.alfa/channels/copiapop.json rename to plugin.video.alfa/channels/kbagi.json index acdb4daf..2f292d54 100644 --- a/plugin.video.alfa/channels/copiapop.json +++ b/plugin.video.alfa/channels/kbagi.json @@ -1,22 +1,10 @@ { - "id": "copiapop", - "name": "Copiapop/Diskokosmiko", + "id": "kbagi", + "name": "Kbagi/Diskokosmiko", "language": ["cast", "lat"], "active": true, "adult": false, "version": 1, - "changes": [ - { - "date": "15/03/2017", - "autor": "SeiTaN", - "description": "limpieza código" - }, - { - "date": "16/02/2017", - "autor": "Cmos", - "description": "Primera versión" - } - ], "thumbnail": "http://i.imgur.com/EjbfM7p.png?1", "banner": "copiapop.png", "categories": [ @@ -33,19 +21,19 @@ "visible": true }, { - "id": "copiapopuser", + "id": "kbagiuser", "type": "text", "color": "0xFF25AA48", - "label": "Usuario Copiapop", + "label": "Usuario Kbagi", "enabled": true, "visible": true }, { - "id": "copiapoppassword", + "id": "kbagipassword", "type": "text", "color": "0xFF25AA48", "hidden": true, - "label": "Password Copiapop", + "label": "Password Kbagi", "enabled": "!eq(-1,'')", "visible": true }, diff --git a/plugin.video.alfa/channels/copiapop.py b/plugin.video.alfa/channels/kbagi.py old mode 100755 new mode 100644 similarity index 90% rename from plugin.video.alfa/channels/copiapop.py rename to plugin.video.alfa/channels/kbagi.py index cf1661d8..325c9547 --- a/plugin.video.alfa/channels/copiapop.py +++ b/plugin.video.alfa/channels/kbagi.py @@ -9,7 +9,7 @@ from core import scrapertools from core.item import Item from platformcode import config, logger -__perfil__ = config.get_setting('perfil', "copiapop") +__perfil__ = config.get_setting('perfil', "kbagi") # Fijar perfil de color perfil = [['0xFFFFE6CC', '0xFFFFCE9C', '0xFF994D00', '0xFFFE2E2E', '0xFF088A08'], @@ -21,20 +21,20 @@ if __perfil__ - 1 >= 0: else: color1 = color2 = color3 = color4 = color5 = "" -adult_content = config.get_setting("adult_content", "copiapop") +adult_content = config.get_setting("adult_content", "kbagi") def login(pagina): logger.info() try: - user = config.get_setting("%suser" % pagina.split(".")[0], "copiapop") - password = config.get_setting("%spassword" % pagina.split(".")[0], "copiapop") - if pagina == "copiapop.com": + user = config.get_setting("%suser" % pagina.split(".")[0], "kbagi") + password = config.get_setting("%spassword" % pagina.split(".")[0], "kbagi") + if pagina == "kbagi.com": if user == "" and password == "": - return False, "Para ver los enlaces de copiapop es necesario registrarse en copiapop.com" + return False, "Para ver los enlaces de kbagi es necesario registrarse en kbagi.com" elif user == "" or password == "": - return False, "Copiapop: Usuario o contraseña en blanco. Revisa tus credenciales" + return False, "kbagi: Usuario o contraseña en blanco. Revisa tus credenciales" else: if user == "" or password == "": return False, "DiskoKosmiko: Usuario o contraseña en blanco. Revisa tus credenciales" @@ -65,19 +65,19 @@ def mainlist(item): itemlist = [] item.text_color = color1 - logueado, error_message = login("copiapop.com") + logueado, error_message = login("kbagi.com") if not logueado: itemlist.append(item.clone(title=error_message, action="configuracion", folder=False)) else: - item.extra = "http://copiapop.com" - itemlist.append(item.clone(title="Copiapop", action="", text_color=color2)) + item.extra = "http://kbagi.com" + itemlist.append(item.clone(title="kbagi", action="", text_color=color2)) itemlist.append( - item.clone(title=" Búsqueda", action="search", url="http://copiapop.com/action/SearchFiles")) + item.clone(title=" Búsqueda", action="search", url="http://kbagi.com/action/SearchFiles")) itemlist.append(item.clone(title=" Colecciones", action="colecciones", - url="http://copiapop.com/action/home/MoreNewestCollections?pageNumber=1")) + url="http://kbagi.com/action/home/MoreNewestCollections?pageNumber=1")) itemlist.append(item.clone(title=" Búsqueda personalizada", action="filtro", - url="http://copiapop.com/action/SearchFiles")) + url="http://kbagi.com/action/SearchFiles")) itemlist.append(item.clone(title=" Mi cuenta", action="cuenta")) item.extra = "http://diskokosmiko.mx/" @@ -90,7 +90,7 @@ def mainlist(item): itemlist.append(item.clone(title=" Mi cuenta", action="cuenta")) itemlist.append(item.clone(action="", title="")) - folder_thumb = filetools.join(config.get_data_path(), 'thumbs_copiapop') + folder_thumb = filetools.join(config.get_data_path(), 'thumbs_kbagi') files = filetools.listdir(folder_thumb) if files: itemlist.append( @@ -133,7 +133,7 @@ def listado(item): data = httptools.downloadpage(item.url, item.post).data data = re.sub(r"\n|\r|\t|\s{2}| |
", "", data) - folder = filetools.join(config.get_data_path(), 'thumbs_copiapop') + folder = filetools.join(config.get_data_path(), 'thumbs_kbagi') patron = '
(.*?)

' bloques = scrapertools.find_multiple_matches(data, patron) for block in bloques: @@ -204,7 +204,7 @@ def findvideos(item): logger.info() itemlist = [] - itemlist.append(item.clone(action="play", title="Reproducir/Descargar", server="copiapop")) + itemlist.append(item.clone(action="play", title="Reproducir/Descargar", server="kbagi")) usuario = scrapertools.find_single_match(item.url, '%s/([^/]+)/' % item.extra) url_usuario = item.extra + "/" + usuario @@ -265,7 +265,7 @@ def colecciones(item): matches = matches[:20] index = 20 - folder = filetools.join(config.get_data_path(), 'thumbs_copiapop') + folder = filetools.join(config.get_data_path(), 'thumbs_kbagi') for url, scrapedtitle, thumb, info in matches: url = item.extra + url + "/gallery,1,1?ref=pager" title = "%s (%s)" % (scrapedtitle, scrapertools.htmlclean(info)) @@ -313,7 +313,7 @@ def cuenta(item): import urllib itemlist = [] - web = "copiapop" + web = "kbagi" if "diskokosmiko" in item.extra: web = "diskokosmiko" logueado, error_message = login("diskokosmiko.mx") @@ -321,7 +321,7 @@ def cuenta(item): itemlist.append(item.clone(title=error_message, action="configuracion", folder=False)) return itemlist - user = config.get_setting("%suser" % web, "copiapop") + user = config.get_setting("%suser" % web, "kbagi") user = unicode(user, "utf8").lower().encode("utf8") url = item.extra + "/" + urllib.quote(user) data = httptools.downloadpage(url).data @@ -364,7 +364,7 @@ def filtro(item): 'type': 'text', 'default': '0', 'visible': True}) # Se utilizan los valores por defecto/guardados - web = "copiapop" + web = "kbagi" if "diskokosmiko" in item.extra: web = "diskokosmiko" valores_guardados = config.get_setting("filtro_defecto_" + web, item.channel) @@ -378,7 +378,7 @@ def filtro(item): def filtrado(item, values): values_copy = values.copy() - web = "copiapop" + web = "kbagi" if "diskokosmiko" in item.extra: web = "diskokosmiko" # Guarda el filtro para que sea el que se cargue por defecto @@ -407,7 +407,7 @@ def download_thumb(filename, url): lock = threading.Lock() lock.acquire() - folder = filetools.join(config.get_data_path(), 'thumbs_copiapop') + folder = filetools.join(config.get_data_path(), 'thumbs_kbagi') if not filetools.exists(folder): filetools.mkdir(folder) lock.release() @@ -419,7 +419,7 @@ def download_thumb(filename, url): def delete_cache(url): - folder = filetools.join(config.get_data_path(), 'thumbs_copiapop') + folder = filetools.join(config.get_data_path(), 'thumbs_kbagi') filetools.rmdirtree(folder) if config.is_xbmc(): import xbmc diff --git a/plugin.video.alfa/channels/maxipelis.py b/plugin.video.alfa/channels/maxipelis.py index ce8c7f8d..8f6b07de 100644 --- a/plugin.video.alfa/channels/maxipelis.py +++ b/plugin.video.alfa/channels/maxipelis.py @@ -104,9 +104,10 @@ def peliculas(item): new_item = Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumbnail, plot=plot, contentTitle = contentTitle , infoLabels={'year':year} ) - if year: - tmdb.set_infoLabels_item(new_item) + #if year: + # tmdb.set_infoLabels_item(new_item) itemlist.append(new_item) + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) try: patron = '' next_page = re.compile(patron,re.DOTALL).findall(data) diff --git a/plugin.video.alfa/channels/newpct1.py b/plugin.video.alfa/channels/newpct1.py index 009ea8c6..d64b241b 100644 --- a/plugin.video.alfa/channels/newpct1.py +++ b/plugin.video.alfa/channels/newpct1.py @@ -339,20 +339,20 @@ def episodios(item): infoLabels = item.infoLabels data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data) data = unicode(data, "iso-8859-1", errors="replace").encode("utf-8") - logger.debug('data: %s'%data) pattern = '
    (.*?)
' % "pagination" # item.pattern pagination = scrapertools.find_single_match(data, pattern) if pagination: pattern = '
  • Last<\/a>' full_url = scrapertools.find_single_match(pagination, pattern) url, last_page = scrapertools.find_single_match(full_url, r'(.*?\/pg\/)(\d+)') - list_pages = [] - for x in range(1, int(last_page) + 1): - list_pages.append("%s%s" % (url, x)) + list_pages = [item.url] + for x in range(2, int(last_page) + 1): + response = httptools.downloadpage('%s%s'% (url,x)) + if response.sucess: + list_pages.append("%s%s" % (url, x)) else: list_pages = [item.url] - logger.debug ('pattern: %s'%pattern) for index, page in enumerate(list_pages): logger.debug("Loading page %s/%s url=%s" % (index, len(list_pages), page)) data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(page).data) @@ -424,7 +424,7 @@ def episodios(item): if config.get_videolibrary_support() and len(itemlist) > 0: itemlist.append( item.clone(title="Añadir esta serie a la videoteca", action="add_serie_to_library", extra="episodios")) - + return itemlist def search(item, texto): diff --git a/plugin.video.alfa/channels/ohpelis.py b/plugin.video.alfa/channels/ohpelis.py index 910ab14c..24c3a9dc 100644 --- a/plugin.video.alfa/channels/ohpelis.py +++ b/plugin.video.alfa/channels/ohpelis.py @@ -14,18 +14,19 @@ from core.item import Item from platformcode import config, logger host = 'http://www.ohpelis.com' -headers = { - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 Chrome/58.0.3029.110', - 'Referer': host} - def mainlist(item): logger.info() - itemlist = [] + data = httptools.downloadpage(host).data + patron = '
  • (.*?)<\/a> (\d+)<\/i>' + matches = scrapertools.find_multiple_matches(data, patron) + mcantidad = 0 + for scrapedurl, scrapedtitle, cantidad in matches: + mcantidad += int(cantidad) itemlist.append( - item.clone(title="Peliculas", + item.clone(title="Peliculas (%s)" %mcantidad, action='movies_menu' )) @@ -95,14 +96,14 @@ def list_all(item): for scrapedurl, scrapedthumbnail, scrapedtitle, scrapedyear, scrapedplot in matches: title = scrapedtitle - plot = scrapedplot thumbnail = scrapedthumbnail url = scrapedurl year = scrapedyear new_item = (item.clone(title=title, url=url, thumbnail=thumbnail, - plot=plot, + fulltitle=title, + contentTitle=title, infoLabels={'year': year} )) if item.extra == 'serie': @@ -114,7 +115,7 @@ def list_all(item): itemlist.append(new_item) - tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + tmdb.set_infoLabels(itemlist, True) # Paginacion next_page = scrapertools.find_single_match(data, ' 0 and item.extra != 'findvideos': itemlist.append( @@ -288,9 +290,9 @@ def findvideos(item): url=item.url, action="add_pelicula_to_library", extra="findvideos", - contentTitle=item.contentTitle, )) - + tmdb.set_infoLabels(itemlist, True) + itemlist = servertools.get_servers_itemlist(itemlist) return itemlist @@ -314,3 +316,8 @@ def newest(categoria): return [] return itemlist + +def play(item): + logger.info() + item.thumbnail = item.contentThumbnail + return [item] diff --git a/plugin.video.alfa/channels/peliculasaudiolatino.py b/plugin.video.alfa/channels/peliculasaudiolatino.py index d5a021ac..197cc18c 100644 --- a/plugin.video.alfa/channels/peliculasaudiolatino.py +++ b/plugin.video.alfa/channels/peliculasaudiolatino.py @@ -155,6 +155,8 @@ def findvideos(item): url = scrapedurl server = servertools.get_server_name(servidor) title = "Enlace encontrado en %s" % (server) + if idioma == 'Ingles Subtitulado': + idioma = 'vose' itemlist.append(Item(channel=item.channel, action="play", title=title, fulltitle=item.fulltitle, url=url, thumbnail=scrapedthumbnail, language=idioma, quality=calidad, server=server)) if itemlist: diff --git a/plugin.video.alfa/channels/peliculasmx.py b/plugin.video.alfa/channels/peliculasmx.py index 4055fd26..81ccd672 100644 --- a/plugin.video.alfa/channels/peliculasmx.py +++ b/plugin.video.alfa/channels/peliculasmx.py @@ -76,14 +76,11 @@ def peliculas(item): tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) # Extrae la marca de siguiente página - paginador = scrapertools.find_single_match(data, "
    .*?lateral") + next_page = scrapertools.find_single_match(data, 'class="nextpostslink" rel="next" href="(.*?)">') - patron = ".*?href='([^']+)" - scrapedurl = scrapertools.find_single_match(paginador, patron) - - if scrapedurl: + if next_page: scrapedtitle = "!Pagina Siguiente ->" - itemlist.append(Item(channel=item.channel, action="peliculas", title=scrapedtitle, url=scrapedurl, folder=True)) + itemlist.append(Item(channel=item.channel, action="peliculas", title=scrapedtitle, url=next_page, folder=True)) return itemlist diff --git a/plugin.video.alfa/channels/peliscity.py b/plugin.video.alfa/channels/peliscity.py index fa64ef07..f26ecb38 100755 --- a/plugin.video.alfa/channels/peliscity.py +++ b/plugin.video.alfa/channels/peliscity.py @@ -32,8 +32,8 @@ def mainlist(item): url= host + "/calidad/hd-real-720", viewmode="movie_with_plot")) itemlist.append( Item(channel=item.channel, title=" Listado por género", action="porGenero", url= host)) - itemlist.append(Item(channel=item.channel, title=" Buscar", action="search", url= host + "/?s=")) itemlist.append(Item(channel=item.channel, title=" Idioma", action="porIdioma", url= host)) + itemlist.append(Item(channel=item.channel, title=" Buscar", action="search", url= host + "/?s=")) return itemlist @@ -43,7 +43,7 @@ def porIdioma(item): itemlist.append(Item(channel=item.channel, title="Castellano", action="agregadas", url= host + "/idioma/espanol-castellano/", viewmode="movie_with_plot")) itemlist.append( - Item(channel=item.channel, title="VOS", action="agregadas", url= host + "/idioma/subtitulada/", + Item(channel=item.channel, title="VOSE", action="agregadas", url= host + "/idioma/subtitulada/", viewmode="movie_with_plot")) itemlist.append(Item(channel=item.channel, title="Latino", action="agregadas", url= host + "/idioma/espanol-latino/", viewmode="movie_with_plot")) @@ -53,14 +53,10 @@ def porIdioma(item): def porGenero(item): logger.info() - itemlist = [] data = httptools.downloadpage(item.url).data - patron = 'cat-item.*?href="([^"]+).*?>(.*?)<.*?span>([^<]+)' - matches = scrapertools.find_multiple_matches(data, patron) - for urlgen, genero, cantidad in matches: cantidad = cantidad.replace(".", "") titulo = genero + " (" + cantidad + ")" @@ -74,10 +70,9 @@ def search(item, texto): logger.info() texto_post = texto.replace(" ", "+") item.url = host + "/?s=" + texto_post - try: return listaBuscar(item) - # Se captura la excepci?n, para no interrumpir al buscador global si un canal falla + # Se captura la excepcion, para no interrumpir al buscador global si un canal falla except: import sys for line in sys.exc_info(): @@ -88,12 +83,9 @@ def search(item, texto): def agregadas(item): logger.info() itemlist = [] - data = httptools.downloadpage(item.url).data data = re.sub(r'\n|\r|\t|\s{2}| |"', "", data) - patron = scrapertools.find_multiple_matches (data,'.*?Duración') - for element in patron: info = scrapertools.find_single_match(element, "calidad>(.*?)<.*?ahref=(.*?)>.*?'reflectMe' src=(.*?)\/>.*?

    (.*?)" @@ -107,16 +99,15 @@ def agregadas(item): itemlist.append(Item(channel=item.channel, action='findvideos', contentType = "movie", + contentTitle = title, fulltitle = title, infoLabels={'year':year}, - plot=plot, quality=quality, thumbnail=thumbnail, title=title, - contentTitle = title, url=url )) - tmdb.set_infoLabels_itemlist(itemlist, True) + tmdb.set_infoLabels(itemlist, True) next_page = scrapertools.find_single_match(data,'tima>.*?href=(.*?) >next &') - while item.url[-1] != '=': - item.url = item.url[:-1] - next_page_url = item.url + next_page - if next_page != '': - itemlist.append(Item(channel=item.channel, action="lista", title='Siguiente >>>', url=next_page_url, - thumbnail='https://s16.postimg.org/9okdu7hhx/siguiente.png', extra=item.extra)) - return itemlist - - -def temporadas(item): - logger.info() - itemlist = [] - templist = [] - data = httptools.downloadpage(item.url).data - - patron = 'class="listatemporadas" >([^<]+)<' - matches = re.compile(patron, re.DOTALL).findall(data) - - for scrapedurl, scrapedthumbnail, scrapedtitle in matches: - url = host + scrapedurl - title = scrapedtitle - thumbnail = scrapedthumbnail - plot = '' - fanart = '' - contentSeasonNumber = scrapedtitle.replace('Temporada ', '') - - itemlist.append(Item(channel=item.channel, action="episodiosxtemp", title=title, fulltitle=item.title, url=url, - thumbnail=thumbnail, plot=plot, fanart=fanart, contentSerieName=item.contentSerieName, - contentSeasonNumber=contentSeasonNumber)) - - if item.extra == 'temporadas': - for tempitem in itemlist: - templist += episodiosxtemp(tempitem) - - if config.get_videolibrary_support() and len(itemlist) > 0: - itemlist.append( - Item(channel=item.channel, title='[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]', url=item.url, - action="add_serie_to_library", extra="episodios", contentSerieName=item.contentSerieName)) - - return itemlist - - -def episodios(item): - logger.info() - itemlist = [] - templist = temporadas(item) - for tempitem in templist: - itemlist += episodiosxtemp(tempitem) - - return itemlist - - -def episodiosxtemp(item): - logger.info() - itemlist = [] - data = httptools.downloadpage(item.url).data - patron = '' - matches = re.compile(patron, re.DOTALL).findall(data) - ep = 1 - for scrapedtitle in matches: - scrapedtitle = scrapedtitle.replace(item.contentSeasonNumber + 'x' + '0' + str(ep), '') - url = host + '/VerCapitulo/' + scrapedtitle.replace(' ', '-') - title = item.contentSeasonNumber + 'x' + str(ep) + ' ' + scrapedtitle.strip('/') - - thumbnail = item.thumbnail - plot = '' - fanart = '' - plot = '' - contentEpisodeNumber = ep - - itemlist.append(Item(channel=item.channel, action="findvideos", title=title, fulltitle=item.title, url=url, - thumbnail=thumbnail, plot=plot, fanart=fanart, extra='series', - contentSerieName=item.contentSerieName, contentSeasonNumber=item.contentSeasonNumber, - contentEpisodeNumber=contentEpisodeNumber)) - ep = ep + 1 - - return itemlist - - -def seccion(item): - logger.info() - itemlist = [] - data = httptools.downloadpage(item.url).data - patron = '