Fix MediasetPlay

This commit is contained in:
Alhaziel01
2021-03-10 12:56:10 +01:00
parent adf5425a09
commit 55c5f53ff1
+26 -27
View File
@@ -2,6 +2,7 @@
# ------------------------------------------------------------ # ------------------------------------------------------------
# Canale per Mediaset Play # Canale per Mediaset Play
# ------------------------------------------------------------ # ------------------------------------------------------------
from platformcode import logger
import uuid import uuid
import requests, sys import requests, sys
@@ -96,7 +97,7 @@ def mainlist(item):
def search(item, text): def search(item, text):
itemlist = [] itemlist = []
support.info(text) support.debug(text)
item.search = text item.search = text
try: try:
@@ -110,7 +111,7 @@ def search(item, text):
def menu(item): def menu(item):
support.info() support.debug()
itemlist = [] itemlist = []
# itemlist = [item.clone(title=support.typo(item.args[0], 'bullet bold'), url='', action='peliculas')] # itemlist = [item.clone(title=support.typo(item.args[0], 'bullet bold'), url='', action='peliculas')]
if item.url: if item.url:
@@ -140,7 +141,7 @@ def liveDict():
return livedict return livedict
def live(item): def live(item):
support.info() support.debug()
itemlist = [] itemlist = []
for key, value in liveDict().items(): for key, value in liveDict().items():
itemlist.append(item.clone(title=support.typo(key, 'bold'), itemlist.append(item.clone(title=support.typo(key, 'bold'),
@@ -156,7 +157,7 @@ def live(item):
def peliculas(item): def peliculas(item):
support.info() support.debug()
itemlist = [] itemlist = []
titlelist = [] titlelist = []
contentType = '' contentType = ''
@@ -218,12 +219,12 @@ def peliculas(item):
def epmenu(item): def epmenu(item):
support.info() support.debug()
itemlist = [] itemlist = []
if item.seriesid: if item.seriesid:
seasons = current_session.get('https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-tv-seasons?bySeriesId=' + item.seriesid).json()['entries'] seasons = current_session.get('https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-tv-seasons?bySeriesId=' + item.seriesid).json()['entries']
for season in seasons: for season in seasons:
if 'mediasettvseason$brandId' in season and 'mediasettvseason$displaySeason' in seasons: if 'mediasettvseason$brandId' in season and 'mediasettvseason$displaySeason' in season:
itemlist.append( itemlist.append(
item.clone(seriesid = '', item.clone(seriesid = '',
title=support.typo(season['mediasettvseason$displaySeason'], 'bold'), title=support.typo(season['mediasettvseason$displaySeason'], 'bold'),
@@ -237,17 +238,19 @@ def epmenu(item):
itemlist.append( itemlist.append(
item.clone(action='episodios', item.clone(action='episodios',
title=support.typo(entry['description'], 'bold'), title=support.typo(entry['description'], 'bold'),
url=entry['mediasetprogram$subBrandId'])) url=entry['mediasetprogram$subBrandId'],
order=entry.get('mediasetprogram$order',0)))
if len(itemlist) == 1: return episodios(itemlist[0]) if len(itemlist) == 1: return episodios(itemlist[0])
itemlist = sorted(itemlist, key=lambda it: it.order)
return itemlist return itemlist
def episodios(item): def episodios(item):
support.info() support.debug()
itemlist = [] itemlist = []
episode = ''
json = current_session.get('https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-all-programs?byCustomValue={subBrandId}{' + item.url + '}').json()['entries'] json = current_session.get('https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-all-programs?byCustomValue={subBrandId}{' + item.url + '}').json()['entries']
for it in json: for it in json:
urls = [] urls = []
if 'media' in it: if 'media' in it:
@@ -255,10 +258,6 @@ def episodios(item):
urls.append(key['publicUrl']) urls.append(key['publicUrl'])
if urls: if urls:
title = it['title'] title = it['title']
# if it['tvSeasonNumber'] and it['tvSeasonEpisodeNumber'] and 'puntata del' not in title.lower():
# item.infoLabels['season'] = it['tvSeasonNumber']
# item.infoLabels['episode'] = it['tvSeasonEpisodeNumber']
# episode = '%dx%02d - ' % (it['tvSeasonNumber'], it['tvSeasonEpisodeNumber'])
itemlist.append( itemlist.append(
item.clone(action='findvideos', item.clone(action='findvideos',
title=support.typo(title, 'bold'), title=support.typo(title, 'bold'),
@@ -269,28 +268,30 @@ def episodios(item):
urls=urls, urls=urls,
url=it['mediasetprogram$pageUrl'], url=it['mediasetprogram$pageUrl'],
year=it.get('year',''), year=it.get('year',''),
ep= it.get('tvSeasonEpisodeNumber', 0) if it.get('tvSeasonEpisodeNumber', 0) else 0,
forcethumb=True, forcethumb=True,
no_return=True)) no_return=True))
# support.dbg()
if 'episodi' in item.title.lower() or 'puntate intere' in item.title.lower(): if 'episodi' in item.title.lower():
itemlist.reverse() itemlist.reverse()
# if episode: elif 'puntate intere' in item.title.lower():
# itemlist = sorted(itemlist, key=lambda it: it.title) itemlist.sort(key=lambda it: it.ep)
# support.videolibrary(itemlist, item)
if len(itemlist) == 1: return findvideos(itemlist[0])
return itemlist return itemlist
def findvideos(item): def findvideos(item):
support.info() support.debug()
itemlist = [support.Item(server='directo', title='Mediaset Play', url=item.urls, action='play')] itemlist = [support.Item(server='directo', title='Mediaset Play', url=item.urls, action='play')]
return support.server(item, itemlist=itemlist, Download=False) return support.server(item, itemlist=itemlist, Download=False)
def play(item): def play(item):
support.info() support.debug()
if item.livefilter: if item.livefilter:
d = liveDict()[item.livefilter] d = liveDict()[item.livefilter]
# support.dbg()
item = item.clone(title=support.typo(item.livefilter, 'bold'), fulltitle=item.livefilter, urls=d['urls'], plot=d['plot'], action='play', forcethumb=True, no_return=True) item = item.clone(title=support.typo(item.livefilter, 'bold'), fulltitle=item.livefilter, urls=d['urls'], plot=d['plot'], action='play', forcethumb=True, no_return=True)
support.thumb(item, live=True) support.thumb(item, live=True)
if not item.urls: urls = item.url if not item.urls: urls = item.url
@@ -307,21 +308,20 @@ def play(item):
data = support.match(sec_data, patron=r'<video src="([^"]+)').match data = support.match(sec_data, patron=r'<video src="([^"]+)').match
break break
else: else:
# support.dbg()
data = url data = url
return support.servertools.find_video_items(item, data=data) return support.servertools.find_video_items(item, data=data)
def subBrand(json): def subBrand(json):
support.info() support.debug()
subBrandId = current_session.get('https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-all-brands?byCustomValue={brandId}{' + json + '}').json()['entries'][-1]['mediasetprogram$subBrandId'] subBrandId = current_session.get('https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-all-brands?byCustomValue={brandId}{' + json + '}').json()['entries'][-1]['mediasetprogram$subBrandId']
json = current_session.get('https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-all-programs?byCustomValue={subBrandId}{' + subBrandId + '}').json()['entries'] json = current_session.get('https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-all-programs?byCustomValue={subBrandId}{' + subBrandId + '}').json()['entries']
return json return json
def get_from_id(item): def get_from_id(item):
support.info() support.debug()
json = current_session.get(entry.format(id=item.url)).json() json = current_session.get(entry.format(id=item.url)).json()
if 'components' in json: if 'components' in json:
id = quote(",".join(json["components"])) id = quote(",".join(json["components"]))
@@ -333,7 +333,7 @@ def get_from_id(item):
def get_programs(item, ret=[], args={}): def get_programs(item, ret=[], args={}):
hasMore = False hasMore = False
support.info('DICT=',item.url) support.debug('DICT=',item.url)
url = '' url = ''
if 'search' in item.args: if 'search' in item.args:
@@ -365,7 +365,6 @@ def get_programs(item, ret=[], args={}):
if url: if url:
support.logger.info(url) support.logger.info(url)
json = current_session.get(url).json() json = current_session.get(url).json()
# support.logger.debug(json)
if 'response' in json: if 'response' in json:
json = json['response'] json = json['response']
if 'hasMore' in json: if 'hasMore' in json: