def PLAY(payload, params): anime_url, episode = payload.rsplit("/", 1) sources = _BROWSER.get_episode_sources(anime_url, episode) serverChoice = filter(lambda x: control.getSetting(x[0]) == 'true', SERVER_CHOICES.iteritems()) serverChoice = map(lambda x: x[1], serverChoice) sources = filter(lambda x: x[0] in serverChoice, sources) autoplay = True if 'true' in control.getSetting('autoplay') else False s = SourcesList(sources, autoplay, sortResultsByRes, { 'title': control.lang(30100), 'processing': control.lang(30101), 'choose': control.lang(30102), 'notfound': control.lang(30103), }) if isDirectoryStyle(): if s._read_sources(): items = sorted(s._sources.iteritems(), key=lambda x: x[0]) items = [(title[5:], url) for title, url in items] items = map(lambda x: utils.allocate_item(x[0], 'playlink&url=/'+x[1],'', False, ''), items) return control.draw_items(items) else: res = control.play_source(s.get_video_link()) bookmark_episode_playing(sources[0]) return res
def SEARCH_HISTORY(payload, params): history = control.getSetting("9anime.history") history_array = history.split(HISTORY_DELIM) if history != "" and "Yes" in control.getSetting('searchhistory') : return control.draw_items(_BROWSER.search_history(history_array)) else : return SEARCH(payload,params)
def SEARCH(payload, params): query = control.keyboard(control.lang(30007)) if query: if "Yes" in control.getSetting('searchhistory') : history = control.getSetting("9anime.history") if history != "" : query = query+HISTORY_DELIM history=query+history while history.count(HISTORY_DELIM) > 6 : history=history.rsplit(HISTORY_DELIM, 1)[0] control.setSetting("9anime.history",history) return control.draw_items(_BROWSER.search_site(query)) return False
def SUBBED(payload, params): return control.draw_items(_BROWSER.get_recent_subbed(), bookmark_cm)
def LATEST(payload, params): return control.draw_items(_BROWSER.get_latest(), bookmark_cm)
def ANIMES_PAGE(animeurl, params): order = control.getSetting('reverseorder') episodes = _BROWSER.get_anime_episodes(animeurl, isDirectoryStyle()) if ( "Ascending" in order ): episodes = reversed(episodes) return control.draw_items(episodes)
def DUBBED_PAGES(payload, params): return control.draw_items(_BROWSER.get_recent_dubbed(int(payload)), bookmark_cm)
def LIST_GENRES(payload, params): return control.draw_items(_BROWSER.get_genres())
def PLANNED_PAGES(payload, params): return control.draw_items(_BROWSER.get_watchlist_planned(int(payload)), update_bookmark_cm)
def WATCHING(payload, params): return control.draw_items(_BROWSER.get_watchlist_watching(), update_bookmark_cm)
def ONHOLD_PAGES(payload, params): return control.draw_items(_BROWSER.get_watchlist_onhold(int(payload)), update_bookmark_cm)
def WATCHED_PAGES(payload, params): return control.draw_items(_BROWSER.get_watchlist_completed(int(payload)), update_bookmark_cm)
def ALL_PAGES(payload, params): return control.draw_items(_BROWSER.get_watchlist_all(int(payload)), update_bookmark_cm)
def WATCHLIST_PAGE(payload, params): return control.draw_items([ utils.allocate_item(name, url, True, '') for name, url in WATCHLIST_ITEMS ])
def POPDUBBED_PAGES(payload, params): return control.draw_items(_BROWSER.get_popular_dubbed(int(payload)), bookmark_cm)
def POPSUBBED(payload, params): return control.draw_items(_BROWSER.get_popular_subbed(), bookmark_cm)
def WATCHLIST_PAGE(payload, params): return control.draw_items([utils.allocate_item(name, url, True, '') for name, url in WATCHLIST_ITEMS])
def DROPPED_PAGES(payload, params): return control.draw_items(_BROWSER.get_watchlist_dropped(int(payload)), update_bookmark_cm)
def LATEST_PAGES(payload, params): return control.draw_items(_BROWSER.get_latest(int(payload)), bookmark_cm)
def LATEST_DUB(payload, params): return control.draw_items(_BROWSER.get_latest_dub(control.real_debrid_enabled(), control.premiumize_enabled()), 'episodes')
def ANIMES_PAGE(animeurl): return control.draw_items(_BROWSER.get_anime_episodes(animeurl))
def AIRING_DUB(payload, params): return control.draw_items(_BROWSER.get_airing_dub())
def NEWEST(payload): return control.draw_items(_BROWSER.get_newest())
def ANILIST_TRENDING(payload, params): return control.draw_items(_ANILIST_BROWSER.get_trending())
def NEWEST_PAGES(payload): return control.draw_items(_BROWSER.get_newest(int(payload)))
def NEWEST(payload, params): return control.draw_items(_BROWSER.get_newest(), bookmark_cm)
def LATEST(payload): return control.draw_items(_BROWSER.get_latest())
def LATEST_PAGES(payload): return control.draw_items(_BROWSER.get_latest(int(payload)))
def DUBBED(payload): return control.draw_items(_BROWSER.get_recent_dubbed())
def DUBBED_PAGES(payload): return control.draw_items(_BROWSER.get_recent_dubbed(int(payload)))
def SEARCH(payload): query = control.keyboard(control.lang(30002)) if query: return control.draw_items(_BROWSER.search_site(query)) return False
def SEARCH_PAGES(payload): query, page = payload.rsplit("/", 1) return control.draw_items(_BROWSER.search_site(query, int(page)))
def LIST_GENRES(payload): return control.draw_items(_BROWSER.get_genres())
def GENRE_ANIMES(payload): genre, page = payload.rsplit("/", 1) return control.draw_items(_BROWSER.get_genre(genre, int(page)))
def LIST_MENU(payload): return control.draw_items( [utils.allocate_item(name, url, True) for name, url in MENU_ITEMS])
def SEARCH_PAGES(payload, params): query, page = payload.rsplit("/", 1) return control.draw_items(_BROWSER.search_site(query, int(page)), bookmark_cm)
def ANIMES_PAGE(payload, params): anilist_id, mal_id, filter_lang = payload.rsplit("/") anime_general, content = _BROWSER.get_anime_init(anilist_id, filter_lang) return control.draw_items(anime_general, content)
def GENRE_ANIMES(payload, params): genre, page = payload.rsplit("/", 1) return control.draw_items(_BROWSER.get_genre(genre, int(page)), bookmark_cm)
def ANIMES_TRAKT(payload, params): show_id, season = payload.rsplit("/") database._update_season(show_id, season) return control.draw_items(_BROWSER.get_trakt_episodes(show_id, season), 'episodes')
def LIST_MENU(payload, params): is_logged_in = _BROWSER.is_logged_in() menu_items = filter(lambda x: not x[2] or is_logged_in, MENU_ITEMS) return control.draw_items([utils.allocate_item(name, url, True, '') for name, url, logged_only in menu_items])