Fix AniPlay
This commit is contained in:
+32
-34
@@ -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'):
|
||||||
|
|||||||
Reference in New Issue
Block a user