From 875205ca83ff4fcfc9f19f3a8302304b5f3a1e06 Mon Sep 17 00:00:00 2001 From: greko <50103632+greko17@users.noreply.github.com> Date: Sat, 18 May 2019 13:39:26 +0200 Subject: [PATCH 1/6] Eurostreaming e altri file (#32) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Altadefinizione01 L speriamo...io me la cavo! * eurostreaming Sostituiscono gli attuali che hanno i seguenti problemi: 1. Non aprono tutte le serie, in quanto nella pagina del sito si deve cliccare su una voce per aprire la lista degli episodi 2. Quando si aggiungono una serie nella videoteca e si hanno episodi in italiano e sottotitolati, vengono aggiunti correttamente i titoli in italiano ma i video sono sottotitolati. * Update unify.py Proposta per italianizzare le thumb! * Add files via upload * Add files via upload * Delete altadefinizione01_link.json ops! * Delete altadefinizione01_link.py ariops! * Add files via upload aggiunti i server in lista_servers * Update eurostreaming.py aggiunto autoplay nella home menu * Altadefinizione 2 Ci sono problemi con la ricerca dei server. Prende o solo openload o quello e un altro * Update altadefinizione_2.json tolta la parte serie tv * Aggiornamento canale Tolte le voci su TMDB che indicavano la lingua italiana e fatto pulizia di alcuni commenti * Delete altadefinizione_2.json da modificare * Delete altadefinizione_2.py da modificare * Cambio url * fix vari tra cui l'inserimento in videoteca dei giusti video: o ita o sub-ita * Riscrittura canali alla KOD Modificate alcune voci alla maniera di KOD. Da ultimare perchè le voci nel menu: lettera e anno non danno le giuste icone... * Fix completo Riscrittura del canale alla KOD, o almeno in parte! * Piccola aggiunta alle voci Per visualizzare le icone su alcune voci del menu * Riscrittura canale Riscritto il canale. Per delle icone del menu vengono inoltre richieste delle modifiche al file channelselector.py in particolare: 'lucky': ['fortunato'], # se potete inserire la icona anche per questa voce 'channels_musical':['musical'], 'channels_mistery':['mistero', 'giallo'], 'channels_noir':['noir'], 'popular' : ['popolari','popolare', 'più visti'], 'channels_thriller':['thriller'], 'top_rated' : ['fortunato'], #da tocgliere aggiunte la voce lucky o quello che volete 'channels_western':['western'], * Update altadefinizione01_club.py commentato:FilterTools * Update altadefinizione01_link.py commentato: FilterTools * Update altadefinizione01_club.py sistemato un errore * Add files via upload Fixato e rifixato. Dovrebbe essere ok * Set theme jekyll-theme-midnight * Update channelselector.py * Update channelselector.py * Update channelselector.py * sono stati aggiunti e/o modificati dei canali per farli trovare inoltre è stato modificato il support per adattarlo al canale eurostreaming sperando ce ne siano altri simili * eurostreaming e altri file --- _config.yml | 1 + channels/eurostreaming.json | 8 +- channels/eurostreaming.py | 477 ++++++++++------------------------- channels/support.py | 56 ++-- channelselector.py | 1 + servers/decrypters/zcrypt.py | 12 +- servers/deltabit.json | 42 +++ servers/deltabit.py | 68 +++++ servers/streamango.json | 6 +- servers/vidtomestream.json | 41 +++ servers/vidtomestream.py | 33 +++ servers/wstream.py | 6 + 12 files changed, 376 insertions(+), 375 deletions(-) create mode 100644 _config.yml create mode 100644 servers/deltabit.json create mode 100644 servers/deltabit.py create mode 100644 servers/vidtomestream.json create mode 100644 servers/vidtomestream.py diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..18854876 --- /dev/null +++ b/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-midnight \ No newline at end of file diff --git a/channels/eurostreaming.json b/channels/eurostreaming.json index 186b3a5b..d63dde60 100644 --- a/channels/eurostreaming.json +++ b/channels/eurostreaming.json @@ -4,8 +4,8 @@ "active": true, "adult": false, "language": ["ita"], - "thumbnail": "", - "bannermenu": "", + "thumbnail": "https://eurostreaming.cafe/wp-content/uploads/2017/08/logocafe.png", + "bannermenu": "https://eurostreaming.cafe/wp-content/uploads/2017/08/logocafe.png", "categories": ["tvshow","anime"], "settings": [ { @@ -66,8 +66,8 @@ "visible": true, "lvalues": [ "Non filtrare", - "ITA", - "SUB ITA" + "Italiano", + "vosi" ] }, { diff --git a/channels/eurostreaming.py b/channels/eurostreaming.py index c9c6cd9a..2d29a533 100644 --- a/channels/eurostreaming.py +++ b/channels/eurostreaming.py @@ -1,281 +1,133 @@ # -*- coding: utf-8 -*- -# -*- Created or modificated for Alfa-Addon -*- -# -*- adpted for KOD -*- -# -*- By Greko -*- +# ------------------------------------------------------------ +# Canale per Eurostreaming +# adattamento di Cineblog01 +# by Greko +# ------------------------------------------------------------ +""" + Riscritto per poter usufruire del modulo support. + Problemi noti: + Alcun regex possono migliorare + server versystream : 'http://vcrypt.net/very/' # VeryS non decodifica il link :http://vcrypt.net/fastshield/ + server nowvideo.club da implementare nella cartella servers, altri server nei meandri del sito?! + Alcune sezioni di anime-cartoni non vanno, alcune hanno solo la lista degli episodi, ma non hanno link + altre cambiano la struttura + La sezione novità non fa apparire il titolo degli episodi +""" -#import base64 import re -import urlparse -# gli import sopra sono da includere all'occorrenza -# per url con ad.fly -from lib import unshortenit -from channelselector import get_thumb -from channels import autoplay -from channels import filtertools -from core import httptools -from core import scrapertoolsV2 -from core import servertools +from channels import autoplay, filtertools, support +from core import scrapertoolsV2, httptools, servertools, tmdb from core.item import Item -from core import channeltools -from core import tmdb -from platformcode import config, logger +from platformcode import logger, config -__channel__ = "eurostreaming" #stesso di id nel file json -#host = "https://eurostreaming.zone/" -#host = "https://eurostreaming.black/" -host = "https://eurostreaming.cafe/" #aggiornato al 30-04-2019 +host = "https://eurostreaming.cafe/" +headers = ['Referer', host] -# ======== def per utility INIZIO ============================= -try: - __modo_grafico__ = config.get_setting('modo_grafico', __channel__) - __perfil__ = int(config.get_setting('perfil', __channel__)) -except: - __modo_grafico__ = True - __perfil__ = 0 - -# Fijar perfil de color -perfil = [['0xFFFFE6CC', '0xFFFFCE9C', '0xFF994D00', '0xFFFE2E2E', '0xFFFFD700'], - ['0xFFA5F6AF', '0xFF5FDA6D', '0xFF11811E', '0xFFFE2E2E', '0xFFFFD700'], - ['0xFF58D3F7', '0xFF2E9AFE', '0xFF2E64FE', '0xFFFE2E2E', '0xFFFFD700']] - -if __perfil__ < 3: - color1, color2, color3, color4, color5 = perfil[__perfil__] -else: - color1 = color2 = color3 = color4 = color5 = "" - -__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', __channel__) -__comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', __channel__) - -headers = [['User-Agent', 'Mozilla/50.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'], - ['Referer', host]]#,['Accept-Language','it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3']] - -parameters = channeltools.get_channel_parameters(__channel__) -fanart_host = parameters['fanart'] -thumbnail_host = parameters['thumbnail'] - -IDIOMAS = {'Italiano': 'IT', 'VOSI':'SUB ITA'} +IDIOMAS = {'Italiano': 'IT'} list_language = IDIOMAS.values() -# per l'autoplay -list_servers = ['openload', 'speedvideo', 'wstream', 'streamango' 'flashx', 'nowvideo'] -list_quality = ['default'] +list_servers = ['verystream', 'wstream', 'speedvideo', 'flashx', 'nowvideo', 'streamango', 'deltabit', 'openload'] +list_quality = ['default'] -# =========== home menu =================== +__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'eurostreaming') +__comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', 'eurostreaming') def mainlist(item): - logger.info("icarus.eurostreaming mainlist") + support.log() itemlist = [] - title = '' + + support.menu(itemlist, 'Serie TV', 'serietv', host, 'episode') # mettere sempre episode per serietv, anime!! + support.menu(itemlist, 'Serie TV Archivio submenu', 'serietv', host + "category/serie-tv-archive/", 'episode') + support.menu(itemlist, 'Ultimi Aggiornamenti submenu', 'serietv', host + 'aggiornamento-episodi/', 'episode', args='True') + support.menu(itemlist, 'Anime / Cartoni', 'serietv', host + 'category/anime-cartoni-animati/', 'episode') + support.menu(itemlist, 'Cerca...', 'search', host, 'episode') + # richiesto per autoplay autoplay.init(item.channel, list_servers, list_quality) - - itemlist = [ - Item(channel=__channel__, title="Serie TV", - contentTitle = __channel__, action="serietv", - #extra="tvshow", - text_color=color4, - url="%s/category/serie-tv-archive/" % host, - infoLabels={'plot': item.category}, - thumbnail = get_thumb(title, auto = True) - ), - Item(channel=__channel__, title="Ultimi Aggiornamenti", - contentTitle = __channel__, action="elenco_aggiornamenti_serietv", - text_color=color4, url="%saggiornamento-episodi/" % host, - #category = __channel__, - extra="tvshow", - infoLabels={'plot': item.category}, - thumbnail = get_thumb(title, auto = True) - ), - Item(channel=__channel__, - title="Anime / Cartoni", - action="serietv", - extra="tvshow", - text_color=color4, - url="%s/category/anime-cartoni-animati/" % host, - thumbnail= get_thumb(title, auto = True) - ), - Item(channel=__channel__, - title="[COLOR yellow]Cerca...[/COLOR]", - action="search", - extra="tvshow", - text_color=color4, - thumbnail= get_thumb(title, auto = True) - ), - ] - autoplay.show_option(item.channel, itemlist) - + return itemlist -# ======== def in ordine di menu =========================== -def serietv(item): - - logger.info("%s serietv log: %s" % (__channel__, item)) +def serietv(item): + support.log() itemlist = [] - # Carica la pagina - data = httptools.downloadpage(item.url).data - - # Estrae i contenuti - patron = '
\s*\s* 0: - scrapedurl = urlparse.urljoin(item.url, matches[0]) - itemlist.append( - Item( - channel=item.channel, - action="serietv", - title="[COLOR lightgreen]" + config.get_localized_string(30992) + "[/COLOR]", - url=scrapedurl, - thumbnail= - "http://2.bp.blogspot.com/-fE9tzwmjaeQ/UcM2apxDtjI/AAAAAAAAeeg/WKSGM2TADLM/s1600/pager+old.png", - extra=item.extra, - folder=True)) + if item.args: + # il titolo degli episodi viene inglobato in episode ma non sono visibili in newest!!! + patron = r'(.*?).[^–](.*?)<\/a>' + listGroups = ['title', 'url', 'episode'] + patronNext = '' + else: + patron = r'
.*?\s(.*?(?:\((\d{4})\)|(\d{4}))?)<\/a><\/h2>' + listGroups = ['thumb', 'url', 'title', 'year', 'year'] + patronNext='a class="next page-numbers" href="?([^>"]+)">Avanti »' + itemlist = support.scrape(item, patron_block='', patron=patron, listGroups=listGroups, + patronNext=patronNext, + action='episodios') return itemlist def episodios(item): - #logger.info("%s episodios log: %s" % (__channel__, item)) + support.log() itemlist = [] - - if not(item.lang): - lang_season = {'ITA':0, 'SUB ITA' :0} - # Download pagina + + # Carica la pagina + data = httptools.downloadpage(item.url).data + #======== + if 'clicca qui per aprire' in data.lower(): + item.url = scrapertoolsV2.find_single_match(data, '"go_to":"(.*?)"') + item.url = item.url.replace("\\","") + # Carica la pagina data = httptools.downloadpage(item.url).data - #======== - if 'clicca qui per aprire' in data.lower(): - logger.info("%s CLICCA QUI PER APRIRE GLI EPISODI log: %s" % (__channel__, item)) - item.url = scrapertoolsV2.find_single_match(data, '"go_to":"(.*?)"') - item.url = item.url.replace("\\","") - # Carica la pagina - data = httptools.downloadpage(item.url).data - #logger.info("%s FINE CLICCA QUI PER APRIRE GLI EPISODI log: %s" % (__channel__, item)) - elif 'clicca qui' in data.lower(): - logger.info("%s inizio CLICCA QUI log: %s" % (__channel__, item)) - item.url = scrapertoolsV2.find_single_match(data, '

') - data = httptools.downloadpage(item.url).data - #logger.info("%s fine CLICCA QUI log: %s" % (__channel__, item)) - #========= - data = scrapertoolsV2.decodeHtmlentities(data) - bloque = scrapertoolsV2.find_single_match(data, '
(.*?)
') - patron = '(.*?)
' - matches = scrapertoolsV2.find_multiple_matches(bloque, patron) - for scrapedseason in matches: - #logger.info("%s scrapedseason log: %s" % (__channel__, scrapedseason)) - if "(SUB ITA)" in scrapedseason.upper(): - lang = "SUB ITA" - lang_season['SUB ITA'] +=1 - else: - lang = "ITA" - lang_season['ITA'] +=1 - #logger.info("%s lang_dict log: %s" % (__channel__, lang_season)) - - for lang in sorted(lang_season): - if lang_season[lang] > 0: - itemlist.append( - Item(channel = item.channel, - action = "episodios", - #contentType = "episode", - contentSerieName = item.title, - title = '%s (%s)' % (item.title, lang), - url = item.url, - fulltitle = item.title, - data = data, - lang = lang, - show = item.show, - folder = True, - )) + elif 'clicca qui' in data.lower(): + item.url = scrapertoolsV2.find_single_match(data, '

') + # Carica la pagina + data = httptools.downloadpage(item.url).data + #========= + + matches = scrapertoolsV2.find_multiple_matches(data, + r'<\/span>(.*?)

') + for match in matches: + blocks = scrapertoolsV2.find_multiple_matches(match, r'(?:(\d×[a-zA-Z0-9].*?))
') + season_lang = scrapertoolsV2.find_single_match(match, r'<\/span>.*?STAGIONE\s+\d+\s\(([^<>]+)\)').strip() + + logger.info("blocks log: %s" % ( blocks )) + for block in blocks: + season_n, episode_n = scrapertoolsV2.find_single_match(block, r'(\d+)(?:×|×)(\d+)') + titolo = scrapertoolsV2.find_single_match(block, r'[&#;]\d+[ ](?:([a-zA-Z0-9;&#\s]+))[ ]?(?:[^<>])') + logger.info("block log: %s" % ( block )) - # locandine e trama e altro da tmdb se presente l'anno migliora la ricerca - tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True, idioma_busqueda='it') - - return itemlist + titolo = re.sub(r'×|×', "x", titolo).replace("’","'") + item.infoLabels['season'] = season_n # permette di vedere il plot della stagione e... + item.infoLabels['episode'] = episode_n # permette di vedere il plot della puntata e... + + itemlist.append( + Item(channel=item.channel, + action="findvideos", + contentType=item.contentType, + title="[B]" + season_n + "x" + episode_n + " " + titolo + "[/B] " + season_lang, + fulltitle=item.title, # Titolo nel video + show=titolo + ":" + season_n + "x" + episode_n, # sottotitoletto nel video + url=block, + extra=item.extra, + thumbnail=item.thumbnail, + infoLabels=item.infoLabels + )) + + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + + support.videolibrary(itemlist, item) - else: - # qui ci vanno le puntate delle stagioni - html = item.data - logger.info("%s else log: [%s]" % (__channel__, item)) + return itemlist - if item.lang == 'SUB ITA': - item.lang = '\(SUB ITA\)' - logger.info("%s item.lang log: %s" % (__channel__, item.lang)) - bloque = scrapertoolsV2.find_single_match(html, '
(.*?)
') - patron = '.*?'+item.lang+'
(.*?)' # leggo tutte le stagioni - #logger.info("%s patronpatron log: %s" % (__channel__, patron)) - matches = scrapertoolsV2.find_multiple_matches(bloque, patron) - for scrapedseason in matches: - #logger.info("%s scrapedseasonscrapedseason log: %s" % (__channel__, scrapedseason)) - scrapedseason = scrapedseason.replace('','').replace('','') - patron = '(\d+)×(\d+)(.*?)<(.*?)
' # stagione - puntanta - titolo - gruppo link - matches = scrapertoolsV2.find_multiple_matches(scrapedseason, patron) - for scrapedseason, scrapedpuntata, scrapedtitolo, scrapedgroupurl in matches: - #logger.info("%s finale log: %s" % (__channel__, patron)) - scrapedtitolo = scrapedtitolo.replace('–','') - itemlist.append(Item(channel = item.channel, - action = "findvideos", - contentType = "episode", - #contentSerieName = item.contentSerieName, - contentTitle = scrapedtitolo, - title = '%sx%s %s' % (scrapedseason, scrapedpuntata, scrapedtitolo), - url = scrapedgroupurl, - fulltitle = item.fulltitle, - #show = item.show, - #folder = True, - )) - - logger.info("%s itemlistitemlist log: %s" % (__channel__, itemlist)) - - # Opción "Añadir esta película a la biblioteca de KODI" - if item.extra != "library": - if config.get_videolibrary_support() and len(itemlist) > 0 and item.extra != 'findvideos': - itemlist.append(Item(channel=item.channel, title="%s" % config.get_localized_string(30161), - text_color="green", extra="episodios", - action="add_serie_to_library", url=item.url, - thumbnail= get_thumb('videolibrary', auto = True), - contentTitle=item.contentSerieName, lang = item.lang, - show=item.show, data = html - #, infoLabels = item.infoLabels - )) - - return itemlist # =========== def ricerca ============= def search(item, texto): - #logger.info("[eurostreaming.py] " + item.url + " search " + texto) - logger.info("%s search log: %s" % (__channel__, item)) + support.log() item.url = "%s?s=%s" % (host, texto) + try: return serietv(item) # Continua la ricerca in caso di errore @@ -287,16 +139,16 @@ def search(item, texto): # =========== def novità in ricerca globale ============= def newest(categoria): - logger.info("%s newest log: %s" % (__channel__, categoria)) + support.log() itemlist = [] item = Item() try: - + item.args= 'True' item.url = "%saggiornamento-episodi/" % host - item.action = "elenco_aggiornamenti_serietv" - itemlist = elenco_aggiornamenti_serietv(item) + item.action = "serietv" + itemlist = serietv(item) - if itemlist[-1].action == "elenco_aggiornamenti_serietv": + if itemlist[-1].action == "serietv": itemlist.pop() # Continua la ricerca in caso di errore @@ -308,99 +160,38 @@ def newest(categoria): return itemlist -# =========== def pagina aggiornamenti ============= - -# ======== Ultimi Aggiornamenti =========================== -def elenco_aggiornamenti_serietv(item): - """ - def per la lista degli aggiornamenti - """ - logger.info("%s elenco_aggiornamenti_serietv log: %s" % (__channel__, item)) - itemlist = [] - - # Carica la pagina - data = httptools.downloadpage(item.url).data - - # Estrae i contenuti - #bloque = scrapertoolsV2.get_match(data, '
(.*?)
') - bloque = scrapertoolsV2.find_single_match(data, '
(.*?)
') - patron = '(.*?)<.*?href="(.*?)".*?>(.*?)<' - matches = scrapertoolsV2.find_multiple_matches(bloque, patron) - - for scrapedtitle, scrapedurl, scrapedepisodies in matches: - if "(SUB ITA)" in scrapedepisodies.upper(): - lang = "SUB ITA" - scrapedepisodies = scrapedepisodies.replace('(SUB ITA)','') - else: - lang = "ITA" - scrapedepisodies = scrapedepisodies.replace(lang,'') - #num = scrapertoolsV2.find_single_match(scrapedepisodies, '(-\d+/)') - #if num: - # scrapedurl = scrapedurl.replace(num, "-episodi/") - scrapedtitle = scrapedtitle.replace("–", "").replace('\xe2\x80\x93 ','').strip() - scrapedepisodies = scrapedepisodies.replace('\xe2\x80\x93 ','').strip() - itemlist.append( - Item( - channel=item.channel, - action="episodios", - contentType="tvshow", - title = "%s" % scrapedtitle, # %s" % (scrapedtitle, scrapedepisodies), - fulltitle = "%s %s" % (scrapedtitle, scrapedepisodies), - text_color = color5, - url = scrapedurl, - #show = "%s %s" % (scrapedtitle, scrapedepisodies), - extra=item.extra, - #lang = lang, - #data = data, - folder=True)) - - # locandine e trama e altro da tmdb se presente l'anno migliora la ricerca - tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True, idioma_busqueda='it') - - return itemlist - -# =========== def per trovare i video ============= - def findvideos(item): - logger.info("%s findvideos log: %s" % (__channel__, item)) - itemlist = [] - - # Carica la pagina - data = item.url - - matches = re.findall(r'a href="([^"]+)"[^>]*>[^<]+
', data, re.DOTALL) - - data = [] - for url in matches: - url, c = unshortenit.unshorten(url) - data.append(url) - - try: - itemlist = servertools.find_video_items(data=str(data)) - - for videoitem in itemlist: - logger.info("Videoitemlist2: %s" % videoitem) - videoitem.title = "%s [%s]" % (item.contentTitle, videoitem.title)#"[%s] %s" % (videoitem.server, item.title) #"[%s]" % (videoitem.title) - videoitem.show = item.show - videoitem.contentTitle = item.contentTitle - videoitem.contentType = item.contentType - videoitem.channel = item.channel - videoitem.text_color = color5 - #videoitem.language = item.language - videoitem.year = item.infoLabels['year'] - videoitem.infoLabels['plot'] = item.infoLabels['plot'] - except AttributeError: - logger.error("data doesn't contain expected URL") - - # Controlla se i link sono validi - if __comprueba_enlaces__: - itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__) - - # Requerido para FilterTools - # itemlist = filtertools.get_links(itemlist, item, list_language) - - # Requerido para AutoPlay - autoplay.start(itemlist, item) - + support.log() + itemlist =[] + + itemlist = support.server(item, item.url) + + """ + Questa parte funziona se non vanno bene le modifiche a support + """ +## support.log() +## itemlist =[] +## data= '' +## logger.info("Url item.url: [%s] " % item.url) +## +## urls = scrapertoolsV2.find_multiple_matches(item.url, r'href="([^"]+)"') +## itemlist = servertools.find_video_items(data=str(urls)) +## +## for videoitem in itemlist: +## videoitem.title = item.title + ' - [COLOR limegreen][[/COLOR]'+ videoitem.title+ ' [COLOR limegreen]][/COLOR]' +## videoitem.fulltitle = item.fulltitle +## videoitem.thumbnail = item.thumbnail +## videoitem.show = item.show +## videoitem.plot = item.plot +## videoitem.channel = item.channel +## videoitem.contentType = item.contentType +## +## # Controlla se i link sono validi +## if __comprueba_enlaces__: +## itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__) +## +## # richiesto per AutoPlay +## autoplay.start(itemlist, item) + return itemlist diff --git a/channels/support.py b/channels/support.py index 1bdec0f9..139cc0b8 100644 --- a/channels/support.py +++ b/channels/support.py @@ -136,7 +136,7 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data="" matches = scrapertoolsV2.find_multiple_matches(block, patron) log('MATCHES =', matches) - known_keys = ['url', 'title', 'thumb', 'quality', 'year', 'plot', 'duration', 'genere', 'rating'] + known_keys = ['url', 'title', 'episode', 'thumb', 'quality', 'year', 'plot', 'duration', 'genere', 'rating'] #by greko aggiunto episode for match in matches: if len(listGroups) > len(match): # to fix a bug match = list(match) @@ -152,8 +152,10 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data="" title = scrapertoolsV2.decodeHtmlentities(scraped["title"]).strip() plot = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["plot"])) - if scraped["quality"]: - longtitle = '[B]' + title + '[/B] [COLOR blue][' + scraped["quality"] + '][/COLOR]' + if (scraped["quality"] and scraped["episode"]): # by greko aggiunto episode + longtitle = '[B]' + title + '[/B] - [B]' + scraped["episode"] + '[/B][COLOR blue][' + scraped["quality"] + '][/COLOR]' # by greko aggiunto episode + elif scraped["episode"]: # by greko aggiunto episode + longtitle = '[B]' + title + '[/B] - [B]' + scraped["episode"] + '[/B]' # by greko aggiunto episode else: longtitle = '[B]' + title + '[/B]' @@ -438,7 +440,7 @@ def match(item, patron='', patron_block='', headers='', url=''): def videolibrary(itemlist, item, typography=''): - if item.contentType == 'movie': + if item.contentType != 'episode': action = 'add_pelicula_to_library' extra = 'findvideos' contentType = 'movie' @@ -448,28 +450,25 @@ def videolibrary(itemlist, item, typography=''): contentType = 'tvshow' title = typo(config.get_localized_string(30161) + ' ' + typography) - if inspect.stack()[1][3] == 'findvideos' and contentType == 'movie' or inspect.stack()[1][3] != 'findvideos' and contentType != 'movie': - if config.get_videolibrary_support() and len(itemlist) > 0: - itemlist.append( - Item(channel=item.channel, - title=title, - contentType=contentType, - contentSerieName=item.fulltitle if contentType == 'tvshow' else '', - url=item.url, - action=action, - extra=extra, - contentTitle=item.fulltitle)) - return itemlist + if config.get_videolibrary_support() and len(itemlist) > 0: + itemlist.append( + Item(channel=item.channel, + title=title, + contentType=contentType, + contentSerieName=item.fulltitle if contentType == 'tvshow' else '', + url=item.url, + action=action, + extra=extra, + contentTitle=item.fulltitle)) + def nextPage(itemlist, item, data, patron, function_level=1): # Function_level is useful if the function is called by another function. # If the call is direct, leave it blank next_page = scrapertoolsV2.find_single_match(data, patron) - - if next_page != "": - if 'http' not in next_page: - next_page = scrapertoolsV2.find_single_match(item.url, 'https?://[a-z0-9.-]+') + next_page + if 'http' not in next_page: + next_page = scrapertoolsV2.find_single_match(item.url, 'https?://[a-z0-9.-]+') + next_page log('NEXT= ', next_page) if next_page != "": @@ -484,17 +483,24 @@ def nextPage(itemlist, item, data, patron, function_level=1): return itemlist - def server(item, data='', headers='', AutoPlay=True, CheckLinks=True): - + __comprueba_enlaces__ = config.get_setting('comprueba_enlaces', item.channel) log(__comprueba_enlaces__ ) __comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', item.channel) log(__comprueba_enlaces_num__ ) - + if not data: data = httptools.downloadpage(item.url, headers=headers).data - + ## fix by greko + # se inviamo un blocco di url dove cercare i video + if type(data) == list: + data = str(item.url) + else: + # se inviamo un singolo url dove cercare il video + data = item.url + ## FINE fix by greko + itemlist = servertools.find_video_items(data=data) for videoitem in itemlist: @@ -529,4 +535,4 @@ def log(stringa1="", stringa2="", stringa3="", stringa4="", stringa5=""): frame = inspect.stack()[1] filename = frame[0].f_code.co_filename filename = os.path.basename(filename) - logger.info("[" + filename + "] - [" + inspect.stack()[1][3] + "] " + str(stringa1) + str(stringa2) + str(stringa3) + str(stringa4) + str(stringa5)) \ No newline at end of file + logger.info("[" + filename + "] - [" + inspect.stack()[1][3] + "] " + str(stringa1) + str(stringa2) + str(stringa3) + str(stringa4) + str(stringa5)) diff --git a/channelselector.py b/channelselector.py index 4286eb8c..87323a90 100644 --- a/channelselector.py +++ b/channelselector.py @@ -96,6 +96,7 @@ def getchanneltypes(view="thumb_"): # viewmode="thumbnails")) + itemlist.append(Item(title=config.get_localized_string(70685), channel="community", action="mainlist", view=view, category=title, channel_type="all", thumbnail=get_thumb("channels_community.png", view), viewmode="thumbnails")) diff --git a/servers/decrypters/zcrypt.py b/servers/decrypters/zcrypt.py index 4956587b..0b69451e 100644 --- a/servers/decrypters/zcrypt.py +++ b/servers/decrypters/zcrypt.py @@ -44,10 +44,18 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= elif 'vcrypt.net' in url: from lib import unshortenit data, status = unshortenit.unshorten(url) - + logger.info("Data - Status zcrypt vcrypt.net: [%s] [%s] " %(data, status)) elif 'linkup' in url: idata = httptools.downloadpage(url).data data = scrapertoolsV2.find_single_match(idata, "]*src=\\'([^'>]*)\\'[^<>]*>") + #fix by greko inizio + if not data: + data = scrapertoolsV2.find_single_match(idata, 'action="(?:[^/]+.*?/[^/]+/([a-zA-Z0-9_]+))">') + if '/olink/' in url or '/delta/' in url or '/mango/' in url or '/now/' in url: + from lib import unshortenit + data, status = unshortenit.unshorten(url) + logger.info("Data - Status zcrypt linkup : [%s] [%s] " %(data, status)) + # fix by greko fine else: data = "" while host in url: @@ -63,7 +71,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= else: logger.info(" url duplicada=" + url) - patron = r"""(https?://(?:www\.)?(?:threadsphere\.bid|adf\.ly|q\.gs|j\.gs|u\.bb|ay\.gy|linkbucks\.com|any\.gs|cash4links\.co|cash4files\.co|dyo\.gs|filesonthe\.net|goneviral\.com|megaline\.co|miniurls\.co|qqc\.co|seriousdeals\.net|theseblogs\.com|theseforums\.com|tinylinks\.co|tubeviral\.com|ultrafiles\.net|urlbeat\.net|whackyvidz\.com|yyv\.co|adfoc\.us|lnx\.lu|sh\.st|href\.li|anonymz\.com|shrink-service\.it|rapidcrypt\.net)/[^"']+)""" + patron = r"""(https?://(?:www\.)?(?:threadsphere\.bid|adf\.ly|q\.gs|j\.gs|u\.bb|ay\.gy|linkbucks\.com|any\.gs|cash4links\.co|cash4files\.co|dyo\.gs|filesonthe\.net|goneviral\.com|megaline\.co|miniurls\.co|qqc\.co|seriousdeals\.net|theseblogs\.com|theseforums\.com|tinylinks\.co|tubeviral\.com|ultrafiles\.net|urlbeat\.net|whackyvidz\.com|yyv\.co|adfoc\.us|lnx\.lu|sh\.st|href\.li|anonymz\.com|shrink-service\.it|rapidcrypt\.netz|ecleneue\.com)/[^"']+)""" logger.info(" find_videos #" + patron + "#") matches = re.compile(patron).findall(page_url) diff --git a/servers/deltabit.json b/servers/deltabit.json new file mode 100644 index 00000000..f1f5a56d --- /dev/null +++ b/servers/deltabit.json @@ -0,0 +1,42 @@ +{ + "active": true, + "find_videos": { + "ignore_urls": [], + "patterns": [ + { + "pattern": "https://deltabit.co/([A-z0-9]+)", + "url": "https://deltabit.co/\\1" + } + ] + }, + "free": true, + "id": "deltabit", + "name": "deltabit", + "settings": [ + { + "default": false, + "enabled": true, + "id": "black_list", + "label": "@60654", + "type": "bool", + "visible": true + }, + { + "default": 0, + "enabled": true, + "id": "favorites_servers_list", + "label": "@60655", + "lvalues": [ + "No", + "1", + "2", + "3", + "4", + "5" + ], + "type": "list", + "visible": false + } + ], + "thumbnail": "https://deltabit.co/img/logo.png" +} diff --git a/servers/deltabit.py b/servers/deltabit.py new file mode 100644 index 00000000..d3229782 --- /dev/null +++ b/servers/deltabit.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- + +import urllib +from core import httptools +from core import scrapertools +from platformcode import logger + +import time + +def test_video_exists(page_url): + logger.info("(page_url='%s')" % page_url) + data = httptools.downloadpage(page_url).data + if "Not Found" in data or "File Does not Exist" in data: + return False, "[deltabit] El fichero no existe o ha sido borrado" + return True, "" + + +def get_video_url(page_url, premium=False, user="", password="", video_password=""): + logger.info("(deltabit page_url='%s')" % page_url) + video_urls = [] + data = httptools.downloadpage(page_url).data + data = data.replace('"', "'") + page_url_post = scrapertools.find_single_match(data, "
") + imhuman = "&imhuman=" + scrapertools.find_single_match(data, "name='imhuman' value='([^']+)'").replace(" ", "+") + post = urllib.urlencode({k: v for k, v in scrapertools.find_multiple_matches(data, "name='([^']+)' value='([^']*)'")}) + imhuman + time.sleep(6) + data = httptools.downloadpage(page_url_post, post=post).data +## logger.info("(data page_url='%s')" % data) + sources = scrapertools.find_single_match(data, 'sources: \[([^\]]+)\]') + + for media_url in scrapertools.find_multiple_matches(sources, '"([^"]+)"'): + ext = scrapertools.get_filename_from_url(media_url)[-4:] + video_urls.append(["%s [deltabit]" % (ext), media_url]) + return video_urls + +## logger.info("deltabit url=" + page_url) +## data = httptools.downloadpage(page_url).data +## code = scrapertools.find_multiple_matches(data, ' Date: Sat, 18 May 2019 14:42:11 +0200 Subject: [PATCH 2/6] some fixes to greko's pull --- channels/eurostreaming.py | 30 +------------------------- channels/support.py | 30 ++++++++++++-------------- servers/decrypters/zcrypt.py | 7 +++--- servers/vidtome.json | 4 ++++ servers/vidtomestream.json | 41 ------------------------------------ servers/vidtomestream.py | 33 ----------------------------- 6 files changed, 21 insertions(+), 124 deletions(-) delete mode 100644 servers/vidtomestream.json delete mode 100644 servers/vidtomestream.py diff --git a/channels/eurostreaming.py b/channels/eurostreaming.py index 2d29a533..841f9c21 100644 --- a/channels/eurostreaming.py +++ b/channels/eurostreaming.py @@ -96,7 +96,7 @@ def episodios(item): logger.info("blocks log: %s" % ( blocks )) for block in blocks: season_n, episode_n = scrapertoolsV2.find_single_match(block, r'(\d+)(?:×|×)(\d+)') - titolo = scrapertoolsV2.find_single_match(block, r'[&#;]\d+[ ](?:([a-zA-Z0-9;&#\s]+))[ ]?(?:[^<>])') + titolo = scrapertoolsV2.find_single_match(block, r'[&#;]\d+[ ]([a-zA-Z0-9;&#.\s]+)[ ]?[^<>]') logger.info("block log: %s" % ( block )) titolo = re.sub(r'×|×', "x", titolo).replace("’","'") @@ -166,32 +166,4 @@ def findvideos(item): itemlist = support.server(item, item.url) - - """ - Questa parte funziona se non vanno bene le modifiche a support - """ -## support.log() -## itemlist =[] -## data= '' -## logger.info("Url item.url: [%s] " % item.url) -## -## urls = scrapertoolsV2.find_multiple_matches(item.url, r'href="([^"]+)"') -## itemlist = servertools.find_video_items(data=str(urls)) -## -## for videoitem in itemlist: -## videoitem.title = item.title + ' - [COLOR limegreen][[/COLOR]'+ videoitem.title+ ' [COLOR limegreen]][/COLOR]' -## videoitem.fulltitle = item.fulltitle -## videoitem.thumbnail = item.thumbnail -## videoitem.show = item.show -## videoitem.plot = item.plot -## videoitem.channel = item.channel -## videoitem.contentType = item.contentType -## -## # Controlla se i link sono validi -## if __comprueba_enlaces__: -## itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__) -## -## # richiesto per AutoPlay -## autoplay.start(itemlist, item) - return itemlist diff --git a/channels/support.py b/channels/support.py index 139cc0b8..4dc641fb 100644 --- a/channels/support.py +++ b/channels/support.py @@ -152,7 +152,7 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data="" title = scrapertoolsV2.decodeHtmlentities(scraped["title"]).strip() plot = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["plot"])) - if (scraped["quality"] and scraped["episode"]): # by greko aggiunto episode + if scraped["quality"] and scraped["episode"]: # by greko aggiunto episode longtitle = '[B]' + title + '[/B] - [B]' + scraped["episode"] + '[/B][COLOR blue][' + scraped["quality"] + '][/COLOR]' # by greko aggiunto episode elif scraped["episode"]: # by greko aggiunto episode longtitle = '[B]' + title + '[/B] - [B]' + scraped["episode"] + '[/B]' # by greko aggiunto episode @@ -450,16 +450,17 @@ def videolibrary(itemlist, item, typography=''): contentType = 'tvshow' title = typo(config.get_localized_string(30161) + ' ' + typography) - if config.get_videolibrary_support() and len(itemlist) > 0: - itemlist.append( - Item(channel=item.channel, - title=title, - contentType=contentType, - contentSerieName=item.fulltitle if contentType == 'tvshow' else '', - url=item.url, - action=action, - extra=extra, - contentTitle=item.fulltitle)) + if inspect.stack()[1][3] == 'findvideos' and contentType == 'movie' or inspect.stack()[1][3] != 'findvideos' and contentType != 'movie': + if config.get_videolibrary_support() and len(itemlist) > 0: + itemlist.append( + Item(channel=item.channel, + title=title, + contentType=contentType, + contentSerieName=item.fulltitle if contentType == 'tvshow' else '', + url=item.url, + action=action, + extra=extra, + contentTitle=item.fulltitle)) def nextPage(itemlist, item, data, patron, function_level=1): @@ -493,12 +494,7 @@ def server(item, data='', headers='', AutoPlay=True, CheckLinks=True): if not data: data = httptools.downloadpage(item.url, headers=headers).data ## fix by greko - # se inviamo un blocco di url dove cercare i video - if type(data) == list: - data = str(item.url) - else: - # se inviamo un singolo url dove cercare il video - data = item.url + data = str(item.url) ## FINE fix by greko itemlist = servertools.find_video_items(data=data) diff --git a/servers/decrypters/zcrypt.py b/servers/decrypters/zcrypt.py index 0b69451e..ed5c0210 100644 --- a/servers/decrypters/zcrypt.py +++ b/servers/decrypters/zcrypt.py @@ -51,10 +51,9 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= #fix by greko inizio if not data: data = scrapertoolsV2.find_single_match(idata, 'action="(?:[^/]+.*?/[^/]+/([a-zA-Z0-9_]+))">') - if '/olink/' in url or '/delta/' in url or '/mango/' in url or '/now/' in url: - from lib import unshortenit - data, status = unshortenit.unshorten(url) - logger.info("Data - Status zcrypt linkup : [%s] [%s] " %(data, status)) + from lib import unshortenit + data, status = unshortenit.unshorten(url) + logger.info("Data - Status zcrypt linkup : [%s] [%s] " %(data, status)) # fix by greko fine else: data = "" diff --git a/servers/vidtome.json b/servers/vidtome.json index f6bb5618..18320065 100644 --- a/servers/vidtome.json +++ b/servers/vidtome.json @@ -6,6 +6,10 @@ { "pattern": "vidto.me/(?:embed-|)([A-z0-9]+)", "url": "http://vidto.me/embed-\\1.html" + }, + { + "pattern": "vidtome.stream/(?:embed-|)([A-z0-9]+)", + "url": "http://vidtome.stream/\\1.html" } ] }, diff --git a/servers/vidtomestream.json b/servers/vidtomestream.json deleted file mode 100644 index de9475b4..00000000 --- a/servers/vidtomestream.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "vidtome.stream/(?:embed-|)([A-z0-9]+)", - "url": "http://vidtome.stream/\\1.html" - } - ] - }, - "free": true, - "id": "vidtomestream", - "name": "vidtomestream", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ] -} diff --git a/servers/vidtomestream.py b/servers/vidtomestream.py deleted file mode 100644 index dbe67c12..00000000 --- a/servers/vidtomestream.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -# -*- copiato e adattato da vidtome -*- -# -*- by Greko -*- - -from core import httptools -from core import scrapertools -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - data = httptools.downloadpage(page_url).data - if "Not Found" in data or "File Does not Exist" in data: - return False, "[vidtomestream] Il video non esiste o ha sido borrado" - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - data = httptools.downloadpage(page_url).data - code = scrapertools.find_single_match(data, 'name="code" value="([^"]+)') - hash = scrapertools.find_single_match(data, 'name="hash" value="([^"]+)') - post = "op=download1&code=%s&hash=%s&imhuman=Proceed+to+video" %(code, hash) - data1 = httptools.downloadpage("http://m.vidtome.stream/playvideo/%s" %code, post=post).data - video_urls = [] - media_urls = scrapertools.find_multiple_matches(data1, 'file: "([^"]+)') - for media_url in media_urls: - ext = scrapertools.get_filename_from_url(media_url)[-4:] - video_urls.append(["%s [vidtomestream]" % (ext), media_url]) - video_urls.reverse() - for video_url in video_urls: - logger.info("%s" % (video_url[0])) - return video_urls From 0776288de1b163f56865f2d2a4e5910ebe32e365 Mon Sep 17 00:00:00 2001 From: Alhaziel Date: Sat, 18 May 2019 17:42:23 +0200 Subject: [PATCH 3/6] Fixes and implementation --- channels/autorenumber.py | 27 ++++++++++++++++++++++----- resources/language/English/strings.po | 14 +++++++++----- resources/language/Italian/strings.po | 18 +++++++++++------- 3 files changed, 42 insertions(+), 17 deletions(-) diff --git a/channels/autorenumber.py b/channels/autorenumber.py index 6646327e..e0146a71 100644 --- a/channels/autorenumber.py +++ b/channels/autorenumber.py @@ -44,11 +44,25 @@ def config_item(item): tvdb.find_and_set_infoLabels(item) data = '' data = add_season(data) - if not item.infoLabels['tvdb_id']: - heading = 'TVDB ID' - item.infoLabels['tvdb_id'] = platformtools.dialog_numeric(0, heading) + title = item.show + count = 0 + + while not item.infoLabels['tvdb_id']: + try: + item.show = platformtools.dialog_input(default=item.show, heading=config.get_localized_string(30112)) + tvdb.find_and_set_infoLabels(item) + count = count + 1 + except: + heading = config.get_localized_string(70704) + item.infoLabels['tvdb_id'] = platformtools.dialog_numeric(0, heading) data.append(item.infoLabels['tvdb_id']) - write_data(item.from_channel, item.show, data) + if item.infoLabels['tvdb_id'] != 0: + write_data(item.from_channel, title, data) + else: + message = config.get_localized_string(60444) + heading = item.show.strip() + platformtools.dialog_notification(heading, message) + def add_season(data=None): @@ -59,6 +73,7 @@ def add_season(data=None): if season != "": heading = config.get_localized_string(70687) episode = platformtools.dialog_numeric(0, heading) + if episode == "0": heading = config.get_localized_string(70688) special = platformtools.dialog_numeric(0, heading) @@ -92,6 +107,8 @@ def write_data(channel, show, data): heading = show.strip() platformtools.dialog_notification(heading, message) + + def renumber(itemlist, item='', typography=''): log() @@ -118,7 +135,7 @@ def renumber(itemlist, item='', typography=''): if E == 0: epList.append([0, SP]) E = 1 - if episodes['airedEpisodeNumber'] >= E: + if episodes['airedEpisodeNumber'] >= E or episodes['airedSeason'] > S: epList.append([episodes['airedSeason'], episodes['airedEpisodeNumber']]) page = page + 1 else: diff --git a/resources/language/English/strings.po b/resources/language/English/strings.po index 0fe9bbdb..e8ea9088 100644 --- a/resources/language/English/strings.po +++ b/resources/language/English/strings.po @@ -2797,12 +2797,12 @@ msgctxt "#70020" msgid "[COLOR yellow]Search similar[/COLOR]" msgstr "" -msgctxt "#70021" -msgid "Search in TMDB" +msgctxt "#70022" +msgid " - Movies" msgstr "" -msgctxt "#70022" -msgid " - Movies" +msgctxt "#70023" +msgid " - TV Shows" msgstr "" msgctxt "#70023" @@ -10446,7 +10446,7 @@ msgid "Enter the number of the starting episode" msgstr "" msgctxt "#70688" -msgid "Episode 0 is a special episode, enter the number of this episode" +msgid "Episode 0 is a special episode, enter the number of this episode (0 to skip it)" msgstr "" msgctxt "#70689" @@ -10502,4 +10502,8 @@ msgstr "" msgctxt "#70703" msgid "Create directories with lowercase letters" +msgstr "" + +msgctxt "#70704" +msgid "TMDB ID (0 to cancel)" msgstr "" \ No newline at end of file diff --git a/resources/language/Italian/strings.po b/resources/language/Italian/strings.po index a400bfdb..02006c0c 100644 --- a/resources/language/Italian/strings.po +++ b/resources/language/Italian/strings.po @@ -2794,12 +2794,12 @@ msgid "Search in TMDB" msgstr "Cerca in TMDB" msgctxt "#70022" -msgid " - Movies" -msgstr " - Film" +msgid " - Movies" +msgstr " - Film" msgctxt "#70023" -msgid " - TV Shows" -msgstr " - Serie TV" +msgid " - TV Shows" +msgstr " - Serie TV" msgctxt "#70024" msgid "Search in Filmaffinity" @@ -5431,8 +5431,8 @@ msgid "Enter the number of the starting episode" msgstr "Inserisci il numero dell'episodio di partenza" msgctxt "#70688" -msgid "Episode 0 is a special episode, enter the number of this episode" -msgstr "L'episodio 0 è un episodio speciale, inserisci il numero di questo episodio" +msgid "Episode 0 is a special episode, enter the number of this episode (0 to skip it)" +msgstr "L'episodio 0 è un episodio speciale, inserisci il numero di questo episodio (0 per saltare)" msgctxt "#70689" msgid "Enable Download" @@ -5488,4 +5488,8 @@ msgstr "Riavvia Kodi per applicare le modifiche" msgctxt "#70703" msgid "Create directories with lowercase letters" -msgstr "Crea cartelle con le lettere minuscole" \ No newline at end of file +msgstr "Crea cartelle con le lettere minuscole" + +msgctxt "#70704" +msgid "TMDB ID (0 to cancel)" +msgstr "TMDB ID (0 per annullare)" \ No newline at end of file From 4e361dd78da29f5772b7570b01b7159b6ba48a42 Mon Sep 17 00:00:00 2001 From: Alhaziel Date: Sat, 18 May 2019 17:43:16 +0200 Subject: [PATCH 4/6] Bullet Point working for check_video_link --- core/servertools.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/servertools.py b/core/servertools.py index 10e0886a..40dbdbf3 100644 --- a/core/servertools.py +++ b/core/servertools.py @@ -727,13 +727,13 @@ def check_video_link(url, server, timeout=3): :return: str(2) '??':No se ha podido comprobar. 'Ok':Parece que el link funciona. 'NO':Parece que no funciona. """ - # NK = "[COLOR 0xFFF9B613][B]" + u"\u25cf" + "[/B][/COLOR]" - # OK = "[COLOR 0xFF00C289][B]" + u"\u25cf" + "[/B][/COLOR]" - # KO = "[COLOR 0xFFC20000][B]" + u"\u25cf" + "[/B][/COLOR]" + NK = "[COLOR 0xFFF9B613][B]" + u"\u25cf".encode('utf-8') + "[/B][/COLOR]" + OK = "[COLOR 0xFF00C289][B]" + u"\u25cf".encode('utf-8') + "[/B][/COLOR]" + KO = "[COLOR 0xFFC20000][B]" + u"\u25cf".encode('utf-8') + "[/B][/COLOR]" - NK = "[COLOR 0xFFF9B613][B]O[/B][/COLOR]" - OK = "[COLOR 0xFF00C289][B]O[/B][/COLOR]" - KO = "[COLOR 0xFFC20000][B]O[/B][/COLOR]" + # NK = "[COLOR 0xFFF9B613][B]O[/B][/COLOR]" + # OK = "[COLOR 0xFF00C289][B]O[/B][/COLOR]" + # KO = "[COLOR 0xFFC20000][B]O[/B][/COLOR]" try: server_module = __import__('servers.%s' % server, None, None, ["servers.%s" % server]) From ed4131f98575c268dbf51fba34bf578092758ba5 Mon Sep 17 00:00:00 2001 From: Alhaziel Date: Sat, 18 May 2019 19:04:19 +0200 Subject: [PATCH 5/6] Removed some ugly colors (work in progress) --- channels/tvmoviedb.py | 318 ++++++++++++++++++++---------------------- 1 file changed, 151 insertions(+), 167 deletions(-) diff --git a/channels/tvmoviedb.py b/channels/tvmoviedb.py index 24bc74a2..30486b7f 100644 --- a/channels/tvmoviedb.py +++ b/channels/tvmoviedb.py @@ -14,6 +14,8 @@ from core import trakt_tools from platformcode import config, logger from platformcode import platformtools import xbmc, xbmcaddon +from channelselector import get_thumb +from channels.support import typo, thumb addon = xbmcaddon.Addon('metadata.themoviedb.org') def_lang = addon.getSetting('language') @@ -46,38 +48,39 @@ if langi == 'auto': adult_mal = config.get_setting('adult_mal', "tvmoviedb") mal_ck = "MzE1MDQ2cGQ5N2llYTY4Z2xwbGVzZjFzbTY=" images_predef = "https://raw.githubusercontent.com/master-1970/resources/master/images/genres/" -default_fan = filetools.join(config.get_runtime_path(), "fanart1.jpg") +default_fan = filetools.join(config.get_runtime_path(), "fanart.jpg") +logger.info('FANART= '+default_fan) def mainlist(item): logger.info() - item.text_color = color1 itemlist = [] - - itemlist.append(item.clone(title=config.get_localized_string(70021), action="", text_color=color2)) + # TMDB + itemlist.append(item.clone(title=typo(config.get_localized_string(70021), 'bold'), action="")) itemlist.append(item.clone(title=config.get_localized_string(70022), action="tmdb", extra="movie", - thumbnail="%s0/Movies.png" % images_predef)) + thumbnail=get_thumb('search_movie.png'))) itemlist.append(item.clone(title=config.get_localized_string(70023), action="tmdb", extra="tv", - thumbnail=images_predef + "0/TV%20Series.png")) - itemlist.append(item.clone(title=config.get_localized_string(70024), action="", text_color=color2)) + thumbnail=get_thumb('search_tvshow.png'))) + # Filmaffinity + itemlist.append(item.clone(title=typo(config.get_localized_string(70024), 'bold'), action="")) itemlist.append(item.clone(title=config.get_localized_string(70022), action="filmaf", extra="movie", - thumbnail="%s0/Movies.png" % images_predef)) + thumbnail=get_thumb('search_movie.png'))) itemlist.append(item.clone(title=config.get_localized_string(70023), action="filmaf", extra="tv", - thumbnail=images_predef + "0/TV%20Series.png")) - itemlist.append(item.clone(title=config.get_localized_string(70025), action="", text_color=color2)) + thumbnail=get_thumb('search_tvshow.png'))) + # IMDB + itemlist.append(item.clone(title=typo(config.get_localized_string(70025), 'bold'), action="")) itemlist.append(item.clone(title=config.get_localized_string(70022), action="imdb", extra="movie", url='&title_type=feature,tv_movie', - thumbnail="%s0/Movies.png" % images_predef)) + thumbnail=get_thumb('search_movie.png'))) itemlist.append(item.clone(title=config.get_localized_string(70023), action="imdb", extra="tv", url='&title_type=tv_series,tv_special,mini_series', - thumbnail=images_predef + "0/TV%20Series.png")) + thumbnail=get_thumb('search_tvshow.png'))) itemlist.append( - item.clone(title=config.get_localized_string(70415), action="trakt", text_color=color2, thumbnail="http://i.imgur.com/5sQjjuk.png")) + item.clone(title=typo(config.get_localized_string(70415), 'bold'), action="trakt", thumbnail="http://i.imgur.com/5sQjjuk.png")) itemlist.append( - item.clone(title=config.get_localized_string(70026), action="mal", text_color=color2, thumbnail="http://i.imgur.com/RhsYWmd.png")) - itemlist.append(item.clone(title="", action="")) + item.clone(title=typo(config.get_localized_string(70026), 'bold'), action="mal", thumbnail="http://i.imgur.com/RhsYWmd.png",)) itemlist.append( - item.clone(title=config.get_localized_string(70027), action="configuracion", text_color=color6, folder=False)) + item.clone(title=typo(config.get_localized_string(70027), 'color kod'), action="configuracion", folder=False)) return itemlist @@ -154,9 +157,8 @@ def tmdb(item): else: itemlist.append(item.clone(title=config.get_localized_string(70031), action="listado_tmdb", search={'url': item.extra + "/on_the_air", 'language': langt, 'page': 1})) - itemlist.append(item.clone(title=config.get_localized_string(70032), action="indices_tmdb", - thumbnail="%s0/Genres.png" % images_predef)) - itemlist.append(item.clone(title=config.get_localized_string(70042), action="indices_tmdb", thumbnail="%s0/Year.png" % images_predef)) + itemlist.append(item.clone(title=config.get_localized_string(70032), action="indices_tmdb")) + itemlist.append(item.clone(title=config.get_localized_string(70042), action="indices_tmdb")) if item.extra == "movie": itemlist.append(item.clone(title=config.get_localized_string(70033), action="listado_tmdb", @@ -175,8 +177,8 @@ def tmdb(item): itemlist.append(item.clone(title=config.get_localized_string(70037), action="search_", search={'url': "search/person", 'language': langt, 'page': 1}, crew=True)) - itemlist.append(item.clone(title=config.get_localized_string(70038), action="filtro", text_color=color4)) - itemlist.append(item.clone(title=config.get_localized_string(70039), action="filtro", text_color=color4)) + itemlist.append(item.clone(title=config.get_localized_string(70038), action="filtro", )) + itemlist.append(item.clone(title=config.get_localized_string(70039), action="filtro", )) return itemlist @@ -191,9 +193,8 @@ def imdb(item): if item.extra == "movie": itemlist.append(item.clone(title=config.get_localized_string(70030), action="listado_imdb", url="http://www.imdb.com/showtimes/location?ref_=inth_ov_sh_sm")) - itemlist.append(item.clone(title=config.get_localized_string(70032), action="indices_imdb", - thumbnail="%s0/Genres.png" % images_predef)) - itemlist.append(item.clone(title=config.get_localized_string(70042), action="indices_imdb", thumbnail="%s0/Year.png" % images_predef)) + itemlist.append(item.clone(title=config.get_localized_string(70032), action="indices_imdb")) + itemlist.append(item.clone(title=config.get_localized_string(70042), action="indices_imdb")) if item.extra == "movie": itemlist.append(item.clone(title=config.get_localized_string(70033), action="listado_imdb", @@ -204,13 +205,13 @@ def imdb(item): if config.get_platform() != "plex": title = item.contentType.replace("movie", config.get_localized_string(70283)).replace("tvshow", "serie") - itemlist.append(item.clone(title="Buscar %s" % title, action="search_", + itemlist.append(item.clone(title=config.get_localized_string(70035) % title, action="search_", url="http://www.imdb.com/search/title?title=" + item.url)) itemlist.append(item.clone(title=config.get_localized_string(70036), action="search_", url="http://www.imdb.com/search/name?name=")) - itemlist.append(item.clone(title=config.get_localized_string(70038), action="filtro_imdb", text_color=color4)) + itemlist.append(item.clone(title=config.get_localized_string(70038), action="filtro_imdb", )) return itemlist @@ -243,30 +244,29 @@ def filmaf(item): itemlist.append(item.clone(title=config.get_localized_string(70044), action="indices_fa", extra="sagas", url="http://www.filmaffinity.com/%s/movie-groups-all.php" % langf)) itemlist.append(item.clone(title=config.get_localized_string(70045), action="indices_fa", - url='http://m.filmaffinity.com/%s/topics.php' % langf, text_color=color3)) + url='http://m.filmaffinity.com/%s/topics.php' % langf, )) if config.get_platform() != "plex": - itemlist.append(item.clone(title=config.get_localized_string(70046), action="search_", text_color=color4, + itemlist.append(item.clone(title=config.get_localized_string(70046), action="search_", url="http://m.filmaffinity.com/%s/search.php?stype=title&stext=" % langf)) - itemlist.append(item.clone(title=config.get_localized_string(70036), action="search_", text_color=color4, + itemlist.append(item.clone(title=config.get_localized_string(70036), action="search_", url="http://m.filmaffinity.com/%s/search.php?stype=cast&stext=" % langf)) - itemlist.append(item.clone(title=config.get_localized_string(70047), action="search_", text_color=color4, + itemlist.append(item.clone(title=config.get_localized_string(70047), action="search_", url="http://m.filmaffinity.com/%s/search.php?stype=director&stext=" % langf)) - itemlist.append(item.clone(title=config.get_localized_string(70038), action="filtro_fa", text_color=color4, extra="top")) - itemlist.append(item.clone(title=config.get_localized_string(70048), action="cuenta_fa", text_color=color3)) + itemlist.append(item.clone(title=config.get_localized_string(70038), action="filtro_fa", extra="top")) + itemlist.append(item.clone(title=config.get_localized_string(70048), action="cuenta_fa", )) return itemlist def trakt(item): itemlist = [] - item.text_color = color1 token_auth = config.get_setting("token_trakt", "trakt") page = "?page=1&limit=20&extended=full" if not item.extra: item.extra = "movie" - itemlist.append(item.clone(title="[COLOR yellow][B]%s[/B][/COLOR]" % config.get_localized_string(70416), action="")) + itemlist.append(item.clone(title=typo(config.get_localized_string(70416), 'bold'), action="")) itemlist.append(item.clone(title=config.get_localized_string(70049), action="acciones_trakt", url="movies/popular%s" % page)) itemlist.append( item.clone(title=config.get_localized_string(70050), action="acciones_trakt", url="movies/trending%s" % page)) @@ -276,7 +276,7 @@ def trakt(item): if token_auth: itemlist.append(item.clone(title=config.get_localized_string(70052), action="acciones_trakt", url="recommendations/movies?limit=100&extended=full", pagina=0)) - itemlist.append(item.clone(title="[COLOR yellow][B]%s[/B][/COLOR]" % config.get_localized_string(70417), action="",)) + itemlist.append(item.clone(title=typo(config.get_localized_string(70417), 'bold'), action="",)) item.extra = "show" itemlist.append(item.clone(title=config.get_localized_string(70049), action="acciones_trakt", url="shows/popular%s" % page)) itemlist.append(item.clone(title=config.get_localized_string(70050), action="acciones_trakt", url="shows/trending%s" % page)) @@ -286,7 +286,7 @@ def trakt(item): if token_auth: itemlist.append(item.clone(title=config.get_localized_string(70052), action="acciones_trakt", url="recommendations/shows?limit=100&extended=full", pagina=0)) - itemlist.append(item.clone(title="[COLOR red][B]%s[/B][/COLOR]" % config.get_localized_string(70048), extra="cuenta")) + itemlist.append(item.clone(title=typo(config.get_localized_string(70048), 'color kod bold'), extra="cuenta")) else: item.extra = "movie" # Se comprueba si existe un token guardado y sino se ejecuta el proceso de autentificación @@ -294,7 +294,7 @@ def trakt(item): #folder = (config.get_platform() == "plex") itemlist.append(item.clone(title=config.get_localized_string(70054), action="auth_trakt", folder=folder)) else: - itemlist.append(item.clone(title=config.get_localized_string(70055), action="", text_color=color2)) + itemlist.append(item.clone(title=config.get_localized_string(70055), action="", )) itemlist.append( item.clone(title=config.get_localized_string(60651), action="acciones_trakt", url="users/me/watchlist/movies%s" % page, order="added", how="desc")) @@ -302,7 +302,7 @@ def trakt(item): item.clone(title=config.get_localized_string(60652), action="acciones_trakt", url="users/me/watchlist/shows%s" % page, extra="show", order="added", how="desc")) - itemlist.append(item.clone(title=config.get_localized_string(70056), action="", text_color=color2)) + itemlist.append(item.clone(title=config.get_localized_string(70056), action="", )) itemlist.append( item.clone(title=config.get_localized_string(60651), action="acciones_trakt", url="users/me/watched/movies%s" % page, order="added", how="desc")) @@ -310,7 +310,7 @@ def trakt(item): item.clone(title=config.get_localized_string(60652), action="acciones_trakt", url="users/me/watched/shows%s" % page, extra="show", order="added", how="desc")) - itemlist.append(item.clone(title=config.get_localized_string(70068), action="", text_color=color2)) + itemlist.append(item.clone(title=config.get_localized_string(70068), action="", )) itemlist.append( item.clone(title=config.get_localized_string(60651), action="acciones_trakt", url="users/me/collection/movies%s" % page, order="added", how="desc")) @@ -319,14 +319,13 @@ def trakt(item): extra="show", order="added", how="desc")) itemlist.append( - item.clone(title=config.get_localized_string(70057), action="acciones_trakt", url="users/me/lists", text_color=color2)) + item.clone(title=config.get_localized_string(70057), action="acciones_trakt", url="users/me/lists", )) return itemlist def mal(item): itemlist = [] - item.text_color = color1 login, message, user = login_mal() if login: item.login = True @@ -350,9 +349,9 @@ def mal(item): if config.get_platform() != "plex": itemlist.append(item.clone(title=config.get_localized_string(70064), url="https://myanimelist.net/anime.php?q=", action="search_")) - itemlist.append(item.clone(title=config.get_localized_string(70038), action="filtro_mal", text_color=color4)) + itemlist.append(item.clone(title=typo(config.get_localized_string(70038), 'bold submenu'), action="filtro_mal")) - itemlist.append(item.clone(title=config.get_localized_string(70057), action="cuenta_mal", text_color=color3)) + itemlist.append(item.clone(title=typo(config.get_localized_string(70057), 'bold submenu'), action="cuenta_mal")) return itemlist @@ -361,7 +360,6 @@ def mal(item): def listado_tmdb(item): # Listados principales de la categoría Tmdb (Más populares, más vistas, etc...) itemlist = [] - item.text_color = color1 item.fanart = default_fan if not item.pagina: item.pagina = 1 @@ -398,12 +396,9 @@ def listado_tmdb(item): new_item.fanart = new_item.infoLabels['fanart'] if new_item.infoLabels['year']: - new_item.title = "%s (%s) [COLOR %s]%s[/COLOR]" \ - % (new_item.contentTitle, new_item.infoLabels['year'], color6, - str(new_item.infoLabels['rating']).replace("0.0", "")) + new_item.title = typo(new_item.contentTitle, 'bold') + ' (%s)' % new_item.infoLabels['year'] + typo(str(new_item.infoLabels['rating']).replace("0.0", ""), '_ color kod') else: - new_item.title = "%s [COLOR %s]%s[/COLOR]" \ - % (new_item.contentTitle, color6, new_item.infoLabels['rating'].replace("0.0", "")) + new_item.title = typo(new_item.contentTitle, 'bold') + ' (%s)' % new_item.infoLabels['year'] + typo(str(new_item.infoLabels['rating']).replace("0.0", ""), '_ color kod') itemlist.append(new_item) except: pass @@ -465,9 +460,8 @@ def listado_tmdb(item): if known_for: from random import randint random = randint(0, len(known_for) - 1) - new_item.title = "%s [COLOR %s](%s)[/COLOR] (%s)" \ - % (new_item.contentTitle, color6, - known_for[random].get("title", known_for[random].get("name")), type) + new_item.title = typo(new_item.contentTitle, 'bold') + typo(known_for[random].get("title", known_for[random].get("name")), '_ () color kod') + if known_for[random]["backdrop_path"]: new_item.fanart = 'http://image.tmdb.org/t/p/original' + known_for[random]["backdrop_path"] else: @@ -537,7 +531,7 @@ def detalles(item): item.infoLabels['votes'] = votos if item.infoLabels['tagline']: - itemlist.append(item.clone(title="--- %s ---" % item.infoLabels['tagline'], text_color="0xFFFF8C00", action="")) + itemlist.append(item.clone(title="--- %s ---" % item.infoLabels['tagline'], action="")) title = item.contentType.replace("movie", config.get_localized_string(70283)).replace("tvshow", "serie") # Búsqueda por títulos idioma elegido y/o versión original y español @@ -556,22 +550,22 @@ def detalles(item): # En caso de serie, opción de info por temporadas if item.contentType == "tvshow" and item.infoLabels['tmdb_id']: - itemlist.append(item.clone(action="info_seasons", text_color=color4, + itemlist.append(item.clone(action="info_seasons", title=config.get_localized_string(70067) % item.infoLabels["number_of_seasons"])) # Opción de ver el reparto y navegar por sus películas/series if item.infoLabels['tmdb_id']: - itemlist.append(item.clone(action="reparto", title=config.get_localized_string(70071), text_color=color4, + itemlist.append(item.clone(action="reparto", title=config.get_localized_string(70071), infoLabels={'tmdb_id': item.infoLabels['tmdb_id'], 'mediatype': item.contentType})) if config.is_xbmc(): item.contextual = True itemlist.append(item.clone(channel="trailertools", action="buscartrailer", title=config.get_localized_string(60359), - text_color=color5)) + )) try: images['tmdb'] = ob_tmdb.result["images"] - itemlist.append(item.clone(action="imagenes", title=config.get_localized_string(70316), text_color=color5, images=images, + itemlist.append(item.clone(action="imagenes", title=config.get_localized_string(70316), images=images, extra="menu")) except: pass @@ -597,7 +591,7 @@ def detalles(item): url_album = "https://nl.hideproxy.me" + url_album itemlist.append( item.clone(action="musica_movie", title=config.get_localized_string(70317), url=url_album, - text_color=color5)) + )) except: pass @@ -618,7 +612,7 @@ def detalles(item): new_item.fanart = 'http://image.tmdb.org/t/p/original' + saga["backdrop_path"] new_item.search = {'url': 'collection/%s' % saga['id'], 'language': langt} itemlist.append(new_item.clone(title=config.get_localized_string(70327) % saga["name"], action="listado_tmdb", - text_color=color5)) + )) except: pass @@ -629,11 +623,11 @@ def detalles(item): itemlist.append(item.clone(title=config.get_localized_string(70328) % title, action="listado_tmdb", search={'url': '%s/%s/similar' % (item.extra, item.infoLabels['tmdb_id']), 'language': langt, 'page': 1}, infoLabels={'mediatype': item.contentType}, - text_color=color2)) + )) itemlist.append( item.clone(title=config.get_localized_string(70315), action="listado_tmdb", infoLabels={'mediatype': item.contentType}, search={'url': '%s/%s/recommendations' % (item.extra, item.infoLabels['tmdb_id']), - 'language': langt, 'page': 1}, text_color=color2)) + 'language': langt, 'page': 1}, )) return itemlist @@ -641,7 +635,6 @@ def detalles(item): def reparto(item): # Actores y equipo de rodaje de una película/serie itemlist = [] - item.text_color = color1 item.extra=item.contentType.replace('tvshow','tv') item.search = {'url': '%s/%s/credits' % (item.extra, item.infoLabels['tmdb_id'])} ob_tmdb = Tmdb(discover=item.search, tipo=item.extra, idioma_busqueda=langt) @@ -649,7 +642,7 @@ def reparto(item): try: cast = ob_tmdb.result["cast"] if cast: - itemlist.append(item.clone(title=config.get_localized_string(70314), action="", text_color=color2)) + itemlist.append(item.clone(title=config.get_localized_string(70314), action="", )) for actor in cast: new_item = item.clone(action="listado_tmdb", fanart=default_fan) new_item.title = " " + actor["name"] + " as " + actor["character"] @@ -668,7 +661,7 @@ def reparto(item): try: crew = ob_tmdb.result["crew"] if crew: - itemlist.append(item.clone(title=config.get_localized_string(70319), action="", text_color=color2)) + itemlist.append(item.clone(title=config.get_localized_string(70319), action="", )) for c in crew: new_item = item.clone(action="listado_tmdb", fanart=default_fan) new_item.title = " " + c["job"] + ": " + c["name"] @@ -690,7 +683,6 @@ def reparto(item): def info_seasons(item): # Info de temporadas y episodios itemlist = [] - item.text_color = color4 ob_tmdb = Tmdb(id_Tmdb=item.infoLabels["tmdb_id"], tipo="tv", idioma_busqueda=langt) for temp in range(item.infoLabels["number_of_seasons"], 0, -1): @@ -714,7 +706,7 @@ def info_seasons(item): for epi in range(1, len(temporada["episodes"])): episodio = ob_tmdb.get_episodio(temp, epi) if episodio: - new_item = item.clone(action="", text_color=color1, mediatype="episode") + new_item = item.clone(action="", mediatype="episode") new_item.infoLabels['season'] = temp new_item.infoLabels['episode'] = epi new_item.infoLabels['title'] = episodio['episodio_titulo'] @@ -895,7 +887,7 @@ def musica_movie(item): title = "%s (%s) [%s]" % (titulo, artist, duration) url = scrapertools.find_single_match(data, "AudioPlayer.embed\('%s'.*?soundFile: '([^']+)'" % id_p) itemlist.append(Item(channel=item.channel, action="play", server="directo", url=url, title=title, - thumbnail=item.thumbnail, fanart=item.fanart, text_color=color5)) + thumbnail=item.thumbnail, fanart=item.fanart, )) return itemlist @@ -903,7 +895,6 @@ def musica_movie(item): def listado_imdb(item): # Método principal para secciones de imdb itemlist = [] - item.text_color = color1 headers = [['Accept-Language', langi]] if "www.imdb.com" in item.url: @@ -987,7 +978,7 @@ def listado_imdb(item): except: rating = None if rating: - new_item.title += " [COLOR %s]%s[/COLOR]" % (color6, str(rating)) + new_item.title += typo(str(rating), '_ color kod') new_item.infoLabels['rating'] = float(rating) new_item.infoLabels['imdb_id'] = imdb_id itemlist.append(new_item) @@ -998,7 +989,7 @@ def listado_imdb(item): next_page = 'http://www.imdb.com' + next_page else: next_page = 'http://www.imdb.com/search/title' + next_page - itemlist.append(item.clone(title=config.get_localized_string(70065), url=next_page, text_color='')) + itemlist.append(item.clone(title=config.get_localized_string(70065), url=next_page, )) return itemlist @@ -1153,6 +1144,7 @@ def indices_imdb(item): thumbnail = "%s2/%s.jpg" % (images_predef, titulo) itemlist.append(item.clone(title=title, action='listado_imdb', thumbnail=thumbnail, url='http://www.imdb.com/search/title?genres=%s%s' % (valor, item.url))) + itemlist = thumb(itemlist) itemlist.sort(key=lambda item: item.title) else: year = datetime.now().year + 3 @@ -1167,7 +1159,6 @@ def indices_imdb(item): def listado_fa(item): # Método para listados principales de filmaffinity itemlist = [] - item.text_color = color1 # Listados con paginación por post if item.extra == "top": @@ -1197,7 +1188,7 @@ def listado_fa(item): '
([^<]+)
' \ @@ -1279,14 +1270,13 @@ def listado_fa(item): itemlist.append(Item(channel=item.channel, action=item.action, title=config.get_localized_string(70065), url=next_page, extra=item.extra)) elif item.page_fa: - itemlist.append(item.clone(title=config.get_localized_string(70065), text_color="")) + itemlist.append(item.clone(title=config.get_localized_string(70065), )) return itemlist def indices_fa(item): # Índices por genero, año, temas y sagas/colecciones itemlist = [] - item.text_color = color1 if item.url: data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t| ", "", data) @@ -1347,7 +1337,7 @@ def indices_fa(item): if config.is_xbmc(): action = "move" folder = False - itemlist.append(item.clone(title=letra, text_color=color2, action=action, extra=extra, folder=folder)) + itemlist.append(item.clone(title=letra, action=action, extra=extra, folder=folder)) for url, titulo, numero in matches: new_item = item.clone(action="temas_fa") topic_id = scrapertools.find_single_match(url, "topic=(\d+)") @@ -1386,7 +1376,7 @@ def temas_fa(item): matches = scrapertools.find_multiple_matches(data, patron) for url, thumb, title, year in matches: title = title.strip() - new_item = item.clone(action="detalles_fa", contentType="movie", extra="movie", text_color=color2) + new_item = item.clone(action="detalles_fa", contentType="movie", extra="movie", ) new_item.url = "http://m.filmaffinity.com/%s/movie.php?id=%s" % (langf, url) new_item.thumbnail = thumb.replace("msmall", "large") if not new_item.thumbnail.startswith("http"): @@ -1490,7 +1480,7 @@ def detalles_fa(item): item.thumbnail = item.infoLabels['thumbnail'] if item.infoLabels['tagline']: - itemlist.append(item.clone(title="--- %s ---" % item.infoLabels['tagline'], text_color="0xFFFF8C00", action="")) + itemlist.append(item.clone(title="--- %s ---" % item.infoLabels['tagline'], action="")) title = item.contentType.replace("movie", config.get_localized_string(70283)).replace("tvshow", "serie") itemlist.append(item.clone(action="busqueda", title=config.get_localized_string(70069) % (title, item.contentTitle))) @@ -1506,10 +1496,10 @@ def detalles_fa(item): contentTitle=tmdb_lang)) if item.contentType == "tvshow" and ob_tmdb.result: - itemlist.append(item.clone(action="info_seasons", text_color=color4, + itemlist.append(item.clone(action="info_seasons", title=config.get_localized_string(70067) % item.infoLabels["number_of_seasons"])) if ob_tmdb.result: - itemlist.append(item.clone(action="reparto", title=config.get_localized_string(70071), text_color=color4, + itemlist.append(item.clone(action="reparto", title=config.get_localized_string(70071), infoLabels={'tmdb_id': item.infoLabels['tmdb_id'], 'mediatype': item.contentType})) @@ -1519,8 +1509,8 @@ def detalles_fa(item): '' % langf) @@ -1530,7 +1520,7 @@ def detalles_fa(item): if url_img: images['filmaffinity'] = {} if images: - itemlist.append(item.clone(action="imagenes", title=config.get_localized_string(70316), text_color=color5, images=images, + itemlist.append(item.clone(action="imagenes", title=config.get_localized_string(70316), images=images, url=url_img, extra="menu")) try: if item.contentType == "movie" and item.infoLabels["year"] < 2014: @@ -1553,7 +1543,7 @@ def detalles_fa(item): url_album = "https://nl.hideproxy.me" + url_album itemlist.append( item.clone(action="musica_movie", title=config.get_localized_string(70317), url=url_album, - text_color=color5)) + )) except: pass @@ -1588,7 +1578,7 @@ def detalles_fa(item): if ob_tmdb.result: itemlist.append(item.clone(title="", action="", infoLabels={})) if ob_tmdb.result.get("belongs_to_collection"): - new_item = item.clone(infoLabels={'mediatype': item.contentType}, action="listado_tmdb", text_color=color5) + new_item = item.clone(infoLabels={'mediatype': item.contentType}, action="listado_tmdb", ) saga = ob_tmdb.result["belongs_to_collection"] new_item.infoLabels["tmdb_id"] = saga["id"] if saga["poster_path"]: @@ -1602,11 +1592,11 @@ def detalles_fa(item): itemlist.append(item.clone(title=config.get_localized_string(70328) % title.capitalize(), action="listado_tmdb", search={'url': '%s/%s/similar' % (item.extra, item.infoLabels['tmdb_id']), 'language': langt, 'page': 1}, infoLabels={'mediatype': item.contentType}, - text_color=color2)) + )) itemlist.append( item.clone(title=config.get_localized_string(70315), action="listado_tmdb", infoLabels={'mediatype': item.contentType}, search={'url': '%s/%s/recommendations' % (item.extra, item.infoLabels['tmdb_id']), - 'language': langt, 'page': 1}, text_color=color2)) + 'language': langt, 'page': 1}, )) return itemlist @@ -1752,12 +1742,12 @@ def cuenta_fa(item): itemlist = [] login, message = login_fa() if not login: - itemlist.append(item.clone(action="", title=message, text_color=color4)) + itemlist.append(item.clone(action="", title=message, )) else: userid = config.get_setting("userid", "tvmoviedb") - itemlist.append(item.clone(action="acciones_fa", title=config.get_localized_string(70332), text_color=color5, accion="votos", + itemlist.append(item.clone(action="acciones_fa", title=config.get_localized_string(70332), accion="votos", url="http://m.filmaffinity.com/%s/user_ratings.php?id-user=%s" % (langf, userid))) - itemlist.append(item.clone(action="acciones_fa", title=config.get_localized_string(70057), text_color=color5, accion="listas", + itemlist.append(item.clone(action="acciones_fa", title=config.get_localized_string(70057), accion="listas", url="http://m.filmaffinity.com/%s/mylists.php" % langf)) return itemlist @@ -1780,7 +1770,7 @@ def acciones_fa(item): matches = scrapertools.find_multiple_matches(bloque, patron) mivoto = scrapertools.find_single_match(bloque, 'bg-my-rating[^>]+>(?:\s*|)([^<]+)<') for url, thumb, title, year, rating, votos in matches: - new_item = item.clone(action="detalles_fa", text_color=color1) + new_item = item.clone(action="detalles_fa", ) if not url.startswith("http://m.filmaffinity"): new_item.url = "http://m.filmaffinity.com" + url else: @@ -1812,7 +1802,7 @@ def acciones_fa(item): '.*?(?:
(.*?)|)' matches = scrapertools.find_multiple_matches(data, patron) for url, title, content, imgs in matches: - new_item = item.clone(accion="lista", text_color=color1) + new_item = item.clone(accion="lista", ) if not url.startswith("http://m.filmaffinity.com"): new_item.url = "http://m.filmaffinity.com%s&orderby=%s" % (url, orderby) else: @@ -1841,7 +1831,7 @@ def acciones_fa(item): new_item.title = "[COLOR %s]%s[/COLOR] %s" % (color4, u"\u04FE".encode('utf-8'), title) new_item.accion = "addMovieToList" itemlist.append(new_item) - new_item = item.clone(action="newlist", title=config.get_localized_string(70333), text_color=color6) + new_item = item.clone(action="newlist", title=config.get_localized_string(70333), ) new_item.infoLabels["duration"] = "" itemlist.append(new_item) else: @@ -1934,12 +1924,12 @@ def imagenes(item): if item.extra == "menu": item.folder = not config.is_xbmc() if "tmdb" in item.images: - itemlist.append(item.clone(title="Tmdb", text_color=color2, extra="")) - itemlist.append(item.clone(title="Fanart.Tv", text_color=color2, extra="")) + itemlist.append(item.clone(title="Tmdb", extra="")) + itemlist.append(item.clone(title="Fanart.Tv", extra="")) if "imdb" in item.images: - itemlist.append(item.clone(title="Imdb", text_color=color2, extra="")) + itemlist.append(item.clone(title="Imdb", extra="")) if "filmaffinity" in item.images: - itemlist.append(item.clone(title="Filmaffinity", text_color=color2, extra="")) + itemlist.append(item.clone(title="Filmaffinity", extra="")) if "myanimelist" in item.images: data = httptools.downloadpage(item.url + "/pics", cookies=False).data images = scrapertools.find_multiple_matches(data, @@ -1947,7 +1937,7 @@ def imagenes(item): if images: for thumb, title in images: item.images["myanimelist"].append([thumb, title]) - itemlist.append(item.clone(title="MyAnimeList", text_color=color2, extra="")) + itemlist.append(item.clone(title="MyAnimeList", extra="")) return itemlist @@ -1995,7 +1985,7 @@ def imagenes(item): fanart = 'http://image.tmdb.org/t/p/original' + imagen["file_path"] title = " %s %s [%sx%s]" % (tipo.capitalize(), i + 1, imagen["width"], imagen["height"]) itemlist.append(Item(channel=item.channel, action="", thumbnail=thumb, fanart=fanart, - title=title, text_color=color1, infoLabels=item.infoLabels)) + title=title, infoLabels=item.infoLabels)) else: imagesWindow = infoplus.images(tmdb=value).doModal() @@ -2007,7 +1997,7 @@ def imagenes(item): fanart = imagen["url"] title = " %s %s [%s]" % (tipo.capitalize(), i + 1, imagen["lang"]) itemlist.append(Item(channel=item.channel, action="", thumbnail=thumb, fanart=fanart, - title=title, text_color=color1, infoLabels=item.infoLabels)) + title=title, infoLabels=item.infoLabels)) else: imagesWindow = infoplus.images(fanartv=value).doModal() @@ -2016,7 +2006,7 @@ def imagenes(item): for thumb, title in value: thumb = thumb.replace("-s200", "-large") itemlist.append(Item(channel=item.channel, action="", thumbnail=thumb, fanart=thumb, - title=title, text_color=color1, infoLabels=item.infoLabels)) + title=title, infoLabels=item.infoLabels)) else: imagesWindow = infoplus.images(fa=value).doModal() @@ -2028,7 +2018,7 @@ def imagenes(item): title = imagen["altText"] itemlist.append( Item(channel=item.channel, action="", thumbnail=thumb, fanart=fanart, title=title, - text_color=color1, infoLabels=item.infoLabels)) + infoLabels=item.infoLabels)) else: imagesWindow = infoplus.images(imdb=value).doModal() @@ -2037,7 +2027,7 @@ def imagenes(item): for imagen, title in value: itemlist.append( Item(channel=item.channel, action="", thumbnail=imagen, fanart=imagen, title=title, - text_color=color1, infoLabels=item.infoLabels)) + infoLabels=item.infoLabels)) else: imagesWindow = infoplus.images(mal=value).doModal() @@ -2123,8 +2113,6 @@ def menu_trakt(item): def acciones_trakt(item): token_auth = config.get_setting("token_trakt", "trakt") itemlist = [] - item.text_color = color1 - item.contentType = item.extra.replace("show", "tvshow") client_id = "c40ba210716aee87f6a9ddcafafc56246909e5377b623b72c15909024448e89d" @@ -2167,7 +2155,7 @@ def acciones_trakt(item): except: pass new_item = item.clone(action="detalles") - new_item.title = entry["title"] + " (%s)" % entry["year"] + new_item.title = entry["title"] + ' ' + entry["year"] new_item.infoLabels["tmdb_id"] = entry["ids"]["tmdb"] try: ratings.append(entry["rating"]) @@ -2175,17 +2163,16 @@ def acciones_trakt(item): ratings.append(0.0) itemlist.append(new_item) if i == item.pagina + 20: - itemlist.append(item.clone(title=config.get_localized_string(70065), text_color="", pagina=item.pagina + 20)) + itemlist.append(item.clone(title=config.get_localized_string(70065), pagina=item.pagina + 20)) break from core import tmdb tmdb.set_infoLabels_itemlist(itemlist[:-1], True) for i, new_item in enumerate(itemlist[:-1]): if new_item.infoLabels["title"]: - new_item.title = new_item.infoLabels["title"] + " (%s)" % new_item.infoLabels["year"] + new_item.title = typo(new_item.infoLabels["title"] + " (%s)" % new_item.infoLabels["year"], 'bold') if ratings[i]: - new_item.title += " [COLOR %s]Trakt:%.2f[/COLOR]/[COLOR %s]Tmdb:%.2f[/COLOR]" \ - % (color6, ratings[i], color4, new_item.infoLabels["rating"]) + new_item.title += typo("Trakt: %.2f | Tmdb: %.2f" % (ratings[i], new_item.infoLabels["rating"]), '_ color kod') except: pass @@ -2197,7 +2184,7 @@ def acciones_trakt(item): 'votes': config.get_localized_string(70474), 'asc': config.get_localized_string(70475), 'desc': config.get_localized_string(70476)} orden = valores[item.order] + " " + valores[item.how] # itemlist.append(item.clone(title=config.get_localized_string(70349) % orden, action="order_list", - # text_color=color4)) + # )) ratings = [] try: # if item.order: @@ -2230,18 +2217,16 @@ def acciones_trakt(item): tmdb.set_infoLabels_itemlist(itemlist[1:], True) for i, new_item in enumerate(itemlist[1:]): if new_item.infoLabels["title"]: - new_item.title = new_item.infoLabels["title"] + " (%s)" % new_item.infoLabels["year"] + new_item.title = typo(new_item.infoLabels["title"] + ' ' + new_item.infoLabels["year"], 'bold') if ratings[i]: - new_item.title += " [COLOR %s]Trakt:%.2f[/COLOR]/[COLOR %s]Tmdb:%.2f[/COLOR]" \ - % (color6, ratings[i], color4, new_item.infoLabels["rating"]) + new_item.title += typo("Trakt: %.2f | Tmdb: %.2f" % (ratings[i], new_item.infoLabels["rating"]), '_ color kod') else: tmdb.set_infoLabels_itemlist(itemlist, True) for i, new_item in enumerate(itemlist): if new_item.infoLabels["title"]: - new_item.title = new_item.infoLabels["title"] + " (%s)" % new_item.infoLabels["year"] + new_item.title = typo(new_item.infoLabels["title"] + " (%s)" % new_item.infoLabels["year"], 'bold') if ratings[i]: - new_item.title += " [COLOR %s]Trakt:%.2f[/COLOR]/[COLOR %s]Tmdb:%.2f[/COLOR]" \ - % (color6, ratings[i], color4, new_item.infoLabels["rating"]) + new_item.title += typo("Trakt: %.2f | Tmdb: %.2f" % (ratings[i], new_item.infoLabels["rating"]), '_ color kod') except: import traceback logger.error(traceback.format_exc()) @@ -2250,12 +2235,12 @@ def acciones_trakt(item): page = scrapertools.find_single_match(item.url, 'page=(\d+)') page_new = int(page) + 1 url = item.url.replace("page=" + page, "page=" + str(page_new)) - itemlist.append(item.clone(title=config.get_localized_string(70065), text_color="", url=url)) + itemlist.append(item.clone(title=config.get_localized_string(70065), url=url)) else: data = jsontools.load(data) for entry in data: new_item = item.clone() - new_item.title = entry["name"] + " [COLOR %s](%s)[/COLOR]" % (color6, entry["item_count"]) + new_item.title = entry["name"] + ' ' + entry["item_count"] new_item.infoLabels["plot"] = entry.get("description") new_item.url = "users/me/lists/%s/items/?page=1&limit=20&extended=full" % entry["ids"]["trakt"] new_item.order = entry.get("sort_by") @@ -2301,7 +2286,6 @@ def order_trakt(item, values): def top_mal(item): # Para los menús principales de tops pelícuas/series/ovas itemlist = [] - item.text_color = color1 data = httptools.downloadpage(item.url, cookies=False).data data = re.sub(r"\n|\r|\t| ", "", data) data = re.sub(r"\s{2}", " ", data) @@ -2333,14 +2317,14 @@ def top_mal(item): new_item.title += " [%s]" % year if rating != "N/A": new_item.infoLabels["rating"] = float(rating) - new_item.title += " [COLOR %s]%s[/COLOR]" % (color6, rating) + new_item.title += typo(rating, '_ color kod') new_item.contentTitle = title.strip() itemlist.append(new_item) next_page = scrapertools.find_single_match(data, 'limit=(\d+)" class="link-blue-box next">') if next_page: next_page = item.url.rsplit("=", 1)[0] + "=%s" % next_page - itemlist.append(item.clone(title=config.get_localized_string(70065), url=next_page, text_color="")) + itemlist.append(item.clone(title=config.get_localized_string(70065), url=next_page, )) return itemlist @@ -2458,26 +2442,26 @@ def detalles_mal(item): title=config.get_localized_string(70352) % eng_title)) if item_tmdb.extra == "tv" and ob_tmdb.result: - itemlist.append(item.clone(action="info_seasons", text_color=color4, + itemlist.append(item.clone(action="info_seasons", title=config.get_localized_string(70067) % item.infoLabels["number_of_seasons"])) - itemlist.append(item.clone(action="videos_mal", title=config.get_localized_string(70353), text_color=color5, + itemlist.append(item.clone(action="videos_mal", title=config.get_localized_string(70353), url=item.url + "/video")) # Opción para ver la info de personajes y dobladores/equipo de rodaje if not "No characters or voice actors" in data and not "No staff for this anime" in data: - itemlist.append(item.clone(action="staff_mal", title=config.get_localized_string(70354), text_color=color2, + itemlist.append(item.clone(action="staff_mal", title=config.get_localized_string(70354), url=item.url + "/characters")) if config.is_xbmc(): item.contextual = True itemlist.append(item.clone(channel="trailertools", action="buscartrailer", title=config.get_localized_string(30162), - text_color=color5)) + )) images = {} if ob_tmdb.result and ob_tmdb.result.get("images"): images['tmdb'] = ob_tmdb.result["images"] images['myanimelist'] = [] - itemlist.append(item.clone(action="imagenes", title=config.get_localized_string(70316), text_color=color5, images=images, + itemlist.append(item.clone(action="imagenes", title=config.get_localized_string(70316), images=images, extra="menu")) try: @@ -2486,7 +2470,7 @@ def detalles_mal(item): data_music = httptools.downloadpage("http://www.freeanimemusic.org/song_search.php", post).data if not "NO MATCHES IN YOUR SEARCH" in data_music: itemlist.append( - item.clone(action="musica_anime", title=config.get_localized_string(70317), text_color=color5, + item.clone(action="musica_anime", title=config.get_localized_string(70317), post=post)) except: pass @@ -2553,7 +2537,7 @@ def detalles_mal(item): if ob_tmdb.result: itemlist.append(item.clone(title="", action="", infoLabels={})) if ob_tmdb.result.get("belongs_to_collection"): - new_item = item.clone(infoLabels={'mediatype': item.contentType}, action="listado_tmdb", text_color=color5) + new_item = item.clone(infoLabels={'mediatype': item.contentType}, action="listado_tmdb", ) saga = ob_tmdb.result["belongs_to_collection"] new_item.infoLabels["tmdb_id"] = saga["id"] if saga["poster_path"]: @@ -2567,7 +2551,7 @@ def detalles_mal(item): itemlist.append( item.clone(title=config.get_localized_string(70358), action="listado_tmdb", infoLabels={'mediatype': item.contentType}, search={'url': '%s/%s/recommendations' % (item.extra, item.infoLabels['tmdb_id']), - 'language': langt, 'page': 1}, text_color=color2)) + 'language': langt, 'page': 1}, )) # Recomendaciones myanimelist y búsqueda de info en anidb (fansubs en español) itemlist.append(item.clone(title=config.get_localized_string(70359), action="reco_mal")) @@ -2596,7 +2580,7 @@ def videos_mal(item): if "icon-pay" in info and "icon-banned-youtube" in thumb: continue url = "https://myanimelist.net%s" % url - new_item = item.clone(url=url, thumbnail=thumb, action="play", text_color=color1) + new_item = item.clone(url=url, thumbnail=thumb, action="play", ) new_item.title = epi + " - " + title.strip() if "icon-pay" in info: new_item.title += " [COLOR %s](Crunchyroll Premium)[/COLOR]" % color6 @@ -2606,18 +2590,18 @@ def videos_mal(item): next_page = scrapertools.find_single_match(data, 'More') if next_page: - itemlist.append(item.clone(title=config.get_localized_string(70361), url=next_page, text_color="")) + itemlist.append(item.clone(title=config.get_localized_string(70361), url=next_page, )) if itemlist: - itemlist.insert(0, item.clone(title=config.get_localized_string(70362), action="", text_color=color3)) + itemlist.insert(0, item.clone(title=config.get_localized_string(70362), action="", )) patron = '([^<]+)<' matches = scrapertools.find_multiple_matches(data, patron) if matches: - itemlist.append(item.clone(title=config.get_localized_string(70363), action="", text_color=color3)) + itemlist.append(item.clone(title=config.get_localized_string(70363), action="", )) for url, thumb, title in matches: url = url.replace("embed/", "watch?v=") itemlist.append( - item.clone(title=title, url=url, server="youtube", action="play", thumbnail=thumb, text_color=color1)) + item.clone(title=title, url=url, server="youtube", action="play", thumbnail=thumb, )) return itemlist @@ -2663,7 +2647,7 @@ def indices_mal(item): title = title.replace("Winter", config.get_localized_string(70364)).replace("Spring", config.get_localized_string(70365)) \ .replace("Summer", config.get_localized_string(70366)).replace("Fall", config.get_localized_string(70367)) itemlist.append(Item(channel=item.channel, action="season_mal", title=title, url=url, - thumbnail=thumbnail, text_color=color1, info=True, fanart=thumbnail)) + thumbnail=thumbnail, info=True, fanart=thumbnail)) else: data = httptools.downloadpage("https://myanimelist.net/anime.php", cookies=False).data data = re.sub(r"\n|\r|\t| ", "", data) @@ -2677,7 +2661,7 @@ def indices_mal(item): continue url = "https://myanimelist.net%s" % url itemlist.append(Item(channel=item.channel, action="season_mal", title=title, url=url, - thumbnail=thumbnail, fanart=thumbnail, text_color=color1)) + thumbnail=thumbnail, fanart=thumbnail, )) return itemlist @@ -2703,7 +2687,7 @@ def season_mal(item): 'title="Score">\s*(N/A|\d\.\d+)' matches = scrapertools.find_multiple_matches(bloque, patron) if matches: - itemlist.append(Item(channel=item.channel, action="", title=head_title, text_color=color3)) + itemlist.append(Item(channel=item.channel, action="", title=head_title, )) for url, scrapedtitle, epis, generos, thumb, plot, tipo, year, score in matches: if ("Hentai" in generos or "Yaoi" in generos or "Yuri" in generos) and adult_mal: continue @@ -2731,7 +2715,7 @@ def season_mal(item): thumb = thumb.replace("r/167x242/", "") + "l.jpg" itemlist.append(Item(channel=item.channel, action="detalles_mal", url=url, title=title, thumbnail=thumb, infoLabels=infoLabels, extra=extra, tipo=tipo, - contentTitle=scrapedtitle, contentType=contentType, text_color=color1, + contentTitle=scrapedtitle, contentType=contentType, fanart=default_fan)) else: patron = '(.*?).*?(\? ep|\d+ ep).*?' \ @@ -2766,11 +2750,11 @@ def season_mal(item): thumb = thumb.replace("r/167x242/", "") + "l.jpg" itemlist.append(Item(channel=item.channel, action="detalles_mal", url=url, title=title, thumbnail=thumb, infoLabels=infoLabels, extra=extra, tipo=tipo, - contentTitle=scrapedtitle, contentType=contentType, text_color=color1, + contentTitle=scrapedtitle, contentType=contentType, fanart=default_fan)) next_page = scrapertools.find_single_match(data, '' matches = scrapertools.find_multiple_matches(data, patron) if matches: - itemlist.append(item.clone(title=config.get_localized_string(70370), action="", text_color=color3)) + itemlist.append(item.clone(title=config.get_localized_string(70370), action="", )) for url, thumb, nombre, rol, voces in matches: url = "https://myanimelist.net%s" % url rol = rol.replace("Main", "Principal").replace("Supporting", "Secundario") nombre = " %s [%s]" % (nombre, rol) thumb = thumb.replace("r/46x64/", "") - itemlist.append(Item(channel=item.channel, action="detail_staff", url=url, text_color=color2, + itemlist.append(Item(channel=item.channel, action="detail_staff", url=url, thumbnail=thumb, fanart=default_fan, title=nombre, extra="character")) patron_voces = '([^<]+)<.*?([^<]+).*?data-src="([^"]+)"' voces_match = scrapertools.find_multiple_matches(voces, patron_voces) @@ -2800,18 +2784,18 @@ def staff_mal(item): vurl = "https://myanimelist.net%s" % vurl vnombre = " %s [%s]" % (vnombre, vidioma) vthumb = vthumb.replace("r/46x64/", "") - itemlist.append(Item(channel=item.channel, action="detail_staff", url=vurl, text_color=color1, + itemlist.append(Item(channel=item.channel, action="detail_staff", url=vurl, thumbnail=vthumb, fanart=default_fan, title=vnombre)) bloque = scrapertools.find_single_match(data, '(.*?)') patron = '([^<]+)<.*?([^<]+)' matches = scrapertools.find_multiple_matches(bloque, patron) if matches: - itemlist.append(item.clone(title="Staff", action="", text_color=color3)) + itemlist.append(item.clone(title="Staff", action="", )) for url, thumb, nombre, rol in matches: url = "https://myanimelist.net%s" % url nombre = " %s [%s]" % (nombre, rol) thumb = thumb.replace("r/46x64/", "") - itemlist.append(Item(channel=item.channel, action="detail_staff", url=url, text_color=color1, + itemlist.append(Item(channel=item.channel, action="detail_staff", url=url, thumbnail=thumb, fanart=default_fan, title=nombre)) return itemlist @@ -2835,17 +2819,17 @@ def detail_staff(item): title = "Imagen %s" % (i + 1) infoLabels = {'plot': bio} itemlist.append( - Item(channel=item.channel, action="", title=title, infoLabels=infoLabels, text_color=color1, + Item(channel=item.channel, action="", title=title, infoLabels=infoLabels, thumbnail=thumb)) matches = scrapertools.find_multiple_matches(data, '(.*?)') if matches: - itemlist.append(Item(channel=item.channel, title="Animes donde aparece:", action="", text_color=color3)) + itemlist.append(Item(channel=item.channel, title="Animes donde aparece:", action="", )) for url, thumb, title in matches: url = "https://myanimelist.net%s" % url thumb = thumb.replace("r/23x32/", "") - itemlist.append(Item(channel=item.channel, action="detalles_mal", url=url, text_color=color1, + itemlist.append(Item(channel=item.channel, action="detalles_mal", url=url, thumbnail=thumb, fanart=default_fan, title=title, contentTitle=title)) else: patron_bio = '
.*?
(.*?)' @@ -2853,7 +2837,7 @@ def detail_staff(item): bio = scrapertools.htmlclean(bio.replace("
", "\n")) infoLabels = {'plot': bio} if not "No voice acting roles" in data: - itemlist.append(Item(channel=item.channel, title="Da voz a/en:", action="", text_color=color3, + itemlist.append(Item(channel=item.channel, title="Da voz a/en:", action="", thumbnail=item.thumbnail, infoLabels=infoLabels)) bloque = scrapertools.find_single_match(data, 'Voice Acting Roles
(.*?)') patron = '(.*?).*?href="(/character[^"]+)".*?' \ @@ -2864,14 +2848,14 @@ def detail_staff(item): url_p = "https://myanimelist.net%s" % url_p thumb = thumb.replace("r/46x64/", "") thumb_p = thumb_p.replace("r/46x64/", "") - itemlist.append(Item(channel=item.channel, action="detalles_mal", url=url, text_color=color2, + itemlist.append(Item(channel=item.channel, action="detalles_mal", url=url, thumbnail=thumb, fanart=default_fan, title=title, contentTitle=title)) - itemlist.append(Item(channel=item.channel, action="detail_staff", url=url_p, text_color=color1, + itemlist.append(Item(channel=item.channel, action="detail_staff", url=url_p, thumbnail=thumb_p, fanart=default_fan, title=" %s" % personaje, extra="character")) if not "No staff positions" in data: - itemlist.append(Item(channel=item.channel, title="Staff en animes:", action="", text_color=color3, + itemlist.append(Item(channel=item.channel, title="Staff en animes:", action="", thumbnail=item.thumbnail, infoLabels=infoLabels)) bloque = scrapertools.find_single_match(data, 'Anime Staff Positions
(.*?)') patron = '(.*?).*?(.*?)
' @@ -2881,7 +2865,7 @@ def detail_staff(item): thumb = thumb.replace("r/46x64/", "") rol = scrapertools.htmlclean(rol) titulo = "%s [COLOR %s][%s][/COLOR]" % (title, color6, rol) - itemlist.append(Item(channel=item.channel, action="detalles_mal", url=url, text_color=color2, + itemlist.append(Item(channel=item.channel, action="detalles_mal", url=url, thumbnail=thumb, fanart=default_fan, title=titulo, contentTitle=title)) return itemlist @@ -2940,7 +2924,7 @@ def busqueda_mal(item): infolabels["rating"] = float(rating) title += " [COLOR %s]%s[/COLOR]" % (color6, rating) itemlist.append(Item(channel=item.channel, title=title, action="detalles_mal", url=url, show=show, - thumbnail=thumb, infoLabels=infolabels, contentTitle=contentitle, text_color=color1, + thumbnail=thumb, infoLabels=infolabels, contentTitle=contentitle, contentType=contentType, tipo=tipo.lower(), extra=extra)) if not "&show=" in item.url: @@ -2951,11 +2935,11 @@ def busqueda_mal(item): check_page = next_page.replace("https://myanimelist.net/anime.php", "") if check_page in data: - itemlist.append(item.clone(title=config.get_localized_string(70065), url=next_page, text_color="")) + itemlist.append(item.clone(title=config.get_localized_string(70065), url=next_page, )) else: check_page = check_page.replace("[", "%5B").replace("]", "%5D") if check_page in data: - itemlist.append(item.clone(title=config.get_localized_string(70065), url=next_page, text_color="")) + itemlist.append(item.clone(title=config.get_localized_string(70065), url=next_page, )) return itemlist @@ -2986,7 +2970,7 @@ def info_anidb(item, itemlist, url): if re.search(r'(?:subtitle|audio) | language: spanish"', data): title += config.get_localized_string(70377) % color3 itemlist.append(Item(channel=item.channel, title=title, infoLabels=infoLabels, action="", - thumbnail=thumbnail, text_color=color4)) + thumbnail=thumbnail, )) if re.search(r'(?:subtitle|audio) | language: spanish"', data): epi_total = scrapertools.find_single_match(data, 'itemprop="numberOfEpisodes">([^<]+)') @@ -3004,7 +2988,7 @@ def info_anidb(item, itemlist, url): .replace("stalled", config.get_localized_string(70380)).replace("dropped", config.get_localized_string(70381)) title += " [COLOR %s](%s)[/COLOR] %s/%s [%s]" % (color6, estado, epis, epi_total, source) itemlist.append(Item(channel=item.channel, title=title, infoLabels=infoLabels, action="", - thumbnail=thumbnail, text_color=color4)) + thumbnail=thumbnail, )) def filtro_mal(item): @@ -3114,7 +3098,7 @@ def musica_anime(item): animes[anime].append( Item(channel=item.channel, action="play", title=title, server="directo", url=id_anime, song=id_song, number=number, - thumbnail=item.thumbnail, fanart=item.fanart, text_color=color5)) + thumbnail=item.thumbnail, fanart=item.fanart, )) for k, v in sorted(animes.items()): v.sort(key=lambda x: (x.url, int(x.number))) @@ -3168,18 +3152,18 @@ def cuenta_mal(item): itemlist = [] login, message, user = login_mal(True) if not login: - itemlist.append(item.clone(action="configuracion", title=message, text_color=color4)) + itemlist.append(item.clone(action="configuracion", title=message, )) else: itemlist.append( - item.clone(action="items_mal", title=config.get_localized_string(70382), text_color=color5, accion="lista_mal", + item.clone(action="items_mal", title=config.get_localized_string(70382), accion="lista_mal", url="https://myanimelist.net/animelist/%s?status=1" % user, login=True)) - itemlist.append(item.clone(action="items_mal", title=config.get_localized_string(70383), text_color=color5, accion="lista_mal", + itemlist.append(item.clone(action="items_mal", title=config.get_localized_string(70383), accion="lista_mal", url="https://myanimelist.net/animelist/%s?status=2" % user, login=True)) - itemlist.append(item.clone(action="items_mal", title=config.get_localized_string(70384), text_color=color5, accion="lista_mal", + itemlist.append(item.clone(action="items_mal", title=config.get_localized_string(70384), accion="lista_mal", url="https://myanimelist.net/animelist/%s?status=3" % user, login=True)) - itemlist.append(item.clone(action="items_mal", title=config.get_localized_string(70385), text_color=color5, accion="lista_mal", + itemlist.append(item.clone(action="items_mal", title=config.get_localized_string(70385), accion="lista_mal", url="https://myanimelist.net/animelist/%s?status=4" % user, login=True)) - itemlist.append(item.clone(action="items_mal", title=config.get_localized_string(70386), text_color=color5, accion="lista_mal", + itemlist.append(item.clone(action="items_mal", title=config.get_localized_string(70386), accion="lista_mal", url="https://myanimelist.net/animelist/%s?status=6" % user, login=True)) return itemlist @@ -3222,7 +3206,7 @@ def items_mal(item): tipo = "movie" extra = "movie" itemlist.append(Item(channel=item.channel, action="detalles_mal", url=url, title=title, thumbnail=thumbnail, - text_color=color3, + contentTitle=contentTitle, contentType=tipo, extra=extra, login=True)) if itemlist: @@ -3261,7 +3245,7 @@ def menu_mal(item): for key, value in status.items(): if not value in title_estado: itemlist.append( - item.clone(title=config.get_localized_string(70391) % value, action="addlist_mal", text_color=color5, value=key, + item.clone(title=config.get_localized_string(70391) % value, action="addlist_mal", value=key, estado=value)) for i in range(10, 0, -1): From edac3e9d34bf32f33bd8b0e047fc4ee8101093e8 Mon Sep 17 00:00:00 2001 From: Alhaziel Date: Sat, 18 May 2019 19:20:34 +0200 Subject: [PATCH 6/6] rapidcrypt\.netz > rapidcrypt\.net --- servers/decrypters/zcrypt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers/decrypters/zcrypt.py b/servers/decrypters/zcrypt.py index ed5c0210..935450b3 100644 --- a/servers/decrypters/zcrypt.py +++ b/servers/decrypters/zcrypt.py @@ -70,7 +70,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= else: logger.info(" url duplicada=" + url) - patron = r"""(https?://(?:www\.)?(?:threadsphere\.bid|adf\.ly|q\.gs|j\.gs|u\.bb|ay\.gy|linkbucks\.com|any\.gs|cash4links\.co|cash4files\.co|dyo\.gs|filesonthe\.net|goneviral\.com|megaline\.co|miniurls\.co|qqc\.co|seriousdeals\.net|theseblogs\.com|theseforums\.com|tinylinks\.co|tubeviral\.com|ultrafiles\.net|urlbeat\.net|whackyvidz\.com|yyv\.co|adfoc\.us|lnx\.lu|sh\.st|href\.li|anonymz\.com|shrink-service\.it|rapidcrypt\.netz|ecleneue\.com)/[^"']+)""" + patron = r"""(https?://(?:www\.)?(?:threadsphere\.bid|adf\.ly|q\.gs|j\.gs|u\.bb|ay\.gy|linkbucks\.com|any\.gs|cash4links\.co|cash4files\.co|dyo\.gs|filesonthe\.net|goneviral\.com|megaline\.co|miniurls\.co|qqc\.co|seriousdeals\.net|theseblogs\.com|theseforums\.com|tinylinks\.co|tubeviral\.com|ultrafiles\.net|urlbeat\.net|whackyvidz\.com|yyv\.co|adfoc\.us|lnx\.lu|sh\.st|href\.li|anonymz\.com|shrink-service\.it|rapidcrypt\.net|ecleneue\.com)/[^"']+)""" logger.info(" find_videos #" + patron + "#") matches = re.compile(patron).findall(page_url)