From bd383eb0f91afdfbd075e3cb5cf51d2cd81b7401 Mon Sep 17 00:00:00 2001 From: marco Date: Fri, 28 Aug 2020 17:26:50 +0200 Subject: [PATCH] fix autoplay --- core/support.py | 10 ++++------ specials/autoplay.py | 38 +++++++++++++++----------------------- 2 files changed, 19 insertions(+), 29 deletions(-) diff --git a/core/support.py b/core/support.py index 3636e596..6894b686 100755 --- a/core/support.py +++ b/core/support.py @@ -1165,6 +1165,7 @@ def pagination(itemlist, item, page, perpage, function_level=1): thumbnail=thumb())) return itemlist + def server(item, data='', itemlist=[], headers='', AutoPlay=True, CheckLinks=True, Download=True, patronTag=None, Videolibrary=True): log() if not data and not itemlist: @@ -1221,15 +1222,12 @@ def server(item, data='', itemlist=[], headers='', AutoPlay=True, CheckLinks=Tru addQualityTag(item, verifiedItemlist, data, patronTag) # Check Links - if not item.global_search and (config.get_setting('checklinks') or config.get_setting('checklinks', item.channel)): - if config.get_setting('checklinks', item.channel): - checklinks_number = config.get_setting('checklinks_number', item.channel) - elif config.get_setting('checklinks'): - checklinks_number = config.get_setting('checklinks_number') + if not item.global_search and config.get_setting('checklinks') and CheckLinks and not config.get_setting('autoplay'): + checklinks_number = config.get_setting('checklinks_number') verifiedItemlist = servertools.check_list_links(verifiedItemlist, checklinks_number) try: - if AutoPlay and not 'downloads' in inspect.stack()[3][1] or not 'downloads' in inspect.stack()[3][1] or not inspect.stack()[4][1]: + if AutoPlay and item.contentChannel not in ['downloads', 'videolibrary']: autoplay.start(verifiedItemlist, item) except: import traceback diff --git a/specials/autoplay.py b/specials/autoplay.py index bb004f0c..ca5b8448 100644 --- a/specials/autoplay.py +++ b/specials/autoplay.py @@ -39,22 +39,25 @@ def start(itemlist, item): if not config.is_xbmc(): return itemlist - channel_id = item.channel - if item.channel == 'videolibrary': - channel_id = item.contentChannel - - if config.get_setting('autoplay'): url_list_valid = [] autoplay_list = [] autoplay_b = [] favorite_quality = [] + blacklisted_servers = [] + favorite_servers = [] + + from core import servertools + servers_list = list(servertools.get_servers_list().items()) + for server, server_parameters in servers_list: + if config.get_setting('black_list', server=server): + blacklisted_servers.append(server.lower()) + if config.get_setting('favorites_servers_list', server=server): + favorite_servers.append(server.lower()) - blacklisted_servers = config.get_setting('black_list', server='servers') if not blacklisted_servers: config.set_setting('black_list', [], server='servers') blacklisted_servers = [] - favorite_servers = config.get_setting('favorites_servers_list', server='servers') if not favorite_servers: config.set_setting('favorites_servers_list', [], server='servers') favorite_servers = [] @@ -200,6 +203,9 @@ def start(itemlist, item): for autoplay_elem in autoplay_list: play_item = Item + channel_id = autoplay_elem['videoitem'].channel + if autoplay_elem['videoitem'].channel == 'videolibrary': + channel_id = autoplay_elem['videoitem'].contentChannel # If it is not a favorite element if you add the text plan b if autoplay_elem['videoitem'].type_b: @@ -272,23 +278,9 @@ def start(itemlist, item): def play_multi_channel(item, itemlist): - logger.info() - global PLAYED - video_dict = dict() + logger.log() + start(itemlist, item) - for video_item in itemlist: - if config.get_setting('autoplay'): - if video_item.contentChannel not in video_dict.keys(): - video_dict[video_item.contentChannel] = [video_item] - else: - video_dict[video_item.contentChannel].append(video_item) - - for channel, videos in video_dict.items(): - item.contentChannel = channel - if not PLAYED: - start(videos, item) - else: - break def servername(server): path = filetools.join(config.get_runtime_path(), 'servers', server.lower() + '.json')