From b780f4dee72d9ad952ff211535ade5418886553e Mon Sep 17 00:00:00 2001 From: Alhaziel01 Date: Sun, 14 Feb 2021 16:03:38 +0100 Subject: [PATCH] =?UTF-8?q?=20-=20Fix=20Discovery=20=20-=20Fix=20aggiunta?= =?UTF-8?q?=20alla=20videoteca=20se=20manca=20il=20parametro=20Qualit?= =?UTF-8?q?=C3=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- channels/discoveryplus.py | 66 ++++++++++++++++++++++++--------------- core/videolibrarytools.py | 2 +- 2 files changed, 41 insertions(+), 27 deletions(-) diff --git a/channels/discoveryplus.py b/channels/discoveryplus.py index 75a3dbdd..48fef52f 100644 --- a/channels/discoveryplus.py +++ b/channels/discoveryplus.py @@ -32,7 +32,7 @@ def Dict(item): @support.menu def mainlist(item): top = [('Dirette {bold}', ['', 'live']), - ('Programmi {bullet bold tv}', ['/programmi', 'peliculas']), + ('Programmi {bullet bold tv}', ['', 'peliculas', 'programmi']), ('Generi {bullet bold tv}', ['', 'genres'])] search = '' @@ -77,26 +77,26 @@ def live(item): def genres(item): item.action = 'peliculas' itemlist = [ - item.clone(title='Attualità e inchiesta', url='/genere/attualita-e-inchiesta'), - item.clone(title='Beauty and style', url='/genere/beauty-and-style'), - item.clone(title='Serie TV', url='/genere/serie-tv'), - item.clone(title='Casa', url='/genere/casa'), - item.clone(title='Comedy', url='/genere/comedy'), - item.clone(title='Crime', url='/genere/crime'), - item.clone(title='Documentari', url='/genere/documentari'), - item.clone(title='Discovery + Originals', url='/genere/discoveryplus-original'), - item.clone(title='Food', url='/genere/food'), - item.clone(title='Medical', url='/genere/medical'), - item.clone(title='Motori', url='/genere/motori'), - item.clone(title='Natura', url='/genere/natura'), - item.clone(title='Paranormal', url='/genere/paranormal'), - item.clone(title='People', url='/genere/people'), - item.clone(title='Real Adventure', url='/genere/real-adventure'), - item.clone(title='Real Life', url='/genere/real-life'), - item.clone(title='Scienza e Spazio', url='/genere/scienza-e-spazio'), - item.clone(title='Sex and love', url='/genere/sex-and-love'), - item.clone(title='Sport', url='/genere/sport'), - item.clone(title='Talent Show', url='/genere/talent-show'), + item.clone(title='Attualità e inchiesta', args='genere/attualita-e-inchiesta'), + item.clone(title='Beauty and style', args='genere/beauty-and-style'), + item.clone(title='Serie TV', args='genere/serie-tv'), + item.clone(title='Casa', args='genere/casa'), + item.clone(title='Comedy', args='genere/comedy'), + item.clone(title='Crime', args='genere/crime'), + item.clone(title='Documentari', args='genere/documentari'), + item.clone(title='Discovery + Originals', args='genere/discoveryplus-original'), + item.clone(title='Food', args='genere/food'), + item.clone(title='Medical', args='genere/medical'), + item.clone(title='Motori', args='genere/motori'), + item.clone(title='Natura', args='genere/natura'), + item.clone(title='Paranormal', args='genere/paranormal'), + item.clone(title='People', args='genere/people'), + item.clone(title='Real Adventure', args='genere/real-adventure'), + item.clone(title='Real Life', args='genere/real-life'), + item.clone(title='Scienza e Spazio', args='genere/scienza-e-spazio'), + item.clone(title='Sex and love', args='genere/sex-and-love'), + item.clone(title='Sport', args='genere/sport'), + item.clone(title='Talent Show', args='genere/talent-show'), ] return itemlist @@ -105,9 +105,9 @@ def peliculas(item): logger.debug() itemlist =[] if 'search' in item.args: - pdict = session.get(api + '/content/shows?include=genres,images,primaryChannel.images,contentPackages&page[size]=12&query=' + item.text, headers=headers).json()['data'] + pdict = session.get('{}/content/shows?include=genres,images,primaryChannel.images,contentPackages&page[size]=12&query={}'.format(api, item.text), headers=headers).json()['data'] else: - pdict = session.get(api + '/cms/routes{}?decorators=viewingHistory&include=default'.format(item.url), headers=headers).json()['included'] + pdict = session.get('{}/cms/routes/{}?decorators=viewingHistory&include=default'.format(api, item.args), headers=headers).json()['included'] images = list(filter(lambda x: x['type'] == 'image', pdict)) for key in pdict: @@ -146,9 +146,23 @@ def episodios(item): mandatory = key['attributes']['component']['mandatoryParams'] for option in key['attributes']['component']['filters'][0]['options']: url = '{}/cms/collections/{}?decorators=viewingHistory&include=default&{}&{}'.format(api, key['id'], mandatory, option['parameter']) - season = session.get(url, headers=headers).json() - if season.get('included', {}): - for episode in season['included']: + seasons = [] + season = {} + try: + season = session.get(url, headers=headers).json() + seasons.append(season['included']) + pages = season['data'].get('meta',{}).get('itemsTotalPages', 0) + if pages: + for page in range(2,pages): + url = '{}/cms/collections/{}?decorators=viewingHistory&include=default&{}&{}&page[items.number]={}'.format(api, key['id'], mandatory, option['parameter'], page) + logger.debug(url) + season = session.get(url, headers=headers).json()['included'] + seasons.append(season) + except: + pass + + for season in seasons: + for episode in season: if episode['type'] == 'video' and 'Free' in episode['attributes']['packages']: title = '{}x{:02d} - {}'.format(option['id'], episode['attributes']['episodeNumber'], episode['attributes']['name']) plot = episode['attributes']['description'] diff --git a/core/videolibrarytools.py b/core/videolibrarytools.py index bababbf4..53af798f 100644 --- a/core/videolibrarytools.py +++ b/core/videolibrarytools.py @@ -352,7 +352,7 @@ def filter_list(episodelist, action=None, path=None): for name, var in quality_dict.items(): if not episode.quality and 'N/A' not in quality_list: quality_list.append('N/A') - if episode.quality.lower() in var and name not in quality_list: + elif episode.quality and 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))