Merge remote-tracking branch 'origin/master'

This commit is contained in:
marco
2019-11-01 19:03:09 +01:00
5 changed files with 196 additions and 141 deletions
+52 -52
View File
@@ -1,55 +1,55 @@
{
"altadefinizione01": "https://www.altadefinizione01.cc",
"altadefinizione01_club": "https://www.altadefinizione01.cc",
"altadefinizione01_link": "http://altadefinizione01.gift",
"altadefinizioneclick": "https://altadefinizione.cloud",
"altadefinizionehd": "https://altadefinizione.wtf",
"animeforce": "https://ww1.animeforce.org",
"animeleggendari": "https://animepertutti.com",
"animespace": "http://www.animespace.tv",
"animestream": "https://www.animeworld.it",
"animesubita": "http://www.animesubita.org",
"animetubeita": "http://www.animetubeita.com",
"animeworld": "https://www.animeworld.tv",
"casacinema": "https://www.casacinema.uno",
"casacinemainfo": "https://www.casacinema.info",
"cb01anime": "https://www.cineblog01.ink",
"cinemalibero": "https://www.cinemalibero.best",
"documentaristreamingda": "https://documentari-streaming-da.com",
"dreamsub": "https://www.dreamsub.stream",
"eurostreaming": "https://eurostreaming.pink",
"fastsubita": "http://fastsubita.com",
"filmgratis": "https://www.filmaltadefinizione.net",
"filmigratis": "https://filmigratis.org",
"filmpertutti": "https://www.filmpertutti.link",
"filmsenzalimiti": "https://filmsenzalimiti.best",
"filmsenzalimiticc": "https://www.filmsenzalimiti.press",
"filmstreaming01": "https://filmstreaming01.com",
"filmstreamingita": "http://filmstreamingita.live",
"guardafilm": "http://www.guardafilm.top",
"guardarefilm": "https://www.guardarefilm.red",
"guardaserie_stream": "https://guardaserie.co",
"guardaseriecc": "https://guardaserie.site",
"guardaserieclick": "https://www.guardaserie.media",
"guardogratis": "https://guardogratis.net",
"ilgeniodellostreaming": "https://ilgeniodellostreaming.se",
"italiafilm": "https://www.italia-film.pw",
"italiafilmhd": "https://italiafilm.info",
"italiaserie": "https://italiaserie.org",
"itastreaming": "https://itastreaming.film",
"mondolunatico": "http://mondolunatico.org",
"mondolunatico2": "https://mondolunatico.org:443/stream",
"mondoserietv": "https://mondoserietv.com",
"piratestreaming": "https://www.piratestreaming.media",
"polpotv": "https://polpo.tv",
"seriehd": "https://www.seriehd.moda",
"serietvonline": "https://serietvonline.best",
"serietvsubita": "http://serietvsubita.xyz",
"serietvu": "https://www.serietvu.club",
"streamingaltadefinizione": "https://www.popcornstream.best",
"streamtime": "https://t.me/s/StreamTime",
"tantifilm": "https://www.tantifilm.eu",
"toonitalia": "https://toonitalia.org",
"vedohd": "https://vedohd.video",
"altadefinizione01": "https://www.altadefinizione01.cc",
"altadefinizione01_club": "https://www.altadefinizione01.cc",
"altadefinizione01_link": "http://altadefinizione01.gift",
"altadefinizioneclick": "https://altadefinizione.cloud",
"altadefinizionehd": "https://altadefinizione.wtf",
"animeforce": "https://ww1.animeforce.org",
"animeleggendari": "https://animepertutti.com",
"animespace": "http://www.animespace.tv",
"animestream": "https://www.animeworld.it",
"animesubita": "http://www.animesubita.org",
"animetubeita": "http://www.animetubeita.com",
"animeworld": "https://www.animeworld.tv",
"casacinema": "https://www.casacinema.uno",
"casacinemainfo": "https://www.casacinema.info",
"cb01anime": "https://www.cineblog01.ink",
"cinemalibero": "https://www.cinemalibero.best",
"documentaristreamingda": "https://documentari-streaming-da.com",
"dreamsub": "https://www.dreamsub.stream",
"eurostreaming": "https://eurostreaming.pink",
"fastsubita": "http://fastsubita.com",
"filmgratis": "https://www.filmaltadefinizione.net",
"filmigratis": "https://filmigratis.org",
"filmpertutti": "https://www.filmpertutti.link",
"filmsenzalimiti": "https://filmsenzalimiti.best",
"filmsenzalimiticc": "https://www.filmsenzalimiti.press",
"filmstreaming01": "https://filmstreaming01.com",
"filmstreamingita": "http://filmstreamingita.live",
"guardafilm": "http://www.guardafilm.top",
"guardarefilm": "https://www.guardarefilm.red",
"guardaserie_stream": "https://guardaserie.co",
"guardaseriecc": "https://guardaserie.site",
"guardaserieclick": "https://www.guardaserie.media",
"guardogratis": "https://guardogratis.net",
"ilgeniodellostreaming": "https://igds.red",
"italiafilm": "https://www.italia-film.pw",
"italiafilmhd": "https://italiafilm.info",
"italiaserie": "https://italiaserie.org",
"itastreaming": "https://itastreaming.film",
"mondolunatico": "http://mondolunatico.org",
"mondolunatico2": "https://mondolunatico.org:443/stream",
"mondoserietv": "https://mondoserietv.com",
"piratestreaming": "https://www.piratestreaming.media",
"polpotv": "https://polpo.tv",
"seriehd": "https://www.seriehd.moda",
"serietvonline": "https://serietvonline.best",
"serietvsubita": "http://serietvsubita.xyz",
"serietvu": "https://www.serietvu.club",
"streamingaltadefinizione": "https://www.popcornstream.best",
"streamtime": "https://t.me/s/StreamTime",
"tantifilm": "https://www.tantifilm.eu",
"toonitalia": "https://toonitalia.org",
"vedohd": "https://vedohd.video",
"vvvvid": "https://www.vvvvid.it"
}
+19 -1
View File
@@ -7,5 +7,23 @@
"thumbnail": "guardaserieclick.png",
"bannermenu": "guardaserieclick.png",
"categories": ["tvshow", "anime"],
"settings": []
"not_active": ["include_in_newest_peliculas", "include_in_newest_anime"],
"settings": [
{
"id": "include_in_newest_peliculas",
"type": "bool",
"label": "@70727",
"default": false,
"enabled": false,
"visible": false
},
{
"id": "include_in_newest_anime",
"type": "bool",
"label": "@70727",
"default": false,
"enabled": false,
"visible": false
}
]
}
+123 -85
View File
@@ -1,24 +1,22 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
# Canale per Guardaserie.click
# Canale per guardaserieclick
# ------------------------------------------------------------
"""
Problemi noti che non superano il test del canale:
NESSUNO (update 13-9-2019)
Avvisi per il test:
La voce "Serie TV" mostra per ogni pagina 24 titoli
Problemi noti:
- nella pagina categorie appaiono i risultati di tmdb in alcune voci
- Le voci del menu le trovi in "lista serie" del sito, e Generi = Sfoglia
- SE capita che entrando in una voce trovi "nessun elemento" torna indietro e rientra nella voce.
- Tutte le voci, tranne: Anime/Cartoni, mostrano per ogni pagina, al max 25 titoli
Presente in NOVITà:
- Serietv
"""
from core import scrapertoolsV2, httptools, support
from core import support
from core.item import Item
from platformcode import logger, config
from platformcode import config
from core.support import log
__channel__ = 'guardaserieclick'
@@ -30,94 +28,145 @@ list_quality = ['default']
@support.menu
def mainlist(item):
tvshow = ['/lista-serie-tv',
('Ultimi Aggiornamenti', ['/lista-serie-tv', 'peliculas', 'new']),
('Categorie', ['categorie', 'categorie']),
('Serie inedite Sub-ITA', ['/lista-serie-tv', 'peliculas', 'ined']),
('Da non perdere', ['/lista-serie-tv', 'peliculas', ['tv', 'da non perdere']]),
('Classiche', ["/lista-serie-tv", 'peliculas', ['tv', 'classiche']]),
('Anime', ["/category/animazione/", 'tvserie', 'tvshow','anime'])
('Aggiornamenti', ['/lista-serie-tv', 'peliculas', 'update']),
('Generi', ['/categorie', 'genres', 'genres']),
('News Sub-ITA', ['/lista-serie-tv', 'peliculas', 'ined']),
('Da non perdere', ['/lista-serie-tv', 'peliculas', 'nolost']),
('Classiche', ["/lista-serie-tv", 'peliculas', 'classic']),
('Anime/Cartoni', ["/category/animazione/", 'peliculas', 'genres'])
]
return locals()
##@support.scrape
##def peliculas(item):
#### import web_pdb; web_pdb.set_trace()
## log('peliculas ->\n', item)
##
## action = 'episodios'
## block = r'(?P<block>.*?)<div\s+class="btn btn-lg btn-default btn-load-other-series">'
##
## if item.args == 'ined':
## deflang = 'SUB-ITA'
## patronBlock = r'<span\s+class="label label-default label-title-typology">'+block
## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<'
## pagination = 25
## elif item.args == 'update':
## patronBlock = r'<div\s+class="container-fluid greybg title-serie-lastep title-last-ep fixed-title-wrapper containerBottomBarTitle">'+block
## patron = r'<a(?: rel="[^"]+")? href="(?P<url>[^"]+)"(?: class="[^"]+")?>[ ]<img class="[^"]+"[ ]title="[^"]+"[ ]alt="[^"]+"[ ]src="(?P<thumb>[^"]+)"[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<episode>\d+.\d+)[ ]\((?P<lang>[a-zA-Z\-]+)[^<]+<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)<'
## elif item.args == 'genres':
## patronBlock = r'<h2 style="color: white !important" class="title-typology">(?P<block>.+?)<div class="container-fluid whitebg" style="">'
## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)</p>'
## patronNext = r'rel="next" href="([^"]+)">'
## item.contentType = 'tvshow'
## elif item.args == 'nolost':
## patronBlock = r'<h2 class="title-typology styck-top" meta-class="title-serie-danonperd">'+block
## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<'
## pagination = 25
## elif item.args == 'classic':
## patronBlock = r'<h2 class="title-typology styck-top" meta-class="title-serie-classiche">'+block
## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<'
## pagination = 25
## else:
## patronBlock = r'<div\s+class="container container-title-serie-new container-scheda" meta-slug="new">'+block
## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<'
## pagination = 25
##
## debug = True
## return locals()
@support.scrape
def peliculas(item):
## import web_pdb; web_pdb.set_trace()
log('serietv ->\n', item)
if item.args == 'ined':
#data = httptools.downloadpage(item.url).data
log("Sono qui orco")
pagination = 24
action = 'episodios'
patron_block = r'<span\s+class="label label-default label-title-typology">'\
'(?P<lang>[^<]+)</span>'
else:
pagination = 24
action = 'episodios'
patronBlock = r'<div\s+class="container container-title-serie-new container-scheda" '\
'meta-slug="new">(?P<block>.*?)<div\s+class='\
'"btn btn-lg btn-default btn-load-other-series">'
patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>'\
'[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<'
debug = True
return locals()
@support.scrape
def tvserie(item):
log('peliculas ->\n', item)
action = 'episodios'
## listGroups = ['url', 'thumb', 'title']
patron = r'<a\shref="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)" />'\
'[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)</p></div>'
patron_block = r'<div\sclass="col-xs-\d+ col-sm-\d+-\d+">(?P<block>.*?)'\
'<div\sclass="container-fluid whitebg" style="">'
patronNext = r'<link\s.*?rel="next"\shref="([^"]+)"'
blacklist = ['DMCA']
if item.args == 'genres' or item.args == 'search':
patronBlock = r'<h2 style="color: white !important" class="title-typology">(?P<block>.+?)<div class="container-fluid whitebg" style="">'
patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)</p>'
patronNext = r'rel="next" href="([^"]+)">'
item.contentType = 'tvshow'
## elif item.args == 'search':
## patronBlock = r'<h2 style="color:\s?white !important.?" class="title-typology">(?P<block>.*?)<div class="container-fluid whitebg" style="">'
## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)</p>'
else:
end_block = r'(?P<block>.*?)<div\s+class="btn btn-lg btn-default btn-load-other-series">'
patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<'
pagination = 25
if item.args == 'ined':
deflang = 'SUB-ITA'
patronBlock = r'<span\s+class="label label-default label-title-typology">'+end_block
## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<'
## pagination = 25
elif item.args == 'update':
patronBlock = r'<div\s+class="container-fluid greybg title-serie-lastep title-last-ep fixed-title-wrapper containerBottomBarTitle">'+end_block
patron = r'<a(?: rel="[^"]+")? href="(?P<url>[^"]+)"(?: class="[^"]+")?>[ ]<img class="[^"]+"[ ]title="[^"]+"[ ]alt="[^"]+"[ ](?:|meta-)?src="(?P<thumb>[^"]+)"[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?:\d+.\d+)[ ]\((?P<lang>[a-zA-Z\-]+)[^<]+<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)<'
elif item.args == 'nolost':
patronBlock = r'<h2 class="title-typology styck-top" meta-class="title-serie-danonperd">'+end_block
## pagination = 25
elif item.args == 'classic':
patronBlock = r'<h2 class="title-typology styck-top" meta-class="title-serie-classiche">'+end_block
## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<'
## pagination = 25
## elif item.args == 'anime':
##
else:
patronBlock = r'<div\s+class="container container-title-serie-new container-scheda" meta-slug="new">'+end_block
## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<'
## pagination = 25
#support.regexDbg(item, patron, headers)
#debug = True
return locals()
@support.scrape
def episodios(item):
log('episodios ->\n')
item.contentType = 'episode'
log()
action = 'findvideos'
## listGroups = ['episode', 'lang', 'title2', 'plot', 'title', 'url']
patron = r'class="number-episodes-on-img"> (?P<episode>\d+.\d+)'\
'(?:|[ ]\((?P<lang>.*?)\))<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>'\
'(?P<title2>.*?)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>'\
'(?P<plot>.*?)<[^>]+></div></div>.<span\s.+?meta-serie="(?P<title>.*?)"'\
'meta-stag=(?P<url>.*?)</span>'
patron = r'<div class="number-episodes-on-img">\s?\d+.\d+\s?(?:\((?P<lang>[a-zA-Z\-]+)\))?</div>.+?(?:<span class="pull-left bottom-year">(?P<title2>[^<]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<plot>[^<]+)<[^>]+>[^>]+>[^>]+>\s?)?<span(?: meta-nextep="[^"]+")? class="[^"]+" meta-serie="(?P<title>[^"]+)" meta-stag="(?P<season>\d+)" meta-ep="(?P<episode>\d+)" meta-embed="(?P<url>[^>]+)">'
patronBlock = r'<h2 class="title-typology">Episodi (?P<stagione>\d+).{1,3}Stagione</h2>(?P<block>.*?)<div class="container">'
def itemHook(item):
item.title = item.title.replace(item.fulltitle, '').replace('-','',1)
return item
#debug = True
return locals()
def findvideos(item):
log()
return support.server(item, item.url)
@support.scrape
def categorie(item):
action = 'tvserie'
#listGroups = ['url', 'title']
def genres(item):
log()
action = 'peliculas'
patron = r'<li>\s<a\shref="(?P<url>[^"]+)"[^>]+>(?P<title>[^<]+)</a></li>'
patron_block = r'<ul\sclass="dropdown-menu category">(?P<block>.*?)</ul>'
item.contentType = ''
return locals()
# ================================================================================================================
def search(item, text):
log(text)
item.url = host + "/?s=" + text
item.contentType = 'tvshow'
item.args = 'search'
try:
return peliculas(item)
# Continua la ricerca in caso di errore
except:
import sys
for line in sys.exc_info():
log("%s" % line)
return []
def newest(categoria):
log()
itemlist = []
item = Item()
item.contentType= 'episode'
item.contentType= 'tvshow'
item.args = 'update'
try:
if categoria == "series":
@@ -125,30 +174,19 @@ def newest(categoria):
item.action = "peliculas"
itemlist = peliculas(item)
if itemlist[-1].action == "peliculas":
itemlist.pop()
## if itemlist[-1].action == "peliculas":
## itemlist.pop()
# Continua la ricerca in caso di errore
except:
import sys
for line in sys.exc_info():
logger.error("{0}".format(line))
log("{0}".format(line))
return []
return itemlist
### ================================================================================================================
### ----------------------------------------------------------------------------------------------------------------
def search(item, texto):
log(texto)
item.url = host + "/?s=" + texto
item.args = 'cerca'
try:
return tvserie(item)
# Continua la ricerca in caso di errore
except:
import sys
for line in sys.exc_info():
logger.error("%s" % line)
return []
def findvideos(item):
log('--->', item)
return support.server(item, item.url)
+1 -1
View File
@@ -15,6 +15,6 @@
"default": false,
"enabled": false,
"visible": false
},
}
]
}
+1 -2
View File
@@ -166,7 +166,7 @@ def peliculas(item):
patronNext = '<span class="current">[^<]+<[^>]+><a href="([^"]+)"'
debug = True
## debug = True
return locals()
@@ -238,4 +238,3 @@ def findvideos(item):
data += str(scrapertoolsV2.find_multiple_matches(html, '<meta name="og:url" content="([^"]+)">'))
itemlist = support.server(item, data)
return itemlist