diff --git a/channels/fastsubita.py b/channels/fastsubita.py index 1e10a0e5..d92ea1de 100644 --- a/channels/fastsubita.py +++ b/channels/fastsubita.py @@ -32,18 +32,14 @@ headers = [ PERPAGE = 15 +@support.menu def mainlist(item): - log() - itemlist = [] + tvshow = ['', + ('Novità', ['', 'peliculas']), + ('Archivio A-Z ', ['', 'list_az']) + ] - support.menu(itemlist, 'Novità bold', 'pelicuals_tv', host, 'tvshow') - support.menu(itemlist, 'Serie TV bold', 'lista_serie', host, 'tvshow') - ('Archivio A-Z ', [, 'list_az', ]), 'tvshow', args=['serie']) - - support.aplay(item, itemlist, list_servers, list_quality) - support.channel_config(item, itemlist) - - return itemlist + return locals() # ---------------------------------------------------------------------------------------------------------------- @@ -65,7 +61,7 @@ def newest(categoria): if categoria == "series": item.url = host # item.action = "serietv" - itemlist = pelicuals_tv(item) + itemlist = peliculas(item) if itemlist[-1].action == "serietv": itemlist.pop() @@ -80,7 +76,7 @@ def newest(categoria): return itemlist -def pelicuals_tv(item): +def peliculas(item): log() itemlist = [] diff --git a/channels/filmigratis.py b/channels/filmigratis.py index c89e50c2..53f3549e 100644 --- a/channels/filmigratis.py +++ b/channels/filmigratis.py @@ -22,22 +22,18 @@ checklinks_number = config.get_setting('checklinks_number', 'filmigratis') headers = [['Referer', host]] #----------------------------------------------------------------------------------------------------------------------- - +@support.menu def mainlist(item): + film = [ + ('Al Cinema ', ['', 'carousel']), + ('Film alta definizione', ['', 'peliculas']), + ('Categorie', ['', 'categorias_film']), + ] + tvshow = [ + ('Categorie', ['', 'categorias_serie']) + ] - # Main options - itemlist = [] - support.menu(itemlist, 'Al Cinema bold', 'carousel', host, contentType='movie') - support.menu(itemlist, 'Film alta definizione bold', 'peliculas', host, contentType='movie', args='film') - support.menu(itemlist, 'Categorie Film bold', 'categorias_film', host , contentType='movie', args='film') - support.menu(itemlist, 'Categorie Serie bold', 'categorias_serie', host, contentType='tvshow', args='serie') - - - - autoplay.init(item.channel, list_servers, list_quality) - autoplay.show_option(item.channel, itemlist) - - return itemlist + return locals() #----------------------------------------------------------------------------------------------------------------------- diff --git a/channels/filmpertutti.py b/channels/filmpertutti.py index bf090b28..0d466ca0 100644 --- a/channels/filmpertutti.py +++ b/channels/filmpertutti.py @@ -17,26 +17,16 @@ list_servers = ['verystream', 'openload', 'streamango', 'wstream', 'akvideo'] list_quality = ['HD', 'SD'] +@support.menu def mainlist(item): - logger.info() + film = ['/category/film/', + ('Film per Genere', ['', 'genre']) + ] + tvshow = ['/category/serie-tv/', + ('in ordine alfabetico', ['/category/serie-tv/', 'az']) + ] - itemlist =[] - - support.menu(itemlist, '[B]Film[/B]', 'peliculas', host + '/category/film/', 'movie') - support.menu(itemlist, '[B] > Film per Genere[/B]', 'genre', host, 'tvshow') - support.menu(itemlist, '[COLOR blue]Cerca Film...[/COLOR]', 'search', '') - support.menu(itemlist, '[B]Serie TV[/B]', 'peliculas', host + '/category/serie-tv/', 'tvshow') - support.menu(itemlist, '[B] > Serie TV in ordine alfabetico[/B]', 'az', host + '/category/serie-tv/', 'tvshow') - support.menu(itemlist, '[COLOR blue]Cerca Serie TV...[/COLOR]', 'search', '', 'tvshow') - - - autoplay.init(item.channel, list_servers, list_quality) - autoplay.show_option(item.channel, itemlist) - - for item in itemlist: - logger.info('MENU=' + str(item) ) - - return itemlist + return locals() def newest(categoria): diff --git a/channels/guardaserieclick.py b/channels/guardaserieclick.py index d928d6a0..20de6989 100644 --- a/channels/guardaserieclick.py +++ b/channels/guardaserieclick.py @@ -18,98 +18,25 @@ __channel__ = 'guardaserieclick' host = config.get_channel_url(__channel__) headers = [['Referer', host]] -##IDIOMAS = {'Italiano': 'IT'} -##list_language = IDIOMAS.values() -list_servers = ['speedvideo', 'openload'] -list_quality = ['default'] -# ---------------------------------------------------------------------------------------------------------------- @support.menu def mainlist(item): - log('mainlist', item) - - tvshow = ['/lista-serie-tv', - ] - - - - - - - -## support.menu(itemlist, 'Serie', 'serietv', "%s/lista-serie-tv" % host, 'tvshow', args=['news']) -## support.menu(itemlist, 'Ultimi Aggiornamenti submenu', 'serietv', "%s/lista-serie-tv" % host, 'tvshow', args= ['update']) -## support.menu(itemlist, 'Categorie', 'categorie', host, 'tvshow', args=['cat']) -## support.menu(itemlist, 'Serie inedite Sub-ITA submenu', 'serietv', "%s/lista-serie-tv" % host, 'tvshow', args=['inedite']) -## support.menu(itemlist, 'Da non perdere bold submenu', 'serietv', "%s/lista-serie-tv" % host, 'tvshow', args=['tv', 'da non perdere']) -## support.menu(itemlist, 'Classiche bold submenu', 'serietv', "%s/lista-serie-tv" % host, 'tvshow', args=['tv', 'classiche']) -## support.menu(itemlist, 'Disegni che si muovono sullo schermo per magia bold', 'tvserie', "%s/category/animazione/" % host, 'tvshow', args= ['anime']) + tvshow = ["/lista-serie-tv", + ('Ultimi Aggiornamenti', ["/lista-serie-tv", 'peliculas', 'update']), + ('Categorie', ['categorie', 'categorie']), + ('Serie inedite Sub-ITA', ["/lista-serie-tv", 'peliculas', 'inedite']), + ('Da non perdere', ["/lista-serie-tv", 'peliculas', ['tv', 'da non perdere']]), + ('Classiche', ["/lista-serie-tv", 'peliculas', ['tv', 'classiche']]), + ('Anime', ["/category/animazione/", 'tvserie', 'tvshow','anime']) + ] return locals() + @support.scrape def peliculas(item): - log('peliculas: ', item) - - action = 'episodios' - patronBlock = r'
(?P.*?)
' - patron = r'\s[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P\d{4})?\s.+?class="strongText">(?P.+?)<' - - debug = True - return locals() - -@support.scrape -def serietv(item): ## import web_pdb; web_pdb.set_trace() log('serietv ->\n', item) -##<<<<<<< HEAD -## -## action = 'episodios' -## listGroups = ['url', 'thumb', 'title'] -## patron = r'<a href="([^"]+)".*?> <img\s.*?src="([^"]+)" \/>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)<\/p>' -## if 'news' in item.args: -## patronBlock = r'<div class="container container-title-serie-new container-scheda" meta-slug="new">(.*?)</div></div><div' -## elif 'inedite' in item.args: -## patronBlock = r'<div class="container container-title-serie-ined container-scheda" meta-slug="ined">(.*?)</div></div><div' -## elif 'da non perdere' in item.args: -## patronBlock = r'<div class="container container-title-serie-danonperd container-scheda" meta-slug="danonperd">(.*?)</div></div><div' -## elif 'classiche' in item.args: -## patronBlock = r'<div class="container container-title-serie-classiche container-scheda" meta-slug="classiche">(.*?)</div></div><div' -## elif 'update' in item.args: -## listGroups = ['url', 'thumb', 'episode', 'lang', 'title'] -## patron = r'rel="nofollow" href="([^"]+)"[^>]+> <img.*?src="([^"]+)"[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(\d+.\d+) \((.+?)\).<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)<[^>]+>' -## patronBlock = r'meta-slug="lastep">(.*?)</div></div><div' -## # permette di vedere episodio + titolo + titolo2 in novità -## def itemHook(item): -## item.show = item.episode + item.title -## return item -## return locals() -## -##@support.scrape -##def tvserie(item): -## -## action = 'episodios' -## listGroups = ['url', 'thumb', 'title'] -## patron = r'<a\shref="([^"]+)".*?>\s<img\s.*?src="([^"]+)" />[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)</p></div>' -## patronBlock = r'<div\sclass="col-xs-\d+ col-sm-\d+-\d+">(.*?)<div\sclass="container-fluid whitebg" style="">' -## patronNext = r'<link\s.*?rel="next"\shref="([^"]+)"' -## -## return locals() -## -##@support.scrape -##def episodios(item): -## log('episodios ->\n') -## item.contentType = 'episode' -## -## action = 'findvideos' -## listGroups = ['episode', 'lang', 'title2', 'plot', 'title', 'url'] -## patron = r'class="number-episodes-on-img"> (\d+.\d+)(?:|[ ]\((.*?)\))<[^>]+>'\ -## '[^>]+>[^>]+>[^>]+>[^>]+>(.*?)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>'\ -## '(.*?)<[^>]+></div></div>.<span\s.+?meta-serie="(.*?)" meta-stag=(.*?)</span>' -## -## return locals() -## -##======= action = 'episodios' listGroups = ['url', 'thumb', 'title'] @@ -156,15 +83,13 @@ def episodios(item): return locals() -##>>>>>>> a72130e0324ae485ae5f39d3d8f1df46c365fa5b + def findvideos(item): log() return support.server(item, item.url) @support.scrape def categorie(item): - log - action = 'tvserie' listGroups = ['url', 'title'] patron = r'<li>\s<a\shref="([^"]+)"[^>]+>([^<]+)</a></li>' @@ -185,10 +110,10 @@ def newest(categoria): try: if categoria == "series": item.url = "%s/lista-serie-tv" % host - item.action = "serietv" - itemlist = serietv(item) + item.action = "peliculas" + itemlist = peliculas(item) - if itemlist[-1].action == "serietv": + if itemlist[-1].action == "peliculas": itemlist.pop() # Continua la ricerca in caso di errore diff --git a/channels/seriehd.py b/channels/seriehd.py index 34e44803..7c1db8db 100644 --- a/channels/seriehd.py +++ b/channels/seriehd.py @@ -28,7 +28,6 @@ list_quality = ['1080p', '720p', '480p', '360'] checklinks = support.config.get_setting('checklinks', __channel__) checklinks_number = support.config.get_setting('checklinks_number', __channel__) -headers = [['Referer', host]] @support.menu def mainlist(item): diff --git a/channels/serietvu.py b/channels/serietvu.py index 4ccf528e..4b1a7304 100644 --- a/channels/serietvu.py +++ b/channels/serietvu.py @@ -20,16 +20,14 @@ list_servers = ['speedvideo'] list_quality = ['default'] +@support.menu def mainlist(item): - log() - itemlist = [] - 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') + tvshow = ['/category/serie-tv', + ('Novità', ['/ultimi-episodi', 'latestep']), + ('Categorie', ['', 'categorie']) + ] - support.aplay(item, itemlist, list_servers, list_quality) - support.channel_config(item, itemlist) - return itemlist + return locals() # ---------------------------------------------------------------------------------------------------------------- @@ -47,7 +45,7 @@ def cleantitle(scrapedtitle): # ================================================================================================================ # ---------------------------------------------------------------------------------------------------------------- -def lista_serie(item): +def peliculas(item): log() itemlist = [] @@ -282,7 +280,7 @@ def search(item, texto): log(texto) item.url = host + "/?s=" + texto try: - return lista_serie(item) + return peliculas(item) # Continua la ricerca in caso di errore except: import sys @@ -298,6 +296,6 @@ def categorie(item): log() patron_block= r'<h2>Sfoglia</h2>\s*<ul>(.*?)</ul>\s*</section>' patron = r'<li><a href="([^"]+)">([^<]+)</a></li>' - return support.scrape(item, patron, ['url','title'], patron_block=patron_block, action='lista_serie', blacklist=["Home Page", "Calendario Aggiornamenti"]) + return support.scrape(item, patron, ['url','title'], patron_block=patron_block, action='peliculas', blacklist=["Home Page", "Calendario Aggiornamenti"]) # ================================================================================================================ diff --git a/core/videolibrarytools.py b/core/videolibrarytools.py index c846c7a3..fb3cceb4 100644 --- a/core/videolibrarytools.py +++ b/core/videolibrarytools.py @@ -227,25 +227,37 @@ def filter_list(episodelist, action=None, path=None): if action: tvshow_path = filetools.join(path, "tvshow.nfo") head_nfo, tvshow_item = read_nfo(tvshow_path) + channel = episodelist[0].channel + if not tvshow_item.channel_prefs: + tvshow_item.channel_prefs={channel:{}} + if channel not in tvshow_item.channel_prefs: + tvshow_item.channel_prefs[channel] = {} + channel_prefs = tvshow_item.channel_prefs[channel] + if action == 'get_seasons': - if tvshow_item: - if "favourite_language" in tvshow_item: - lang_sel = tvshow_item.favourite_language - if "favourite_quality" in tvshow_item: - quality_sel = tvshow_item.favourite_quality + if channel_prefs: + if channel_prefs['favourite_language']: + lang_sel = channel_prefs['favourite_language'] + if channel_prefs['favourite_quality']: + quality_sel = channel_prefs['favourite_quality'] # SELECT EISODE BY LANG AND QUALITY - quality_dict = {"BLURAY": ["br", "bluray"], + quality_dict = {"N/A": ["n/a"], + "BLURAY": ["br", "bluray"], "FULLHD": ["fullhd", "fullhd 1080", "fullhd 1080p", "full hd", "full hd 1080", "full hd 1080p", "hd1080", "hd1080p", "hd 1080", "hd 1080p", "1080", "1080p"], "HD": ["hd", "hd720", "hd720p", "hd 720", "hd 720p", "720", "720p", "hdtv"], "480P": ["sd", "480p", '480'], "360P": ["360p", "360"], - "240P": ["240p", "240"]} + "240P": ["240p", "240"], + config.get_localized_string(70241):["MAX"]} + quality_order = ["N/A", "240P", "360P","480P", "HD", "FULLHD", "BLURAY", config.get_localized_string(70241)] + ep_list = [] lang_list = [] - quality_list = [] + quality_list = [config.get_localized_string(70241)] # Make lang_list and Quality_list + for episode in episodelist: if episode.contentLanguage and episode.contentLanguage not in lang_list: lang_list.append(episode.contentLanguage) for name, var in quality_dict.items(): @@ -253,6 +265,7 @@ def filter_list(episodelist, action=None, path=None): quality_list.append('N/A') if episode.quality.lower() in var and name not in quality_list: quality_list.append(name) + quality_list = sorted(quality_list, key=lambda x:quality_order.index(x)) # if more than one language if len(lang_list) > 1: @@ -260,12 +273,12 @@ def filter_list(episodelist, action=None, path=None): it = [] for episode in episodelist: if episode.contentLanguage == lang_list[selection]: - if action: tvshow_item.favourite_language = lang_list[selection] + if action: lang_sel = channel_prefs['favourite_language'] = lang_list[selection] it.append(episode) episodelist = it # if more than one quality - if len(quality_list) > 1: + if len(quality_list) > 2: selection = favourite_quality_selection = quality_list.index(quality_sel) if quality_sel else platformtools.dialog_select(config.get_localized_string(70726),quality_list) stop = False while not stop: @@ -278,18 +291,18 @@ def filter_list(episodelist, action=None, path=None): if quality_list[selection] == 'N/A': for episode in episodelist: title = scrapertools.find_single_match(episode.title, '(\d+x\d+)') - if not any(title in word for word in ep_list) and not episode.quality.lower(): + if not any(title in word for word in ep_list): ep_list.append(episode.title) it = [] for episode in episodelist: if episode.title in ep_list: - if action: tvshow_item.favourite_quality = quality_list[favourite_quality_selection] + if action: channel_prefs['favourite_quality'] = quality_list[favourite_quality_selection] it.append(episode) episodelist = it - # logger.info('ITEM NFO= ' + str(tvshow_item)) if action: filetools.write(tvshow_path, head_nfo + tvshow_item.tojson()) + return episodelist def save_tvshow(item, episodelist):