Fix per Kodi 18

This commit is contained in:
Alhaziel01
2022-07-13 12:25:25 +02:00
parent 50b8ac8c08
commit 16d3ad375f
4 changed files with 30 additions and 30 deletions
+15 -15
View File
@@ -17,11 +17,11 @@ deviceId = uuid.uuid4().hex
# domain = 'https://eu1-prod-direct.discoveryplus.com'
domain = 'https://' + session.get("https://prod-realmservice.mercury.dnitv.com/realm-config/www.discoveryplus.com%2Fit%2Fepg").json()["domain"]
token = session.get(f'{domain}/token?deviceId={deviceId}&realm=dplay&shortlived=true').json()['data']['attributes']['token']
token = session.get('{}/token?deviceId={}&realm=dplay&shortlived=true'.format(domain, deviceId)).json()['data']['attributes']['token']
session.headers = {'User-Agent': 'Mozilla/50.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0',
'Referer': host,
'Origin': host,
'Cookie': f'st={token}',
'Cookie': 'st={}'.format(token),
'content-type': 'application/json',
'x-disco-params': 'realm=dplay,siteLookupKey=dplus_it'}
@@ -54,7 +54,7 @@ def live(item):
logger.debug()
itemlist =[]
data = session.get(f'{domain}/cms/routes/epg?include=default').json()['included']
data = session.get(domain + '/cms/routes/epg?include=default').json()['included']
for key in data:
@@ -62,7 +62,7 @@ def live(item):
itemlist.append(item.clone(title = typo(key['attributes']['name'], 'bold'),
fulltitle = key['attributes']['name'],
plot = key['attributes'].get('description', ''),
url = f"{host}/canali/{key['attributes']['alternateId']}",
url = "{}/canali/{}".format(host, key['attributes']['alternateId']),
id = key['id'],
action = 'findvideos'))
return support.thumb(itemlist, live=True)
@@ -72,7 +72,7 @@ def programs(item):
logger.debug()
itemlist = []
data = session.get(f'{domain}/cms/routes/browse?include=default').json()['included']
data = session.get(domain + '/cms/routes/browse?include=default').json()['included']
images = {key['id'] : key['attributes']['src'] for key in data if key['type'] == 'image'}
channels = {}
@@ -95,7 +95,7 @@ def genres(item):
logger.debug()
itemlist = []
data = session.get(f'{domain}/cms/collections/{item.id}?include=default').json()['included']
data = session.get('{}/cms/collections/{}?include=default'. format(domain, item.id)).json()['included']
collection = {k['id']: k['relationships'].get('show', k['relationships'].get('collection'))['data']['id'] for k in data if k['type'] == 'collectionItem'}
included = {}
@@ -126,9 +126,9 @@ def peliculas(item):
itemlist =[]
if item.text:
data = session.get(f'{domain}/cms/routes/search/result?include=default&contentFilter[query]={item.text}').json()['included']
data = session.get('{}/cms/routes/search/result?include=default&contentFilter[query]={}').json()['included']
else:
data = session.get(f'{domain}/cms/collections/{item.id}?include=default').json()['included']
data = session.get('{}/cms/collections/{}?include=default'.format(domain, item.id)).json()['included']
images = {key['id'] : key['attributes']['src'] for key in data if key['type'] == 'image'}
@@ -163,12 +163,12 @@ def seasons(item):
logger.debug()
itemlist = []
data = session.get(f'{domain}/cms/routes/show/{item.programid}?include=default').json()['included']
data = session.get('{}/cms/routes/show/{}?include=default'.format(domain, item.programid)).json()['included']
for key in data:
if key['type'] == 'collection':
for option in key['attributes']['component']['filters'][0]['options']:
itemlist.append(item.clone(title=f"Stagione {option['value']}",
itemlist.append(item.clone(title="Stagione {}".format(option['value']),
season=int(option['value']),
seasonparams=option['parameter'],
showparams=key['attributes']['component']['mandatoryParams'],
@@ -184,12 +184,12 @@ def episodios(item):
logger.debug()
itemlist =[]
data = session.get(f'{domain}/cms/collections/{item.id}?include=default&{item.seasonparams}&{item.showparams}').json()['included']
data = session.get('{}/cms/collections/{}?include=default&{}&{}'.format(domain, item.id, item.seasonparams, item.showparams)).json()['included']
images = {key['id'] : key['attributes']['src'] for key in data if key['type'] == 'image'}
for key in data:
if key['type'] == 'video' and 'Free' in str(key.get('relationships',{}).get('contentPackages',{}).get('data',[])):
itemlist.append(item.clone(title = f"{item.season}x{key['attributes']['episodeNumber']:02d} - {key['attributes']['name']}",
itemlist.append(item.clone(title = "{}x{:02d} - {}".format(item.season, key['attributes']['episodeNumber'], key['attributes']['name']),
plot = key['attributes']['description'],
episode = key['attributes']['episodeNumber'],
contentType = 'episode',
@@ -210,14 +210,14 @@ def findvideos(item):
logger.debug()
content = 'video' if item.contentType == 'episode' else 'channel'
post = {f'{content}Id': item.id, 'deviceInfo': {'adBlocker': False,'drmSupported': True}}
post = {content + 'Id': item.id, 'deviceInfo': {'adBlocker': False,'drmSupported': True}}
data = session.post(f'{domain}/playback/v3/{content}PlaybackInfo', json=post).json().get('data',{}).get('attributes',{})
data = session.post('{}/playback/v3/{}PlaybackInfo'.format(domain, content), json=post).json().get('data',{}).get('attributes',{})
if data.get('protection', {}).get('drmEnabled',False):
item.url = data['streaming']['dash']['url']
item.drm = 'com.widevine.alpha'
item.license =f"{data['protection']['schemes']['widevine']['licenseUrl']}|PreAuthorization={data['protection']['drmToken']}|R{{SSM}}|"
item.license ="{}|PreAuthorization={}|R{{SSM}}|".format(data['protection']['schemes']['widevine']['licenseUrl'], data['protection']['drmToken'])
else:
item.url = data['streaming'][0]['url']
item.manifest = 'hls'