Refactor channel Guardaserie.click
This commit is contained in:
@@ -4,10 +4,18 @@
|
|||||||
"active": true,
|
"active": true,
|
||||||
"adult": false,
|
"adult": false,
|
||||||
"language": ["ita"],
|
"language": ["ita"],
|
||||||
"thumbnail": "http://www.guardaserie.click/wp-content/themes/guardaserie/images/logogd.png",
|
"thumbnail": "guardaserieclick.png",
|
||||||
"bannermenu": "http://www.guardaserie.click/wp-content/themes/guardaserie/images/logogd.png",
|
"bannermenu": "guardaserieclick.png",
|
||||||
"categories": ["tvshow","anime"],
|
"categories": ["tvshow","anime"],
|
||||||
"settings": [
|
"settings": [
|
||||||
|
{
|
||||||
|
"id": "channel_host",
|
||||||
|
"type": "text",
|
||||||
|
"label": "Host del canale",
|
||||||
|
"default": "https://www.guardaserie.media",
|
||||||
|
"enabled": true,
|
||||||
|
"visible": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "include_in_global_search",
|
"id": "include_in_global_search",
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
@@ -31,6 +39,32 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"visible": true
|
"visible": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "checklinks",
|
||||||
|
"type": "bool",
|
||||||
|
"label": "Verifica se i link esistono",
|
||||||
|
"default": false,
|
||||||
|
"enabled": true,
|
||||||
|
"visible": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "checklinks_number",
|
||||||
|
"type": "list",
|
||||||
|
"label": "Numero de link da verificare",
|
||||||
|
"default": 1,
|
||||||
|
"enabled": true,
|
||||||
|
"visible": "eq(-1,true)",
|
||||||
|
"lvalues": [ "1", "3", "5", "10" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "filter_languages",
|
||||||
|
"type": "list",
|
||||||
|
"label": "Mostra link in lingua...",
|
||||||
|
"default": 0,
|
||||||
|
"enabled": true,
|
||||||
|
"visible": true,
|
||||||
|
"lvalues": ["Non filtrare","IT"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+165
-123
@@ -1,49 +1,56 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# ------------------------------------------------------------
|
# ------------------------------------------------------------
|
||||||
# Ringraziamo Icarus crew
|
|
||||||
# Canale per guardaserie.click
|
# Canale per guardaserie.click
|
||||||
|
# Thanks to Icarus crew & Alfa addon
|
||||||
# ------------------------------------------------------------
|
# ------------------------------------------------------------
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
import channelselector
|
||||||
from core import httptools, scrapertools, servertools, support
|
from core import httptools, scrapertools, servertools, support
|
||||||
from core import tmdb
|
from core import tmdb
|
||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import logger, config
|
from platformcode import logger, config
|
||||||
|
from specials import autoplay
|
||||||
|
|
||||||
host = "http://www.guardaserie.watch"
|
__channel__ = 'guardaserieclick'
|
||||||
|
host = config.get_setting("channel_host", __channel__)
|
||||||
|
headers = [['Referer', host]]
|
||||||
|
|
||||||
|
IDIOMAS = {'Italiano': 'IT'}
|
||||||
|
list_language = IDIOMAS.values()
|
||||||
|
list_servers = ['speedvideo','openload']
|
||||||
|
list_quality = ['default']
|
||||||
|
|
||||||
headers = [['Referer', host]]
|
headers = [['Referer', host]]
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
logger.info("[GuardaSerieClick.py]==> mainlist")
|
support.log(item.channel+" mainlist")
|
||||||
itemlist = [Item(channel=item.channel,
|
|
||||||
action="nuoveserie",
|
itemlist = []
|
||||||
title=support.color("Nuove serie TV", "orange"),
|
# support.menu(itemlist, 'Serie TV bold')
|
||||||
url="%s/lista-serie-tv" % host,
|
support.menu(itemlist, 'Novità bold', 'serietvaggiornate', "%s/lista-serie-tv" % host,'tvshow')
|
||||||
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
|
support.menu(itemlist, 'Nuove serie', 'nuoveserie', "%s/lista-serie-tv" % host,'tvshow')
|
||||||
Item(channel=item.channel,
|
support.menu(itemlist, 'Serie inedite Sub-ITA', 'nuoveserie', "%s/lista-serie-tv" % host,'tvshow',args=['inedite'])
|
||||||
action="serietvaggiornate",
|
support.menu(itemlist, 'Da non perdere bold', 'nuoveserie', "%s/lista-serie-tv" % host,'tvshow',args=['tv','da non perdere'])
|
||||||
title=support.color("Serie TV Aggiornate", "azure"),
|
support.menu(itemlist, 'Classiche bold', 'nuoveserie', "%s/lista-serie-tv" % host,'tvshow',args=['tv','classiche'])
|
||||||
url="%s/lista-serie-tv" % host,
|
support.menu(itemlist, 'Anime', 'lista_serie', "%s/category/animazione/" % host,'tvshow')
|
||||||
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
|
support.menu(itemlist, 'Categorie', 'categorie', host,'tvshow',args=['serie'])
|
||||||
Item(channel=item.channel,
|
support.menu(itemlist, 'Cerca', 'search', host,'tvshow',args=['serie'])
|
||||||
action="lista_serie",
|
|
||||||
title=support.color("Anime", "azure"),
|
autoplay.init(item.channel, list_servers, list_quality)
|
||||||
url="%s/category/animazione/" % host,
|
autoplay.show_option(item.channel, itemlist)
|
||||||
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
|
|
||||||
Item(channel=item.channel,
|
itemlist.append(
|
||||||
action="categorie",
|
Item(channel='setting',
|
||||||
title=support.color("Categorie", "azure"),
|
action="channel_config",
|
||||||
url=host,
|
title=support.typo("Configurazione Canale color lime"),
|
||||||
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
|
config=item.channel,
|
||||||
Item(channel=item.channel,
|
folder=False,
|
||||||
action="search",
|
thumbnail=channelselector.get_thumb('setting_0.png'))
|
||||||
title=support.color("Cerca ...", "yellow"),
|
)
|
||||||
extra="serie",
|
|
||||||
thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search")]
|
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
@@ -52,7 +59,7 @@ def mainlist(item):
|
|||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------
|
||||||
def newest(categoria):
|
def newest(categoria):
|
||||||
logger.info("[GuardaSerieClick.py]==> newest" + categoria)
|
support.log(__channel__+" newest" + categoria)
|
||||||
itemlist = []
|
itemlist = []
|
||||||
item = Item()
|
item = Item()
|
||||||
try:
|
try:
|
||||||
@@ -78,7 +85,7 @@ def newest(categoria):
|
|||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------
|
||||||
def search(item, texto):
|
def search(item, texto):
|
||||||
logger.info("[GuardaSerieClick.py]==> search")
|
support.log(item.channel+" search")
|
||||||
item.url = host + "/?s=" + texto
|
item.url = host + "/?s=" + texto
|
||||||
try:
|
try:
|
||||||
return lista_serie(item)
|
return lista_serie(item)
|
||||||
@@ -91,29 +98,44 @@ def search(item, texto):
|
|||||||
|
|
||||||
|
|
||||||
# ================================================================================================================
|
# ================================================================================================================
|
||||||
|
# ----------------------------------------------------------------------------------------------------------------
|
||||||
|
def cleantitle(scrapedtitle):
|
||||||
|
scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle.strip()).replace('"',"'")
|
||||||
|
|
||||||
|
return scrapedtitle.strip()
|
||||||
|
|
||||||
|
|
||||||
|
# ================================================================================================================
|
||||||
# ----------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------
|
||||||
def nuoveserie(item):
|
def nuoveserie(item):
|
||||||
logger.info("[GuardaSerieClick.py]==> nuoveserie")
|
support.log(item.channel+" nuoveserie")
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url, headers=headers).data
|
patron_block = ''
|
||||||
blocco = scrapertools.find_single_match(data, '<div\s*class="container container-title-serie-new container-scheda" meta-slug="new">(.*?)</div></div><div')
|
if 'inedite' in item.args:
|
||||||
|
patron_block = r'<div\s*class="container container-title-serie-ined container-scheda" meta-slug="ined">(.*?)</div></div><div'
|
||||||
|
elif 'da non perder' in item.args:
|
||||||
|
patron_block = r'<div\s*class="container container-title-serie-danonperd container-scheda" meta-slug="danonperd">(.*?)</div></div><div'
|
||||||
|
elif 'classiche' in item.args:
|
||||||
|
patron_block = r'<div\s*class="container container-title-serie-classiche container-scheda" meta-slug="classiche">(.*?)</div></div><div'
|
||||||
|
else:
|
||||||
|
patron_block = r'<div\s*class="container container-title-serie-new container-scheda" meta-slug="new">(.*?)</div></div><div'
|
||||||
|
|
||||||
patron = r'<a\s*href="([^"]+)".*?>\s*<img\s*.*?src="([^"]+)" />[^>]+>[^>]+>[^>]+>[^>]+>'
|
patron = r'<a\s*href="([^"]+)".*?>\s*<img\s*.*?src="([^"]+)" />[^>]+>[^>]+>[^>]+>[^>]+>'
|
||||||
patron += r'[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)</p>'
|
patron += r'[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)</p>'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(blocco)
|
|
||||||
|
matches = support.match(item, patron, patron_block, headers)[0]
|
||||||
|
|
||||||
for scrapedurl, scrapedthumbnail, scrapedtitle in matches:
|
for scrapedurl, scrapedthumbnail, scrapedtitle in matches:
|
||||||
scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle)
|
scrapedtitle = cleantitle(scrapedtitle)
|
||||||
|
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
Item(channel=item.channel,
|
Item(channel=item.channel,
|
||||||
action="episodi",
|
action="episodios",
|
||||||
contentType="tv",
|
contentType="episode",
|
||||||
title=scrapedtitle,
|
title=scrapedtitle,
|
||||||
fulltitle=scrapedtitle,
|
fulltitle=scrapedtitle,
|
||||||
url=scrapedurl,
|
url=scrapedurl,
|
||||||
extra="tv",
|
|
||||||
show=scrapedtitle,
|
show=scrapedtitle,
|
||||||
thumbnail=scrapedthumbnail,
|
thumbnail=scrapedthumbnail,
|
||||||
folder=True))
|
folder=True))
|
||||||
@@ -126,35 +148,48 @@ def nuoveserie(item):
|
|||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------
|
||||||
def serietvaggiornate(item):
|
def serietvaggiornate(item):
|
||||||
logger.info("[GuardaSerieClick.py]==> serietvaggiornate")
|
support.log(item.channel+" serietvaggiornate")
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url, headers=headers).data
|
patron_block = r'<div\s*class="container container-title-serie-lastep container-scheda" meta-slug="lastep">(.*?)</div></div><div'
|
||||||
blocco = scrapertools.find_single_match(data,
|
|
||||||
r'<div\s*class="container container-title-serie-lastep container-scheda" meta-slug="lastep">(.*?)</div></div><div')
|
|
||||||
|
|
||||||
patron = r'<a\s*rel="nofollow" href="([^"]+)"[^>]+> <img\s*.*?src="([^"]+)"[^>]+>[^>]+>'
|
patron = r'<a\s*rel="nofollow" href="([^"]+)"[^>]+> <img\s*.*?src="([^"]+)"[^>]+>[^>]+>'
|
||||||
patron += r'[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)<[^>]+>'
|
patron += r'[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)<[^>]+>'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(blocco)
|
|
||||||
|
matches = support.match(item,patron, patron_block, headers)[0]
|
||||||
|
|
||||||
for scrapedurl, scrapedthumbnail, scrapedep, scrapedtitle in matches:
|
for scrapedurl, scrapedthumbnail, scrapedep, scrapedtitle in matches:
|
||||||
episode = re.compile(r'^(\d+)x(\d+)', re.DOTALL).findall(scrapedep) # Prendo stagione ed episodio
|
episode = re.compile(r'^(\d+)x(\d+)', re.DOTALL).findall(scrapedep) # Prendo stagione ed episodioso
|
||||||
scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle)
|
scrapedtitle = cleantitle(scrapedtitle)
|
||||||
title = "%s %s" % (scrapedtitle, scrapedep)
|
|
||||||
extra = r'<span\s*.*?meta-stag="%s" meta-ep="%s" meta-embed="([^"]+)"[^>]*>' % (
|
contentlanguage = ""
|
||||||
|
if 'sub-ita' in scrapedep.strip().lower():
|
||||||
|
contentlanguage = 'Sub-ITA'
|
||||||
|
|
||||||
|
extra = r'<span\s*.*?meta-stag="%s" meta-ep="%s" meta-embed="([^"]+)"\s*.*?embed2="([^"]+)?"\s*.*?embed3="([^"]+)?"[^>]*>' % (
|
||||||
episode[0][0], episode[0][1].lstrip("0"))
|
episode[0][0], episode[0][1].lstrip("0"))
|
||||||
|
|
||||||
|
infoLabels = {}
|
||||||
|
infoLabels['episode'] = episode[0][1].lstrip("0")
|
||||||
|
infoLabels['season'] = episode[0][0]
|
||||||
|
|
||||||
|
title = str("%s - %sx%s %s" % (scrapedtitle,infoLabels['season'],infoLabels['episode'],contentlanguage)).strip()
|
||||||
|
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
Item(channel=item.channel,
|
Item(channel=item.channel,
|
||||||
action="findepvideos",
|
action="findepvideos",
|
||||||
contentType="tv",
|
contentType="episode",
|
||||||
title=title,
|
title=title,
|
||||||
show=title,
|
show=scrapedtitle,
|
||||||
fulltitle=scrapedtitle,
|
fulltitle=scrapedtitle,
|
||||||
url=scrapedurl,
|
url=scrapedurl,
|
||||||
extra=extra,
|
extra=extra,
|
||||||
thumbnail=scrapedthumbnail,
|
thumbnail=scrapedthumbnail,
|
||||||
|
contentLanguage=contentlanguage,
|
||||||
|
infoLabels=infoLabels,
|
||||||
folder=True))
|
folder=True))
|
||||||
|
|
||||||
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
|
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
@@ -162,20 +197,17 @@ def serietvaggiornate(item):
|
|||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------
|
||||||
def categorie(item):
|
def categorie(item):
|
||||||
logger.info("[GuardaSerieClick.py]==> categorie")
|
support.log(item.channel+" categorie")
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url, headers=headers).data
|
matches = support.match(item, r'<li>\s*<a\s*href="([^"]+)"[^>]+>([^<]+)</a></li>', r'<ul\s*class="dropdown-menu category">(.*?)</ul>', headers)[0]
|
||||||
blocco = scrapertools.find_single_match(data, r'<ul\s*class="dropdown-menu category">(.*?)</ul>')
|
|
||||||
patron = r'<li>\s*<a\s*href="([^"]+)"[^>]+>([^<]+)</a></li>'
|
|
||||||
matches = re.compile(patron, re.DOTALL).findall(blocco)
|
|
||||||
|
|
||||||
for scrapedurl, scrapedtitle in matches:
|
for scrapedurl, scrapedtitle in matches:
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
Item(channel=item.channel,
|
Item(channel=item.channel,
|
||||||
action="lista_serie",
|
action="lista_serie",
|
||||||
title=scrapedtitle,
|
title=scrapedtitle,
|
||||||
contentType="tv",
|
contentType="tvshow",
|
||||||
url="".join([host, scrapedurl]),
|
url="".join([host, scrapedurl]),
|
||||||
thumbnail=item.thumbnail,
|
thumbnail=item.thumbnail,
|
||||||
extra="tv",
|
extra="tv",
|
||||||
@@ -188,66 +220,93 @@ def categorie(item):
|
|||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------
|
||||||
def lista_serie(item):
|
def lista_serie(item):
|
||||||
logger.info("[GuardaSerieClick.py]==> lista_serie")
|
support.log(item.channel+" lista_serie")
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url, headers=headers).data
|
# data = httptools.downloadpage(item.url, headers=headers).data
|
||||||
|
#
|
||||||
|
# patron = r'<a\s*href="([^"]+)".*?>\s*<img\s*.*?src="([^"]+)" />[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)</p></div>'
|
||||||
|
# blocco = scrapertools.find_single_match(data,
|
||||||
|
# r'<div\s*class="col-xs-\d+ col-sm-\d+-\d+">(.*?)<div\s*class="container-fluid whitebg" style="">')
|
||||||
|
# matches = re.compile(patron, re.DOTALL).findall(blocco)
|
||||||
|
|
||||||
|
patron_block = r'<div\s*class="col-xs-\d+ col-sm-\d+-\d+">(.*?)<div\s*class="container-fluid whitebg" style="">'
|
||||||
patron = r'<a\s*href="([^"]+)".*?>\s*<img\s*.*?src="([^"]+)" />[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)</p></div>'
|
patron = r'<a\s*href="([^"]+)".*?>\s*<img\s*.*?src="([^"]+)" />[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)</p></div>'
|
||||||
blocco = scrapertools.find_single_match(data,
|
|
||||||
r'<div\s*class="col-xs-\d+ col-sm-\d+-\d+">(.*?)<div\s*class="container-fluid whitebg" style="">')
|
matches, data = support.match(item, patron, patron_block, headers)
|
||||||
matches = re.compile(patron, re.DOTALL).findall(blocco)
|
|
||||||
|
|
||||||
for scrapedurl, scrapedimg, scrapedtitle in matches:
|
for scrapedurl, scrapedimg, scrapedtitle in matches:
|
||||||
scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle).strip()
|
scrapedtitle = cleantitle(scrapedtitle)
|
||||||
itemlist.append(
|
|
||||||
Item(channel=item.channel,
|
if scrapedtitle not in ['DMCA','Contatti','Lista di tutte le serie tv']:
|
||||||
action="episodi",
|
itemlist.append(
|
||||||
title=scrapedtitle,
|
Item(channel=item.channel,
|
||||||
fulltitle=scrapedtitle,
|
action="episodios",
|
||||||
url=scrapedurl,
|
contentType="episode",
|
||||||
thumbnail=scrapedimg,
|
title=scrapedtitle,
|
||||||
extra=item.extra,
|
fulltitle=scrapedtitle,
|
||||||
show=scrapedtitle,
|
url=scrapedurl,
|
||||||
folder=True))
|
thumbnail=scrapedimg,
|
||||||
|
extra=item.extra,
|
||||||
|
show=scrapedtitle,
|
||||||
|
folder=True))
|
||||||
|
|
||||||
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
|
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
|
||||||
|
|
||||||
|
support.nextPage(itemlist,item,data,r"<link\s.*?rel='next'\shref='([^']*)'")
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
# ================================================================================================================
|
# ================================================================================================================
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------
|
||||||
def episodi(item):
|
def episodios(item):
|
||||||
logger.info("[GuardaSerieClick.py]==> episodi")
|
support.log(item.channel+" episodios")
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url, headers=headers).data
|
# data = httptools.downloadpage(item.url, headers=headers).data
|
||||||
|
|
||||||
patron = r'<div\s*class="[^"]+">([^<]+)<\/div>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>'
|
patron = r'<div\s*class="[^"]+">\s*([^<]+)<\/div>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)?[^>]+>[^>]+>[^>]+>[^>]+>[^>]+><p[^>]+>([^<]+)<[^>]+>[^>]+>[^>]+>'
|
||||||
patron += r'[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>\s*<span\s*.*?'
|
patron += r'[^<]+[^"]+".*?serie="([^"]+)".*?stag="([0-9]*)".*?ep="([0-9]*)"\s*'
|
||||||
patron += r'embed="([^"]+)"[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>\s*'
|
patron += r'.*?embed="([^"]+)"\s*.*?embed2="([^"]+)?"\s*.*?embed3="([^"]+)?"?[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>\s*'
|
||||||
patron += r'<img\s*class="[^"]+" src="" data-original="([^"]+)"[^>]+>'
|
patron += r'(?:<img\s*class="[^"]+" meta-src="([^"]+)"[^>]+>|<img\s*class="[^"]+" src="" data-original="([^"]+)"[^>]+>)?'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
# matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
for scrapedtitle, scrapedurl, scrapedthumbnail in matches:
|
|
||||||
scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle).strip()
|
|
||||||
itemlist.append(
|
|
||||||
Item(channel=item.channel,
|
|
||||||
action="findvideos",
|
|
||||||
title=scrapedtitle,
|
|
||||||
fulltitle=scrapedtitle,
|
|
||||||
url=scrapedurl,
|
|
||||||
contentType="episode",
|
|
||||||
thumbnail=scrapedthumbnail,
|
|
||||||
folder=True))
|
|
||||||
|
|
||||||
if config.get_videolibrary_support() and len(itemlist) != 0:
|
# logger.debug(matches)
|
||||||
|
|
||||||
|
matches = support.match(item, patron, headers=headers)[0]
|
||||||
|
|
||||||
|
|
||||||
|
for scrapedtitle, scrapedepisodetitle, scrapedplot, scrapedserie, scrapedseason, scrapedepisode, scrapedurl, scrapedurl2,scrapedurl3,scrapedthumbnail,scrapedthumbnail2 in matches:
|
||||||
|
scrapedtitle = cleantitle(scrapedtitle)
|
||||||
|
scrapedepisode = scrapedepisode.zfill(2)
|
||||||
|
scrapedepisodetitle = cleantitle(scrapedepisodetitle)
|
||||||
|
title = str("%sx%s %s" % (scrapedseason, scrapedepisode, scrapedepisodetitle)).strip()
|
||||||
|
if 'SUB-ITA' in scrapedtitle:
|
||||||
|
title +=" Sub-ITA"
|
||||||
|
|
||||||
|
infoLabels = {}
|
||||||
|
infoLabels['season'] = scrapedseason
|
||||||
|
infoLabels['episode'] = scrapedepisode
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
Item(channel=item.channel,
|
Item(channel=item.channel,
|
||||||
title="[COLOR lightblue]%s[/COLOR]" % config.get_localized_string(30161),
|
action="findvideos",
|
||||||
url=item.url,
|
title=title,
|
||||||
action="add_serie_to_library",
|
fulltitle=scrapedtitle,
|
||||||
extra="episodi",
|
url=scrapedurl+"\r\n"+scrapedurl2+"\r\n"+scrapedurl3,
|
||||||
show=item.show))
|
contentType="episode",
|
||||||
|
plot=scrapedplot,
|
||||||
|
contentSerieName=scrapedserie,
|
||||||
|
contentLanguage='Sub-ITA' if 'Sub-ITA' in title else '',
|
||||||
|
infoLabels=infoLabels,
|
||||||
|
thumbnail=scrapedthumbnail2 if scrapedthumbnail2 != '' else scrapedthumbnail,
|
||||||
|
folder=True))
|
||||||
|
|
||||||
|
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
|
||||||
|
|
||||||
|
support.videolibrary(itemlist, item)
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
@@ -256,20 +315,12 @@ def episodi(item):
|
|||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------
|
||||||
def findepvideos(item):
|
def findepvideos(item):
|
||||||
logger.info("[GuardaSerieClick.py]==> findepvideos")
|
support.log(item.channel+" findepvideos")
|
||||||
|
|
||||||
data = httptools.downloadpage(item.url, headers=headers).data
|
data = httptools.downloadpage(item.url, headers=headers).data
|
||||||
data = scrapertools.find_single_match(data, item.extra)
|
matches = scrapertools.find_multiple_matches(data, item.extra)
|
||||||
itemlist = servertools.find_video_items(data=data)
|
data = "\r\n".join(matches[0])
|
||||||
|
item.contentType = 'movie'
|
||||||
for videoitem in itemlist:
|
itemlist = support.server(item, data=data)
|
||||||
server = re.sub(r'[-\[\]\s]+', '', videoitem.title).capitalize()
|
|
||||||
videoitem.title = "".join(["[%s] " % support.color(server.capitalize(), 'orange'), item.title])
|
|
||||||
videoitem.fulltitle = item.fulltitle
|
|
||||||
videoitem.thumbnail = item.thumbnail
|
|
||||||
videoitem.show = item.show
|
|
||||||
videoitem.plot = item.plot
|
|
||||||
videoitem.channel = item.channel
|
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
@@ -278,17 +329,8 @@ def findepvideos(item):
|
|||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------
|
||||||
def findvideos(item):
|
def findvideos(item):
|
||||||
logger.info("[GuardaSerieClick.py]==> findvideos")
|
support.log(item.channel+" findvideos")
|
||||||
|
logger.debug(item.url)
|
||||||
itemlist = servertools.find_video_items(data=item.url)
|
itemlist = support.server(item, data=item.url)
|
||||||
|
|
||||||
for videoitem in itemlist:
|
|
||||||
server = re.sub(r'[-\[\]\s]+', '', videoitem.title).capitalize()
|
|
||||||
videoitem.title = "".join(["[%s] " % support.color(server.capitalize(), 'orange'), item.title])
|
|
||||||
videoitem.fulltitle = item.fulltitle
|
|
||||||
videoitem.thumbnail = item.thumbnail
|
|
||||||
videoitem.show = item.show
|
|
||||||
videoitem.plot = item.plot
|
|
||||||
videoitem.channel = item.channel
|
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
Reference in New Issue
Block a user