diff --git a/plugin.video.alfa/addon.xml b/plugin.video.alfa/addon.xml index fb527cc0..c62c23f1 100755 --- a/plugin.video.alfa/addon.xml +++ b/plugin.video.alfa/addon.xml @@ -1,5 +1,5 @@  - + @@ -19,12 +19,10 @@ [B]Estos son los cambios para esta versión:[/B] [COLOR green][B]Canales agregados y arreglos[/B][/COLOR] - » plusdede » pelisgratis - » seriesblanco » anitoonstv - » openload » powvideo - » streamplay » clipwatching - » flashx ¤ arreglos internos - [COLOR green]Gracias a [B][COLOR yellow]danielr460[/COLOR][/B] por su colaboración en esta versión[/COLOR] + » plusdede » cinecalidad + » allpeliculas » serieslan + » pepecine » cinetux + » novelashdgratis ¤ arreglos internos 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/allpeliculas.json b/plugin.video.alfa/channels/allpeliculas.json index 5338fb45..198fc1bb 100755 --- a/plugin.video.alfa/channels/allpeliculas.json +++ b/plugin.video.alfa/channels/allpeliculas.json @@ -8,8 +8,7 @@ "banner": "allpeliculas.png", "categories": [ "movie", - "vos", - "tvshow" + "vos" ], "settings": [ { diff --git a/plugin.video.alfa/channels/autoplay.py b/plugin.video.alfa/channels/autoplay.py index 9c0977f0..a901ed7a 100644 --- a/plugin.video.alfa/channels/autoplay.py +++ b/plugin.video.alfa/channels/autoplay.py @@ -79,19 +79,9 @@ def start(itemlist, item): :return: intenta autoreproducir, en caso de fallar devuelve el itemlist que recibio en un principio ''' logger.info() - for videoitem in itemlist: - #Nos dice de donde viene si del addon o videolibrary - if item.contentChannel=='videolibrary': - videoitem.contentEpisodeNumber=item.contentEpisodeNumber - videoitem.contentPlot=item.contentPlot - videoitem.contentSeason=item.contentSeason - videoitem.contentSerieName=item.contentSerieName - videoitem.contentTitle=item.contentTitle - videoitem.contentType=item.contentType - videoitem.episode_id=item.episode_id - #videoitem.infoLabels=item.infoLabels - videoitem.thumbnail=item.thumbnail - #videoitem.title=item.title + logger.debug('item inicial %s' % item) + + if not config.is_xbmc(): #platformtools.dialog_notification('AutoPlay ERROR', 'Sólo disponible para XBMC/Kodi') return itemlist @@ -245,9 +235,10 @@ def start(itemlist, item): platformtools.stop_video() for autoplay_elem in autoplay_list: + play_item = Item if not platformtools.is_playing() and not played: videoitem = autoplay_elem['videoitem'] - + logger.debug('videoitem %s' % videoitem) if videoitem.server not in max_intentos_servers: max_intentos_servers[videoitem.server] = max_intentos @@ -274,24 +265,23 @@ def start(itemlist, item): else: videoitem = resolved_item[0] - # si no directamente reproduce y marca como visto - videoitem.contentChannel='videolibrary' - import importlib - actual_server="servers."+videoitem.server - i = importlib.import_module(actual_server) - #from servers import streamango + # Si no directamente reproduce y marca como visto + + # Verifica si el item viene de la videoteca try: - testv=i.test_video_exists(videoitem.url) - logger.info(testv) + if item.contentChannel =='videolibrary': + # Marca como visto + from platformcode import xbmc_videolibrary + xbmc_videolibrary.mark_auto_as_watched(item) + # Rellena el video con los datos del item principal y reproduce + play_item = item.clone(url=videoitem) + platformtools.play_video(play_item.url, autoplay=True) + else: + # Si no viene de la videoteca solo reproduce + platformtools.play_video(videoitem, autoplay=True) except: - testv=(True,'') - logger.debug("La funcion no existe en el conector "+videoitem.server) - testvideo=list(testv) - if testvideo[0]==True: - from platformcode import xbmc_videolibrary - xbmc_videolibrary.mark_auto_as_watched(item) - #platformtools.play_video(videoitem) - launcher.run(videoitem) + pass + try: if platformtools.is_playing(): @@ -310,6 +300,9 @@ def start(itemlist, item): if not platformtools.dialog_yesno("AutoPlay", text, "¿Desea ignorar todos los enlaces de este servidor?"): max_intentos_servers[videoitem.server] = max_intentos + logger.debug('elem: %s list %s' % (autoplay_list.index(autoplay_elem),autoplay_list[-1])) + if autoplay_elem == autoplay_list[-1]: + platformtools.dialog_notification('AutoPlay', 'No hubo enlaces funcionales') else: platformtools.dialog_notification('AutoPlay No Fue Posible', 'No Hubo Coincidencias') diff --git a/plugin.video.alfa/channels/cinecalidad.py b/plugin.video.alfa/channels/cinecalidad.py index 34407b61..55981dd3 100644 --- a/plugin.video.alfa/channels/cinecalidad.py +++ b/plugin.video.alfa/channels/cinecalidad.py @@ -272,7 +272,7 @@ def findvideos(item): "http://filescdn.com/": "filescdn", "https://www.yourupload.com/watch/": "yourupload", "http://www.cinecalidad.to/protect/gdredirect.php?l=": "directo", - "https://openload.co/embed/": "openload" + "https://openload.co/embed/": "openload", } logger.info() @@ -298,7 +298,7 @@ def findvideos(item): server = server_id.lower() thumbnail = item.thumbnail if server_id == 'TVM': - server = 'thevideo.me' + server = 'thevideome' url = server_url[server_id] + video_id + '.html' else: url = server_url[server_id] + video_id diff --git a/plugin.video.alfa/channels/cinetux.py b/plugin.video.alfa/channels/cinetux.py index 2d68dd95..acbe0c53 100644 --- a/plugin.video.alfa/channels/cinetux.py +++ b/plugin.video.alfa/channels/cinetux.py @@ -27,7 +27,6 @@ def mainlist(item): logger.info() itemlist = [] item.viewmode = viewmode - data = httptools.downloadpage(CHANNEL_HOST + "pelicula").data total = scrapertools.find_single_match(data, "Películas(.*?)") titulo = "Peliculas (%s)" %total @@ -56,7 +55,6 @@ def mainlist(item): itemlist.append(item.clone(title="", action="")) itemlist.append(item.clone(action="search", title="Buscar...", text_color=color3)) itemlist.append(item.clone(action="configuracion", title="Configurar canal...", text_color="gold", folder=False)) - return itemlist @@ -121,7 +119,6 @@ def newest(categoria): for line in sys.exc_info(): logger.error("{0}".format(line)) return [] - return itemlist @@ -129,7 +126,6 @@ def peliculas(item): logger.info() itemlist = [] item.text_color = color2 - data = httptools.downloadpage(item.url).data patron = '(?s)class="(?:result-item|item movies)">.*?]+>»') if next_page_link: itemlist.append( @@ -197,11 +187,8 @@ def destacadas(item): def generos(item): logger.info() itemlist = [] - - # Descarga la página data = httptools.downloadpage(item.url).data bloque = scrapertools.find_single_match(data, '(?s)dos_columnas">(.*?)') - # Extrae las entradas patron = '
  • (.*?)
  • ' matches = scrapertools.find_multiple_matches(bloque, patron) for scrapedurl, scrapedtitle in matches: @@ -211,25 +198,21 @@ def generos(item): if scrapedtitle == "Erotico" and config.get_setting("adult_mode") == 0: continue itemlist.append(item.clone(action="peliculas", title=scrapedtitle, url=scrapedurl)) - return itemlist def idioma(item): logger.info() itemlist = [] - itemlist.append(item.clone(action="peliculas", title="Español", url= CHANNEL_HOST + "idioma/espanol/")) itemlist.append(item.clone(action="peliculas", title="Latino", url= CHANNEL_HOST + "idioma/latino/")) itemlist.append(item.clone(action="peliculas", title="VOSE", url= CHANNEL_HOST + "idioma/subtitulado/")) - return itemlist def findvideos(item): logger.info() itemlist = [] - try: filtro_idioma = config.get_setting("filterlanguages", item.channel) filtro_enlaces = config.get_setting("filterlinks", item.channel) @@ -237,13 +220,9 @@ def findvideos(item): filtro_idioma = 3 filtro_enlaces = 2 dict_idiomas = {'Español': 2, 'Latino': 1, 'Subtitulado': 0} - - # Busca el argumento data = httptools.downloadpage(item.url).data - if item.infoLabels["year"]: tmdb.set_infoLabels(item, __modo_grafico__) - if filtro_enlaces != 0: list_enlaces = bloque_enlaces(data, filtro_idioma, dict_idiomas, "online", item) if list_enlaces: @@ -256,7 +235,6 @@ def findvideos(item): itemlist.append(item.clone(action="", title="Enlaces Descarga", text_color=color1, text_bold=True)) itemlist.extend(list_enlaces) - if itemlist: itemlist.append(item.clone(channel="trailertools", title="Buscar Tráiler", action="buscartrailer", context="", text_color="magenta")) diff --git a/plugin.video.alfa/channels/novelashdgratis.json b/plugin.video.alfa/channels/novelashdgratis.json new file mode 100644 index 00000000..678eb401 --- /dev/null +++ b/plugin.video.alfa/channels/novelashdgratis.json @@ -0,0 +1,39 @@ +{ + "id": "novelashdgratis", + "name": "Novelas HD Gratis", + "active": true, + "adult": false, + "language": ["lat"], + "thumbnail": "https://s18.postimg.org/okqzs7zy1/logo.gif", + "banner": "", + "version": 1, + "categories": [ + "tvshow" + ], + "settings": [ + { + "id": "include_in_global_search", + "type": "bool", + "label": "Incluir en busqueda global", + "default": false, + "enabled": false, + "visible": false + }, + { + "id": "include_in_newest_peliculas", + "type": "bool", + "label": "Incluir en Novedades - Peliculas", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_infantiles", + "type": "bool", + "label": "Incluir en Novedades - Infantiles", + "default": true, + "enabled": true, + "visible": true + } + ] +} \ No newline at end of file diff --git a/plugin.video.alfa/channels/novelashdgratis.py b/plugin.video.alfa/channels/novelashdgratis.py new file mode 100644 index 00000000..0fad07f8 --- /dev/null +++ b/plugin.video.alfa/channels/novelashdgratis.py @@ -0,0 +1,164 @@ +# -*- coding: utf-8 -*- +# -*- Channel Novelas HD Gratis -*- +# -*- Created for Alfa-addon -*- +# -*- By the Alfa Develop Group -*- + +import re +from channelselector import get_thumb +from core import httptools +from core import scrapertools +from core import servertools +from core.item import Item +from platformcode import config, logger +from channels import filtertools +from channels import autoplay + +host = 'http://www.novelashdgratis.io' + +IDIOMAS = {'la':'Latino'} +list_language = IDIOMAS.values() +list_quality = [] +list_servers = ['powvideo', + 'netu', + 'playedto', + 'allmyvideos', + 'gamovideo', + 'openload', + 'dailymotion', + 'streamplay', + 'streaminto', + 'youtube', + 'vidoza', + 'flashx'] + +def mainlist(item): + logger.info() + + autoplay.init(item.channel, list_servers, list_quality) + itemlist = list() + + itemlist.append(item.clone(title="En Emision", action="list_all", url=host, type='emision')) + itemlist.append(item.clone(title="Ultimas Agregadas", action="list_all", url=host, type='ultimas')) + itemlist.append(item.clone(title="Todas", action="list_all", url=host, type='todas')) + itemlist.append(item.clone(title="Alfabetico", action="alpha", url=host, type='alfabetico')) + + if autoplay.context: + autoplay.show_option(item.channel, itemlist) + + return itemlist + + +def get_source(url): + logger.info() + data = httptools.downloadpage(url).data + data = re.sub(r'"|\n|\r|\t| |
    |\s{2,}', "", data) + return data + + +def list_all(item): + logger.info() + itemlist =[] + data = get_source(item.url) + no_thumbs= ['emision', 'todas'] + + if item.type not in no_thumbs: + patron = '
    Telenovelas que se Transmiten<\/div>.*?') + if item.type == 'todas': + data = scrapertools.find_single_match(data, 'class=dt>Lista de Novelas<\/div>.*?') + patron = '
  • .*?
  • ' + + matches = re.compile(patron, re.DOTALL).findall(data) + if item.type in no_thumbs: + for scrapedurl, scrapedtitle in matches: + url = host+scrapedurl + contentSerieName = scrapedtitle + title = contentSerieName + new_item = Item(channel=item.channel, title=title, url= url, action='episodes', + contentSerieName= contentSerieName) + itemlist.append(new_item) + else: + for scrapedurl, scrapedtitle, scrapedthumbnail in matches: + url = host + '/'+scrapedurl + contentSerieName = scrapedtitle + title = contentSerieName + thumbnail = scrapedthumbnail + new_item = Item(channel=item.channel, title=title, url=url, action='episodes', thumbnail=thumbnail, + contentSerieName=contentSerieName) + itemlist.append(new_item) + + return itemlist + + +def alpha(item): + logger.info() + itemlist= [] + + data = get_source(item.url) + patron = '' + matches = re.compile(patron,re.DOTALL).findall(data) + + for scrapedurl, scrapedtitle in matches: + itemlist.append(item.clone(title=scrapedtitle, url=host+scrapedurl, action='list_all')) + + return itemlist + + +def episodes(item): + logger.info() + itemlist=[] + + data=get_source(item.url) + patron='
  • (.*?)' + matches = re.compile(patron, re.DOTALL).findall(data) + + for scrapedurl, scrapedtitle in matches: + title = scrapedtitle + url = host+scrapedurl + new_item = Item(channel=item.channel, title=title, url=url, action='findvideos') + itemlist.append(new_item) + + return itemlist [::-1] + +def findvideos(item): + logger.info() + + servers = {'powvideo':'http://powvideo.net/embed-', + 'netu':'http://netu.tv/watch_video.php?v=', + 'played':'http://played.to/embed-', + 'allmy':'http://allmyvideos.net/embed-', + 'gamo':'http://gamovideo.com/embed-', + 'openload':'https://openload.co/embed/', + 'daily':'http://www.dailymotion.com/embed/video/', + 'play':'http://streamplay.to/embed-', + 'streamin':'http://streamin.to/embed-', + 'youtube':'https://www.youtube.com/embed/', + 'vidoza':'https://vidoza.net/embed-', + 'flashx':'https://www.flashx.tv/embed-'} + + + itemlist = [] + data = get_source(item.url) + patron = 'id=tab\d+>