# -*- coding: utf-8 -*- from core import httptools from core import scrapertools from core import servertools from core import tmdb from core.item import Item from platformcode import config, logger __channel__='allcalidad' host = "http://allcalidad.com/" try: __modo_grafico__ = config.get_setting('modo_grafico', __channel__) except: __modo_grafico__ = True def mainlist(item): logger.info() itemlist = [] itemlist.append(Item(channel = item.channel, title = "Novedades", action = "peliculas", url = host)) itemlist.append(Item(channel = item.channel, title = "Por género", action = "generos_years", url = host, extra = "Genero" )) itemlist.append(Item(channel = item.channel, title = "Por año", action = "generos_years", url = host, extra = ">Año<")) itemlist.append(Item(channel = item.channel, title = "Favoritas", action = "peliculas", url = host + "/favorites" )) itemlist.append(Item(channel = item.channel, title = "")) itemlist.append(Item(channel = item.channel, title = "Buscar", action = "search", url = host + "?s=")) return itemlist def newest(categoria): logger.info() itemlist = [] item = Item() try: if categoria == 'peliculas': item.url = host elif categoria == 'infantiles': item.url = host + 'category/animacion/' elif categoria == 'terror': item.url = host + 'category/torror/' itemlist = peliculas(item) if "Pagina" in itemlist[-1].title: itemlist.pop() except: import sys for line in sys.exc_info(): logger.error("{0}".format(line)) return [] return itemlist def search(item, texto): logger.info() texto = texto.replace(" ", "+") item.url = item.url + texto item.extra = "busca" if texto != '': return peliculas(item) else: return [] def generos_years(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data patron = '(?s)%s(.*?)' %item.extra bloque = scrapertools.find_single_match(data, patron) patron = 'href="([^"]+)' patron += '">([^<]+)' matches = scrapertools.find_multiple_matches(bloque, patron) for url, titulo in matches: itemlist.append(Item(channel = item.channel, action = "peliculas", title = titulo, url = url )) return itemlist def peliculas(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data patron = '(?s)short_overlay.*?([^<]+)') 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}') if year: mtitulo += " (" + year + ")" item.infoLabels['year'] = int(year) itemlist.append(item.clone(channel = item.channel, action = "findvideos", title = mtitulo, fulltitle = titulo, thumbnail = thumbnail, url = url, contentTitle = titulo, contentType="movie", language = idioma )) tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__) url_pagina = scrapertools.find_single_match(data, 'next" href="([^"]+)') if url_pagina != "": pagina = "Pagina: " + scrapertools.find_single_match(url_pagina, "page/([0-9]+)") itemlist.append(Item(channel = item.channel, action = "peliculas", title = pagina, url = url_pagina)) return itemlist def findvideos(item): itemlist = [] data = httptools.downloadpage(item.url).data patron = '(?s)fmi(.*?)thead' bloque = scrapertools.find_single_match(data, patron) match = scrapertools.find_multiple_matches(bloque, '(?is)(?:iframe|script) .*?src="([^"]+)') for url in match: titulo = "Ver en: %s" if "goo.gl" in url: url = httptools.downloadpage(url, follow_redirects=False, only_headers=True).headers.get("location", "") if "youtube" in url: titulo = "[COLOR = yellow]Ver trailer: %s[/COLOR]" if "ad.js" in url or "script" in url: continue elif "vimeo" in url: url += "|" + "http://www.allcalidad.com" itemlist.append( item.clone(channel = item.channel, action = "play", title = titulo, url = url )) tmdb.set_infoLabels(itemlist, __modo_grafico__) itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize()) if itemlist: itemlist.append(Item(channel = item.channel)) itemlist.append(item.clone(channel="trailertools", title="Buscar Tráiler", action="buscartrailer", context="", text_color="magenta")) # Opción "Añadir esta película a la biblioteca de KODI" if item.extra != "library": if config.get_videolibrary_support(): itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green", action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail, fulltitle = item.fulltitle )) return itemlist def play(item): item.thumbnail = item.contentThumbnail return [item]