From 658666bd6bddd39d1ffff62488f7034f9316c4cb Mon Sep 17 00:00:00 2001 From: Alhaziel01 Date: Fri, 18 Jun 2021 12:19:42 +0200 Subject: [PATCH] Fix Render Items e ordinamento --- core/servertools.py | 13 +++++++------ core/support.py | 21 +-------------------- platformcode/platformtools.py | 13 ++----------- 3 files changed, 10 insertions(+), 37 deletions(-) diff --git a/core/servertools.py b/core/servertools.py index fb64c0fa..0c38edcf 100644 --- a/core/servertools.py +++ b/core/servertools.py @@ -736,15 +736,16 @@ def sort_servers(servers_list): if item.url in url_list_valid: continue + element['indice_language'] = 0 if item.contentLanguage == 'ITA' else 1 + element['videoitem'] = item sorted_list.append(element) - # We order according to priority - if priority == 0: sorted_list.sort(key=lambda orden: ((orden['indice_server'], orden['indice_quality']))) # Servers and qualities - elif priority == 1: sorted_list.sort(key=lambda orden: (orden['indice_server'])) # Servers only - elif priority == 3: sorted_list.sort(key=lambda orden: (orden['indice_quality'])) # Only qualities - + if priority == 0: sorted_list.sort(key=lambda orden: (orden['indice_language'], orden['indice_server'], orden['indice_quality'])) # Servers and qualities + elif priority == 1: sorted_list.sort(key=lambda orden: (orden['indice_language'], orden['indice_server'])) # Servers only + elif priority == 2: sorted_list.sort(key=lambda orden: (orden['indice_language'], orden['indice_quality'])) # Only qualities + else: sorted_list.sort(key=lambda orden: orden['indice_language']) # if quality priority is active if priority == 0 and config.get_setting('quality_priority'): @@ -760,7 +761,7 @@ def sort_servers(servers_list): element['videoitem'] = item sorted_list.append(element) - sorted_list.sort(key=lambda orden: (orden['indice_quality'], orden['indice_server'])) + sorted_list.sort(key=lambda orden: (orden['indice_language'], orden['indice_quality'], orden['indice_server'])) return [v['videoitem'] for v in sorted_list if v] diff --git a/core/support.py b/core/support.py index 89bcc905..077efd3d 100755 --- a/core/support.py +++ b/core/support.py @@ -266,7 +266,6 @@ def scrapeBlock(item, args, block, patron, headers, action, pagination, debug, t if not group or item.grouped: - # dbg() ep = unifyEp(scraped['episode']) if scraped['episode'] else '' se = scraped['season'] if scraped['season'].isdigit() else '' if ep and se: @@ -290,7 +289,7 @@ def scrapeBlock(item, args, block, patron, headers, action, pagination, debug, t if 'x' in ep: ep_list = ep.split('x') episode = ep_list[1].strip() - season = ep_list[2].strip() + season = ep_list[0].strip() if len(ep_list) > 2: second_episode = ep_list[2:] else: @@ -544,13 +543,6 @@ def scrape(func): if patronNext and inspect.stack()[1][3] not in ['newest'] and len(inspect.stack()) > 2 and inspect.stack()[2][3] not in ['get_channel_results']: nextPage(itemlist, item, data, patronNext, function) - # for it in itemlist: - # if it.contentEpisodeNumber and it.contentSeason: - # it.title = '[B]{:d}x{:02d} - {}[/B]'.format(it.contentSeason, it.contentEpisodeNumber, it.infoLabels['title'] if it.infoLabels['title'] else it.fulltitle) - # if it.contentLanguage: - # it.title += typo(it.contentLanguage, '_ [] color kod') - # if it.quality: - # it.title += typo(it.quality, '_ [] color kod') # next page for pagination if pagination and len(matches) > pag * pagination and not search: @@ -1183,10 +1175,6 @@ def server(item, data='', itemlist=[], headers='', AutoPlay=True, CheckLinks=Tru verifiedItemlist = [] def getItem(videoitem): - # if not videoitem.server: - # s = servertools.get_server_from_url(videoitem.url) - # videoitem.server = s[2] if s else 'directo' - # videoitem.title = s[0] if s else config.get_localized_string(30137) if not videoitem.video_urls: srv_param = servertools.get_server_parameters(videoitem.server.lower()) if not srv_param: # do not exists or it's empty @@ -1215,11 +1203,6 @@ def server(item, data='', itemlist=[], headers='', AutoPlay=True, CheckLinks=Tru quality = videoitem.quality if videoitem.quality else item.quality if item.quality else '' videoitem.contentLanguage = videoitem.contentLanguage if videoitem.contentLanguage else item.contentLanguage if item.contentLanguage else 'ITA' videoitem.title = item.title - # videoitem.title = (item.title if item.channel not in ['url'] else '')\ - # + (typo(videoitem.title, '_ color kod [] bold') if videoitem.title else "")\ - # + (typo(videoitem.quality, '_ color kod []') if videoitem.quality else "")\ - # + (typo(videoitem.contentLanguage, '_ color kod []') if videoitem.contentLanguage else "")\ - # + (typo(videoitem.extraInfo, '_ color kod []') if videoitem.extraInfo else "") videoitem.plot = typo(videoitem.title, 'bold') + (typo(quality, '_ [] bold') if quality else '') videoitem.channel = item.channel videoitem.fulltitle = item.fulltitle @@ -1231,8 +1214,6 @@ def server(item, data='', itemlist=[], headers='', AutoPlay=True, CheckLinks=Tru videoitem.referer = item.referer if item.referer else item.url videoitem.action = "play" videoitem.videolibrary_id = item.videolibrary_id - # videoitem.nfo = item.nfo - # videoitem.strm_path = item.strm_path return videoitem # non threaded for webpdb diff --git a/platformcode/platformtools.py b/platformcode/platformtools.py index 5a682859..4ac1b20f 100644 --- a/platformcode/platformtools.py +++ b/platformcode/platformtools.py @@ -352,7 +352,7 @@ def render_items(itemlist, parent_item): if item.category == "": item.category = parent_item.category if not item.title: - item.title = '' + item.title = item.contentTitle # If there is no action or it is findvideos / play, folder = False because no listing will be returned if item.action in ['play', '']: item.folder = False @@ -361,16 +361,6 @@ def render_items(itemlist, parent_item): if item.action == 'play' and thumb_type == 1 and not item.forcethumb: item.thumbnail = config.get_online_server_thumb(item.server) - # if cloudflare and cloudscraper is used, cookies are needed to display images taken from site - # before checking domain (time consuming), checking if tmdb failed (so, images scraped from website are used) - # if item.action in ['findvideos'] and not item.infoLabels['tmdb_id']: - # faster but ugly way of checking - # for d in httptools.FORCE_CLOUDSCRAPER_LIST: - # if d + '/' in item.url: - # item.thumbnail = httptools.get_url_headers(item.thumbnail) - # item.fanart = httptools.get_url_headers(item.fanart) - # break - icon_image = "DefaultFolder.png" if item.folder else "DefaultVideo.png" title = item.title @@ -426,6 +416,7 @@ def render_items(itemlist, parent_item): # r_list = [set_item(i, item, parent_item) for i, item in enumerate(itemlist)] r_list = [] + with futures.ThreadPoolExecutor() as executor: searchList = [executor.submit(set_item, i, item, parent_item) for i, item in enumerate(itemlist)] for res in futures.as_completed(searchList):