diff --git a/channels/aniplay.py b/channels/aniplay.py index 62291bf2..7d362a04 100644 --- a/channels/aniplay.py +++ b/channels/aniplay.py @@ -10,7 +10,7 @@ else: host = config.get_channel_url() sort = ['views', 'title', 'episodeNumber', 'startDate', 'endDate', 'createdDate'][config.get_setting('sort', 'aniplay')] -order = 'desc' if config.get_setting('order', 'aniplay') else 'asc' +order = 'asc' if config.get_setting('order', 'aniplay') else 'desc' perpage = [10, 20, 30 ,40, 50, 60, 70, 80, 90][config.get_setting('perpage', 'aniplay')] @@ -165,12 +165,8 @@ def peliculas(item): for it in js: title, lang = get_lang(it['title']) - active = False if it['status'] == 'Annunciato' or not it['episodeNumber'] else True - if active: - long_title = support.typo(title, 'bold') + support.typo(lang, '_ [] color kod') - else: - long_title = support.typo(title, 'italic') + support.typo('Annunciato', '_ [] color kod italic') + long_title = support.typo(title, 'bold') + support.typo(lang, '_ [] color kod') itemlist.append(item.clone(title = long_title, fulltitle = title, @@ -179,7 +175,7 @@ def peliculas(item): contentType = 'movie' if it['type'] == 'Movie' else 'tvshow', contentTitle = title, contentSerieName = title if it['type'] == 'Serie' else '', - action = '' if not active else 'findvideos' if it['type'] == 'Movie' else 'episodios', + action ='findvideos' if it['type'] == 'Movie' else 'episodios',# '' if not active else 'findvideos' if it['type'] == 'Movie' else 'episodios', plot = it['storyline'], year = it['startDate'].split('-')[0], id= it['id'], @@ -205,59 +201,74 @@ def episodios(item): seasons = json['seasons'] seasons.sort(key=lambda s: s['episodeStart']) - for i, it in enumerate(seasons): + for it in seasons: title = it['name'] itemlist.append(item.clone(title = title, id= '{}/season/{}'.format(it['animeId'], it['id']), contentType = 'season', - contentSeason = i + 1, - action = 'episodios', + action = 'list_episodes', plot = json['storyline'], - year = it['yearStart'])) + year = it['yearStart'], + show_renumber = True)) + # If the call come from the videolibrary or autorenumber, shows the episodes if stack()[1][3] in ['add_tvshow', 'get_episodes', 'update', 'find_episodes']: itlist = [] with futures.ThreadPoolExecutor() as executor: - eplist = [executor.submit(episodios, item) for item in itemlist] + eplist = [] + for ep in itemlist: + ep.show_renumber = False + eplist.append(executor.submit(list_episodes, ep)) for res in futures.as_completed(eplist): if res.result(): itlist.extend(res.result()) itemlist = itlist - elif ('episodes' in json and len(json['episodes']) > 0) or len(json) > 0: - episodes = json['episodes'] if 'episodes' in json else json - - episodes.sort(key=lambda ep: int(ep['episodeNumber'])) - - for it in episodes: - quality = 'Full HD' if it['fullHd'] else 'HD' - - if item.contentSeason: - episode = '{}x{:02d}'.format(item.contentSeason, int(it['episodeNumber'])) - else: - episode = '{:02d}'.format(int(it['episodeNumber'])) - - title = support.typo('{}. {}'.format(episode, it['title']), 'bold') - image = get_thumbnail(it, 'episodeImages') - - itemlist.append(item.clone(title = title, - id= it['id'], - url= 'api/episode/{}'.format(it['id']), - contentType = 'episode', - contentEpisodeNumber = int(it['episodeNumber']), - contentSeason = item.contentSeason if item.contentSeason else '', - action = 'findvideos', - quality = quality, - thumbnail = image, - fanart= image, - year = it['airingDate'].split('-')[0])) - - if not item.contentSeason and stack()[1][3] not in ['find_episodes']: + # add renumber option + if stack()[1][3] not in ['find_episodes'] and itemlist and itemlist[0].contentType == 'episode': autorenumber.start(itemlist, item) - if stack()[1][3] not in ['add_tvshow', 'get_episodes', 'update', 'find_episodes']: - support.videolibrary(itemlist, item) + # add add to videolibrary menu + if stack()[1][3] not in ['add_tvshow', 'get_episodes', 'update', 'find_episodes']: + support.videolibrary(itemlist, item) + return itemlist + +def list_episodes(item): + itemlist = [] + + url = '{}/api/anime/{}'.format(host, item.id) + json = httptools.downloadpage(url, CF=False ).json + + episodes = json['episodes'] if 'episodes' in json else json + episodes.sort(key=lambda ep: int(ep['episodeNumber'].split('.')[0])) + + for it in episodes: + quality = 'Full HD' if it['fullHd'] else 'HD' + + if item.contentSeason: + episode = '{}x{:02d}'.format(item.contentSeason, int(it['episodeNumber'].split('.')[0])) + else: + episode = '{:02d}'.format(int(it['episodeNumber'].split('.')[0])) + + title = support.typo('{}. {}'.format(episode, it['title']), 'bold') + image = get_thumbnail(it, 'episodeImages') + + itemlist.append(item.clone(title = title, + id= it['id'], + url= 'api/episode/{}'.format(it['id']), + contentType = 'episode', + contentEpisodeNumber = int(it['episodeNumber'].split('.')[0]), + contentSeason = item.contentSeason if item.contentSeason else '', + action = 'findvideos', + quality = quality, + thumbnail = image, + fanart= image)) + + # Renumber episodes only if shown in the menu + if item.show_renumber: + autorenumber.start(itemlist, item) + return itemlist