diff --git a/addon.xml b/addon.xml index c07efb8a..5739aec2 100644 --- a/addon.xml +++ b/addon.xml @@ -1,5 +1,5 @@ - + @@ -20,12 +20,11 @@ resources/media/themes/ss/2.png resources/media/themes/ss/3.png - - - aggiunto raiplay -- agigunto d.s.d.a (ex documentaristreamingda) -- svariati fix ai canali (eurostreaming, streamtime, piratestreaming, altadefinizioneclick) -- la videoteca ora può essere messa nelle unità di rete -- aggiunto server upstream -- altri piccoli fix vari + - tanti miglioramenti "sotto il cofano", supporto iniziale al futuro kodi 19 +- Nuova modalità di visualizzazione per episodio successivo +- fixato wstream tramite l'aggiunta della finestra per risolvere il reCaptcha +- aggiunta sezione "segnala un problema" in Aiuto +- altri fix e migliorie varie a canali e server Naviga velocemente sul web e guarda i contenuti presenti [COLOR red]The owners and submitters to this addon do not host or distribute any of the content displayed by these addons nor do they have any affiliation with the content providers.[/COLOR] [COLOR yellow]Kodi © is a registered trademark of the XBMC Foundation. We are not connected to or in any other way affiliated with Kodi, Team Kodi, or the XBMC Foundation. Furthermore, any software, addons, or products offered by us will receive no support in official Kodi channels, including the Kodi forums and various social networks.[/COLOR] diff --git a/channels/cineblog01.py b/channels/cineblog01.py index d7c5d122..a0fba827 100644 --- a/channels/cineblog01.py +++ b/channels/cineblog01.py @@ -9,6 +9,7 @@ from core import scrapertools, httptools, servertools, tmdb, support from core.item import Item from lib import unshortenit from platformcode import logger, config +from lib.concurrent import futures def findhost(): @@ -175,28 +176,23 @@ def findvideos(item): if item.contentType == "episode": return findvid_serie(item) - def load_links(itemlist, re_txt, color, desc_txt, quality=""): - streaming = scrapertools.find_single_match(data, re_txt).replace('"', '') - support.log('STREAMING',streaming) - matches = support.match(streaming, patron = r']+>([^<]+)<').matches - for url, server in matches: - logger.debug("##### findvideos %s ## %s ## %s ##" % (desc_txt, url, server)) - itemlist.append( - Item(channel=item.channel, - action="play", - title=server, - url=final_links(url), - server=server, - fulltitle=item.fulltitle, - thumbnail=item.thumbnail, - show=item.show, - quality=quality, - contentType=item.contentType, - folder=False)) + def load_links(urls, re_txt, desc_txt, quality=""): + if re_txt: + streaming = scrapertools.find_single_match(data, re_txt).replace('"', '') + support.log('STREAMING',streaming) + matches = support.match(streaming, patron = r']+>[^<]+<').matches + with futures.ThreadPoolExecutor() as executor: + u = [executor.submit(final_links, match) for match in matches] + for res in futures.as_completed(u): + if res.result(): + urls.append(res.result()) + # for url in matches: + # # logger.debug("##### findvideos %s ## %s ## %s ##" % (desc_txt, url, server)) + # urls.append(final_links(url)) support.log() - itemlist = [] + itemlist = urls = [] # Carica la pagina data = httptools.downloadpage(item.url).data @@ -210,15 +206,15 @@ def findvideos(item): QualityStr = scrapertools.decodeHtmlentities(match.group(1)) # Estrae i contenuti - Streaming - load_links(itemlist, 'Streamin?g:(.*?)cbtable', "orange", "Streaming", "SD") + load_links(urls, 'Streamin?g:(.*?)cbtable', "Streaming", "SD") # Estrae i contenuti - Streaming HD - load_links(itemlist, 'Streamin?g HD[^<]+(.*?)cbtable', "yellow", "Streaming HD", "HD") + load_links(urls, 'Streamin?g HD[^<]+(.*?)cbtable', "Streaming HD", "HD") # Estrae i contenuti - Streaming 3D - load_links(itemlist, 'Streamin?g 3D[^<]+(.*?)cbtable', "pink", "Streaming 3D") + load_links(urls, 'Streamin?g 3D[^<]+(.*?)cbtable', "Streaming 3D") - itemlist=support.server(item, itemlist=itemlist) + itemlist=support.server(item, urls) if itemlist and QualityStr: itemlist.insert(0, Item(channel=item.channel, @@ -236,30 +232,26 @@ def findvideos(item): def findvid_serie(item): - def load_vid_series(html, item, itemlist, blktxt=''): + def load_vid_series(html, item, urls, blktxt=''): # logger.info('HTML' + html) # patron = r']+>(?!