# -*- coding: utf-8 -*- # ------------------------------------------------------------ # Canale per guardaserieclick # ------------------------------------------------------------ """ Avvisi per il test: - 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 support from core.item import Item from platformcode import config, logger host = config.get_channel_url() headers = [['Referer', host]] @support.menu def mainlist(item): tvshow = ['', ('Aggiornamenti', ['', 'movies', 'update']), ('Generi', ['', 'genres', 'genres']), ('News Sub-ITA', ['', 'movies', 'ined']), ('Anime/Cartoni', ["/category/animazione/", 'movies', 'genres']) ] return locals() ##@support.scrape ##def movies(item): #### import web_pdb; web_pdb.set_trace() ## logger.debug('movies ->\n', item) ## ## action = 'episodes' ## block = r'(?P.*?)' ## ## if item.args == 'ined': ## deflang = 'SUB-ITA' ## patronBlock = r''+block ## patron = r'\s[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P\d{4})?\s.+?class="strongText">(?P.+?)<' ## pagination = True ## 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 = True ## 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 = True ## 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 = True ## ## debug = True ## return locals() @support.scrape def movies(item): ## import web_pdb; web_pdb.set_trace() logger.debug('movies ->\n', item) action = 'episodes' blacklist = ['DMCA'] if item.args == 'genres' or 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>' 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 = True 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 = True 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'href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>.+?class="strongText">(?P<title>.+?)<' # elif item.args == 'nolost': # patronBlock = r'<h2 class="title-typology styck-top" meta-class="title-serie-danonperd">' + end_block # pagination = True # 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 = True ## 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 = True # support.regexDbg(item, patronBlock, headers) # debug = True return locals() @support.scrape def episodes(item): logger.debug() action = 'findvideos' 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() @support.scrape def genres(item): logger.debug() action = 'movies' patronMenu = r'<li>\s<a\shref="(?P<url>[^"]+)"[^>]+>(?P<title>[^<]+)</a></li>' patron_block = r'<ul\sclass="dropdown-menu category">(?P<block>.*?)</ul>' # debug = True return locals() def search(item, text): logger.debug(text) item.url = host + "/search/" + text item.contentType = 'tvshow' item.args = 'search' try: return movies(item) # Continua la ricerca in caso di errore except: import sys for line in sys.exc_info(): logger.error("%s" % line) return [] def newest(category): logger.debug() itemlist = [] item = Item() item.contentType = 'tvshow' item.args = 'update' try: if category == 'tvshow': item.url = host item.action = "movies" itemlist = movies(item) # Continua la ricerca in caso di errore except: import sys for line in sys.exc_info(): logger.error("{0}".format(line)) return [] return itemlist def findvideos(item): logger.debug('--->', item) return support.server(item, item.url)