Fix AniPlay

This commit is contained in:
Alhaziel01
2022-12-14 10:44:52 +01:00
parent e13b8fc202
commit 7bf554d333
+32 -34
View File
@@ -1,5 +1,5 @@
from platformcode import config, logger, autorenumber from platformcode import config, logger, autorenumber
from core import httptools, scrapertools, support, tmdb from core import httptools, scrapertools, support, tmdb, jsontools
from inspect import stack from inspect import stack
import sys import sys
@@ -34,6 +34,7 @@ def submenu_az(item):
thumbnail=support.thumb('az'))) thumbnail=support.thumb('az')))
return itemlist return itemlist
def submenu_year(item): def submenu_year(item):
itemlist = [] itemlist = []
from datetime import date from datetime import date
@@ -46,6 +47,7 @@ def submenu_year(item):
thumbnail=support.thumb('year'))) thumbnail=support.thumb('year')))
return itemlist return itemlist
def submenu_top(item): def submenu_top(item):
itemlist = [] itemlist = []
links = {'Top del giorno':'daily-top', 'Top della settimana':'weekly-top', 'Top del mese':'monthly-top'} links = {'Top del giorno':'daily-top', 'Top della settimana':'weekly-top', 'Top del mese':'monthly-top'}
@@ -56,6 +58,7 @@ def submenu_top(item):
variable= link)) variable= link))
return itemlist return itemlist
def submenu_season(item): def submenu_season(item):
itemlist = [] itemlist = []
seasons = {'winter':'Inverno', 'spring':'Primavera', 'summer':'Estate', 'fall':'Autunno'} seasons = {'winter':'Inverno', 'spring':'Primavera', 'summer':'Estate', 'fall':'Autunno'}
@@ -65,12 +68,13 @@ def submenu_season(item):
s = season['season'].split('.')[-1] s = season['season'].split('.')[-1]
title = seasons[s] title = seasons[s]
itemlist.append(item.clone(title=title, itemlist.append(item.clone(title=title,
url = '{}/api/seasonal-view/{}-{}'.format(host, s, item.variable), url = '{}/api/seasonal-view/{}-{}'.format(host, s, item.variable),
thumbnail = support.thumb(s), thumbnail = support.thumb(s),
action = 'peliculas', action = 'peliculas',
variable='')) variable=''))
return itemlist return itemlist
def submenu_top_of(item): def submenu_top_of(item):
itemlist = [] itemlist = []
url= '{}/api/home/{}'.format(host, item.variable) url= '{}/api/home/{}'.format(host, item.variable)
@@ -83,15 +87,14 @@ def submenu_top_of(item):
long_title = support.typo(title, 'bold') + support.typo(lang, '_ [] color kod') long_title = support.typo(title, 'bold') + support.typo(lang, '_ [] color kod')
itemlist.append(item.clone(title=long_title, itemlist.append(item.clone(title=long_title,
id=anime['animeId'], url = '{}/anime/{}'.format(host, anime['animeId']),
url = '{}/api/anime/{}'.format(host, anime['animeId']), video_url = '{}/api/anime/{}'.format(host, anime['animeId']),
thumbnail = get_thumbnail(anime, 'animeHorizontalImages'), thumbnail = get_thumbnail(anime, 'animeHorizontalImages'),
action = 'episodios', action = 'episodios',
variable=anime['animeId'])) variable=anime['animeId']))
return itemlist return itemlist
def search(item, texto): def search(item, texto):
support.info(texto) support.info(texto)
item.url = host + '/api/anime/advanced-search' item.url = host + '/api/anime/advanced-search'
@@ -136,15 +139,14 @@ def latest_added(item):
itemlist.append(item.clone(title=long_title, itemlist.append(item.clone(title=long_title,
fulltitle=title, fulltitle=title,
animeId = episode['animeId'], url='{}/play/{}'.format(host, episode['id']),
id=episode['id'],
contentType = 'episode', contentType = 'episode',
contentTitle = title, contentTitle = title,
contentSerieName = animeTitle, contentSerieName = animeTitle,
contentLanguage = lang, contentLanguage = lang,
quality = quality, quality = quality,
contentEpisodeNumber = int(float(episode['episodeNumber'])), contentEpisodeNumber = int(float(episode['episodeNumber'])),
animeUrl = '{}/api/anime/{}'.format(host, episode['animeId']), video_url = '{}/api/episode/{}'.format(host, episode['id']),
thumbnail = image, thumbnail = image,
fanart = image, fanart = image,
action = 'findvideos')) action = 'findvideos'))
@@ -163,6 +165,7 @@ def peliculas(item):
js = httptools.downloadpage('{}?page={}&size={}{}&sort={},{}&sort=id'.format(item.url, page, perpage, item.variable, sort, order)).json js = httptools.downloadpage('{}?page={}&size={}{}&sort={},{}&sort=id'.format(item.url, page, perpage, item.variable, sort, order)).json
for it in js: for it in js:
logger.debug(jsontools.dump(js))
title, lang = get_lang(it['title']) title, lang = get_lang(it['title'])
long_title = support.typo(title, 'bold') + support.typo(lang, '_ [] color kod') long_title = support.typo(title, 'bold') + support.typo(lang, '_ [] color kod')
@@ -174,10 +177,10 @@ def peliculas(item):
contentType = 'movie' if it['type'] == 'Movie' else 'tvshow', contentType = 'movie' if it['type'] == 'Movie' else 'tvshow',
contentTitle = title, contentTitle = title,
contentSerieName = title if it['type'] == 'Serie' else '', contentSerieName = title if it['type'] == 'Serie' else '',
action ='findvideos' if it['type'] == 'Movie' else 'episodios',# '' if not active else 'findvideos' if it['type'] == 'Movie' else 'episodios', action ='findvideos' if it['type'] == 'Movie' else 'episodios',
plot = it['storyline'], plot = it['storyline'],
# year = it['startDate'].split('-')[0], url = '{}/anime/{}'.format(host, it['id']),
url = '{}/api/anime/{}'.format(host, it['id']), video_url = '{}/api/anime/{}'.format(host, it.get('animeId', it.get('id'))),
thumbnail = get_thumbnail(it), thumbnail = get_thumbnail(it),
fanart = get_thumbnail(it, 'horizontalImages'))) fanart = get_thumbnail(it, 'horizontalImages')))
@@ -194,7 +197,7 @@ def episodios(item):
itemlist = [] itemlist = []
# url = '{}/api/anime/{}'.format(host, item.id) # url = '{}/api/anime/{}'.format(host, item.id)
json = httptools.downloadpage(item.url, CF=False ).json json = httptools.downloadpage(item.video_url, CF=False ).json
if type(json) == list: if type(json) == list:
item.show_renumber = False item.show_renumber = False
@@ -208,7 +211,7 @@ def episodios(item):
title = it['name'] title = it['name']
itemlist.append(item.clone(title = title, itemlist.append(item.clone(title = title,
id= '{}/season/{}'.format(it['animeId'], it['id']), video_url = '{}/api/anime/{}/season/{}'.format(host, it['animeId'], it['id']),
contentType = 'season', contentType = 'season',
action = 'list_episodes', action = 'list_episodes',
plot = json['storyline'], plot = json['storyline'],
@@ -245,8 +248,7 @@ def list_episodes(item, json=None):
itemlist = [] itemlist = []
if not json: if not json:
url = '{}/api/anime/{}'.format(host, item.id) json = httptools.downloadpage(item.video_url, CF=False ).json
json = httptools.downloadpage(url, CF=False ).json
episodes = json['episodes'] if 'episodes' in json else json episodes = json['episodes'] if 'episodes' in json else json
episodes.sort(key=lambda ep: int(ep['episodeNumber'].split('.')[0])) episodes.sort(key=lambda ep: int(ep['episodeNumber'].split('.')[0]))
@@ -263,8 +265,8 @@ def list_episodes(item, json=None):
image = get_thumbnail(it, 'episodeImages') image = get_thumbnail(it, 'episodeImages')
itemlist.append(item.clone(title = title, itemlist.append(item.clone(title = title,
id= it['id'], url= '{}/play/{}'.format(host, it['id']),
url= 'api/episode/{}'.format(it['id']), video_url= '{}/api/episode/{}'.format(host, it['id']),
contentType = 'episode', contentType = 'episode',
contentEpisodeNumber = int(it['episodeNumber'].split('.')[0]), contentEpisodeNumber = int(it['episodeNumber'].split('.')[0]),
contentSeason = item.contentSeason if item.contentSeason else '', contentSeason = item.contentSeason if item.contentSeason else '',
@@ -283,21 +285,17 @@ def list_episodes(item, json=None):
def findvideos(item): def findvideos(item):
logger.debug() logger.debug()
url = '{}/api/{}/{}'.format(host, 'episode' if item.contentType == 'episode' else 'anime', item.id) # url = '{}/api/{}/{}'.format(host, 'episode' if item.contentType == 'episode' else 'anime', item.id)
json = httptools.downloadpage(url, CF=False ).json res = httptools.downloadpage(item.video_url, CF=False ).json
if json.get('episodes', []): if res.get('episodes', []):
json = httptools.downloadpage('{}/api/episode/{}'.format(host, json['episodes'][0]['id'])).json res = httptools.downloadpage('{}/api/episode/{}'.format(host, res['episodes'][0]['id'])).json
# logger.debug(json)
videourl = json['videoUrl'] item.manifest = 'hls'
item.url = res['videoUrl']
itemlist = [item.clone(title=config.get_localized_string(30137), return support.server(item, itemlist=[item])
url=videourl,
server='directo')]
return support.server(item, itemlist=itemlist)
def get_thumbnail(data, prop = 'verticalImages', key = 'full'): def get_thumbnail(data, prop = 'verticalImages', key = 'full'):