Episodio 0','>Episodio-0')
- # matches = scrapertools.find_multiple_matches(blocco, r'Episodio[^\d](\d*)')
- # logger.debug(blocco)
- # logger.debug(matches)
- # episodes = []
- # if len(matches) > 0:
- # for string, episode in matches:
- # episodes.append([
- # "".join([season, "x", episode]),
- # season,
- # episode
- # ])
else:
title = scrapedtitle.split(" S0")[0].strip()
title = title.split(" S1")[0].strip()
title = title.split(" S2")[0].strip()
- episodes = scrapertools.find_multiple_matches(scrapedtitle,r'((\d*)x(\d*))')
- # logger.debug(scrapedtitle)
- # logger.debug(episodes)
+ episodes = scrapertools.find_multiple_matches(scrapedtitle, r'((\d*)x(\d*))')
for fullepisode, season, episode in episodes:
infoLabels = {}
infoLabels['season'] = season
infoLabels['episode'] = episode
- fullepisode+=' Sub-ITA'
+ fullepisode += ' ' + support.typo("Sub-ITA", '_ [] color kod')
itemlist.append(
Item(channel=item.channel,
extra=item.extra,
@@ -213,83 +201,33 @@ def episodios(item, itemlist=[]):
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
# Paginazionazione
- patron = '
'
next_page = scrapertools.find_single_match(data, patron)
if next_page != "":
item.url = next_page
- itemlist = episodios(item,itemlist)
+ itemlist = episodios(item, itemlist)
else:
item.url = item.originalUrl
- support.videolibrary(itemlist,item,'bold color kod')
+ support.videolibrary(itemlist, item, 'bold color kod')
return itemlist
-# ================================================================================================================
-
-# ----------------------------------------------------------------------------------------------------------------
-def findvideos(item):
- support.log(item.channel + " findvideos")
-
- data = httptools.downloadpage(item.url).data
-
- # recupero il blocco contenente i link
- blocco = scrapertools.find_single_match(data,'
[\s\S.]*?
\d+\s*\d+'
- support.nextPage(itemlist,item,data,patron)
- # next_page = scrapertools.find_single_match(data, patron)
- # if next_page != "":
- # if item.extra == "search_tv":
- # next_page = next_page.replace('&', '&')
- # itemlist.append(
- # Item(channel=item.channel,
- # action='peliculas_tv',
- # contentType=item.contentType,
- # title=support.typo(config.get_localized_string(30992), 'color kod bold'),
- # url=next_page,
- # args=item.args,
- # extra=item.extra,
- # thumbnail=support.thumb()))
-
+ patron = r'
\d+\s
\d+'
+ support.nextPage(itemlist, item, data, patron)
return itemlist
@@ -343,10 +266,9 @@ def peliculas_tv(item):
# ================================================================================================================
-
# ----------------------------------------------------------------------------------------------------------------
def newest(categoria):
- logger.info(__channel__ + " newest" + categoria)
+ log(categoria)
itemlist = []
item = Item()
item.url = host
@@ -355,7 +277,6 @@ def newest(categoria):
if categoria == "series":
itemlist = peliculas_tv(item)
- # Continua la ricerca in caso di errore
except:
import sys
for line in sys.exc_info():
@@ -369,15 +290,11 @@ def newest(categoria):
# ----------------------------------------------------------------------------------------------------------------
def search(item, texto):
- logger.info(item.channel + " search")
+ log(texto)
itemlist = []
- # Scarico la pagina
- data = httptools.downloadpage(item.url).data
-
- # Articoli
patron = '
([^<]+)'
- matches = re.compile(patron, re.DOTALL).findall(data)
+ matches = support.match(item, patron, headers=headers)[0]
for i, (scrapedurl, scrapedtitle) in enumerate(matches):
if texto.upper() in scrapedtitle.upper():
@@ -401,19 +318,6 @@ def search(item, texto):
return itemlist
- # item.extra = "search_tv"
- #
- # item.url = host + "/?s=" + texto + "&op.x=0&op.y=0"
- #
- # try:
- # return peliculas_tv(item)
- #
- # except:
- # import sys
- # for line in sys.exc_info():
- # logger.error("%s" % line)
- # return []
-
# ================================================================================================================
@@ -421,23 +325,18 @@ def search(item, texto):
def list_az(item):
- support.log(item.channel+" list_az")
+ log()
itemlist = []
alphabet = dict()
-
- # Scarico la pagina
- data = httptools.downloadpage(item.url).data
-
- # Articoli
patron = '([^<]+)'
- matches = re.compile(patron, re.DOTALL).findall(data)
+ matches = support.match(item, patron, headers=headers)[0]
for i, (scrapedurl, scrapedtitle) in enumerate(matches):
letter = scrapedtitle[0].upper()
if letter not in alphabet:
alphabet[letter] = []
- alphabet[letter].append(scrapedurl+'||'+scrapedtitle)
+ alphabet[letter].append(scrapedurl + '||' + scrapedtitle)
for letter in sorted(alphabet):
itemlist.append(
diff --git a/channels/serietvu.py b/channels/serietvu.py
index d13b3451..8280e6f8 100644
--- a/channels/serietvu.py
+++ b/channels/serietvu.py
@@ -1,15 +1,14 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
# Canale per SerieTVU
-# Thanks to Icarus crew & Alfa addon
+# Thanks to Icarus crew & Alfa addon & 4l3x87
# ----------------------------------------------------------
import re
-import channelselector
-from core import httptools, tmdb, scrapertools, support
+from core import tmdb, scrapertools, support
from core.item import Item
+from core.support import log
from platformcode import logger, config
-from specials import autoplay
__channel__ = 'serietvu'
host = config.get_setting("channel_host", __channel__)
@@ -20,44 +19,28 @@ list_language = IDIOMAS.values()
list_servers = ['speedvideo']
list_quality = ['default']
-# checklinks = config.get_setting('checklinks', __channel__)
-# checklinks_number = config.get_setting('checklinks_number', __channel__)
-
-
def mainlist(item):
- support.log(item.channel + 'mainlist')
+ log()
itemlist = []
- support.menu(itemlist, 'Serie TV bold', 'lista_serie', "%s/category/serie-tv" % host,'tvshow')
- support.menu(itemlist, 'Novità submenu', 'latestep', "%s/ultimi-episodi" % host,'tvshow')
- # support.menu(itemlist, 'Nuove serie color azure', 'lista_serie', "%s/category/serie-tv" % host,'tvshow')
- support.menu(itemlist, 'Categorie', 'categorie', host,'tvshow')
- support.menu(itemlist, 'Cerca', 'search', host,'tvshow')
-
- autoplay.init(item.channel, list_servers, list_quality)
- autoplay.show_option(item.channel, itemlist)
-
- itemlist.append(
- Item(channel='setting',
- action="channel_config",
- title=support.typo("Configurazione Canale color lime"),
- config=item.channel,
- folder=False,
- thumbnail=channelselector.get_thumb('setting_0.png'))
- )
-
+ support.menu(itemlist, 'Novità bold', 'latestep', "%s/ultimi-episodi" % host, 'tvshow')
+ support.menu(itemlist, 'Serie TV bold', 'lista_serie', "%s/category/serie-tv" % host, 'tvshow')
+ support.menu(itemlist, 'Categorie', 'categorie', host, 'tvshow')
+ support.menu(itemlist, 'Cerca', 'search', host, 'tvshow')
+ support.aplay(item, itemlist, list_servers, list_quality)
+ support.channel_config(item, itemlist)
return itemlist
# ----------------------------------------------------------------------------------------------------------------
def cleantitle(scrapedtitle):
scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle.strip())
- scrapedtitle = scrapedtitle.replace('[HD]', '').replace('’', '\'').replace('– Il Trono di Spade','').replace('Flash 2014','Flash')
+ scrapedtitle = scrapedtitle.replace('[HD]', '').replace('’', '\'').replace('– Il Trono di Spade', '').replace(
+ 'Flash 2014', 'Flash').replace('"', "'")
year = scrapertools.find_single_match(scrapedtitle, '\((\d{4})\)')
if year:
scrapedtitle = scrapedtitle.replace('(' + year + ')', '')
-
return scrapedtitle.strip()
@@ -65,14 +48,12 @@ def cleantitle(scrapedtitle):
# ----------------------------------------------------------------------------------------------------------------
def lista_serie(item):
- support.log(item.channel + " lista_serie")
+ log()
itemlist = []
- data = httptools.downloadpage(item.url, headers=headers).data
-
patron = r'\s*
'
patron += r'[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)<'
- matches = re.compile(patron, re.DOTALL).findall(data)
+ matches, data = support.match(item, patron, headers=headers)
for scrapedurl, scrapedimg, scrapedtitle in matches:
infoLabels = {}
@@ -96,34 +77,43 @@ def lista_serie(item):
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
# Pagine
- support.nextPage(itemlist,item,data,'Pagina successiva')
+ support.nextPage(itemlist, item, data, 'Pagina successiva')
return itemlist
+
# ================================================================================================================
# ----------------------------------------------------------------------------------------------------------------
def episodios(item):
- support.log(item.channel + " episodios")
+ log()
itemlist = []
- data = httptools.downloadpage(item.url, headers=headers).data
-
patron = r''
- matches = re.compile(patron, re.DOTALL).findall(data)
+ matches, data = support.match(item, patron, headers=headers)
for value in matches:
patron = r'(.*?)
\s* ' % value
blocco = scrapertools.find_single_match(data, patron)
+ log(blocco)
+ patron = r'()[^>]+>[^>]+>([^<]+)<'
+ matches = scrapertools.find_multiple_matches(blocco, patron)
- patron = r'()[^>]+>[^>]+>([^<]+)<'
- matches = re.compile(patron, re.DOTALL).findall(blocco)
for scrapedextra, scrapedurl, scrapedimg, scrapedtitle in matches:
- number = scrapertools.decodeHtmlentities(scrapedtitle.replace("Episodio", "")).strip()
+ contentlanguage = ''
+ if 'sub-ita' in scrapedtitle.lower():
+ contentlanguage = 'Sub-ITA'
+ scrapedtitle = scrapedtitle.replace(contentlanguage, '')
+
+ number = cleantitle(scrapedtitle.replace("Episodio", "")).strip()
title = value + "x" + number.zfill(2)
+ title += " "+support.typo(contentlanguage, '_ [] color kod') if contentlanguage else ''
+ infoLabels = {}
+ infoLabels['episode'] = number.zfill(2)
+ infoLabels['season'] = value
itemlist.append(
Item(channel=item.channel,
@@ -134,60 +124,40 @@ def episodios(item):
url=scrapedurl,
thumbnail=scrapedimg,
extra=scrapedextra,
+ infoLabels=infoLabels,
folder=True))
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
- support.videolibrary(itemlist,item,'bold color kod')
+ support.videolibrary(itemlist, item, 'bold color kod')
return itemlist
+
# ================================================================================================================
# ----------------------------------------------------------------------------------------------------------------
def findvideos(item):
- support.log(item.channel + " findvideos")
+ log()
+ return support.server(item, data=item.url)
- itemlist = support.server(item, data=item.url)
- # itemlist = filtertools.get_links(itemlist, item, list_language)
-
- # Controlla se i link sono validi
- # if checklinks:
- # itemlist = servertools.check_list_links(itemlist, checklinks_number)
- #
- # autoplay.start(itemlist, item)
-
- return itemlist
# ================================================================================================================
# ----------------------------------------------------------------------------------------------------------------
def findepisodevideo(item):
- support.log(item.channel + " findepisodevideo")
+ log()
- # Download Pagina
- data = httptools.downloadpage(item.url, headers=headers).data
-
- # Prendo il blocco specifico per la stagione richiesta
- patron = r'(.*?)
\s* ' % item.extra[0][0]
- blocco = scrapertools.find_single_match(data, patron)
-
- # Estraggo l'episodio
- patron = r'
' % item.extra[0][1].lstrip("0")
- matches = re.compile(patron, re.DOTALL).findall(blocco)
-
- itemlist = support.server(item, data=matches[0][0])
- # itemlist = filtertools.get_links(itemlist, item, list_language)
-
- # Controlla se i link sono validi
- # if checklinks:
- # itemlist = servertools.check_list_links(itemlist, checklinks_number)
- #
- # autoplay.start(itemlist, item)
-
- return itemlist
+ patron_block = r'(.*?)
\s*