def _parse_filtered_anime_view(self, res, base): result = [] if res.get(self._FILTER_FLAVOR, None): result.append(utils.allocate_item(base["name"], "%s/%s" % (base["url"], self._FILTER_FLAVOR[3:6]), True, base["image"], base["plot"])) return result
def get_anime_seasons(self, anime_url, is_dubbed, desc_order): info = self._get_anime_info(anime_url, is_dubbed) if len(info["seasons"]) == 1: return self._get_anime_episodes(info, info["seasons"].keys().pop(), desc_order) seasons = sorted(info["seasons"].values(), key=lambda x: x["id"]) return map(lambda x: utils.allocate_item(x['name'], x['url'], True, x["image"], x["plot"]), seasons)
def _handle_paging(self, results, base_url, page): pages_html = self._PAGES_RE.findall(results) # No Pages? empty list ;) if not len(pages_html): return [] total_pages = int(self._PAGES_TOTAL_RE.findall(pages_html[0])[0]) if page >= total_pages: return [] # Last page next_page = page + 1 name = "Next Page (%d/%d)" % (next_page, total_pages) return [utils.allocate_item(name, base_url % next_page, True, None)]
def get_anime_episodes(self, anime_url): settings = xbmcaddon.Addon(id='plugin.video.9anime') reverseorder = settings.getSetting("reverseorder") servers = self._get_anime_info(anime_url) mostSources = max(servers.iteritems(), key=lambda x: len(x[1]))[0] server = servers[mostSources] if "Ascending" in reverseorder: server = list(reversed( server)) # Reverses episode list if required from settings.xml return map( lambda x: utils.allocate_item(x['name'], x['url'], False, ''), server)
def _parse_airing_dub_view(self, res): name = res.values()[0] mal_id = (res.keys()[0]).rsplit('/')[-2] url = 'watchlist_to_ep/{}//0'.format(mal_id) try: image = ast.literal_eval( database.get_show_mal(mal_id)['kodi_meta'])['poster'] except: image = 'DefaultVideo.png' info = {} info['title'] = name info[ 'plot'] = '** = Dub production suspended until further notice.\n++ = Dub is being produced from home studios with an irregular release schedule.' info['mediatype'] = 'tvshow' return utils.allocate_item(name, url, True, image, info)
def _parse_episode_view(self, res): url = res['id'] session = res['session'] name = 'Ep. %s' % res['episode'] image = res['snapshot'] return utils.allocate_item(name, "play/" + str(url)+"?session="+str(session), False, image)
def _parse_anime_view(self, res): name = res[2] image = res[1] url = res[0] return utils.allocate_item(name, "animes/" + url, True, image)
def _parse_history_view(self, res): name = res return utils.allocate_item(name, "search/" + name + "/1", True)
def _parse_view(self, base): return [ utils.allocate_item("%s" % base["name"], base["url"], True, base["image"], base["plot"]) ]
def search_history(self, search_array): result = map(self._parse_history_view, search_array) result.insert(0, utils.allocate_item("New Search", "search", True)) result.insert(len(result), utils.allocate_item("Clear..", "clear_history", True)) return result
def get_genres(self): res = self._get_request(self._to_url("/watch")) genres_box = self._GENRES_BOX_RE.findall(res)[0] generes = self._GENRE_LIST_RE.findall(genres_box) generes_out = [(i[1], "genre/%s/1" % i[0]) for i in generes] return map(lambda x: utils.allocate_item(x[0], x[1], True, ''), generes_out)
def get_anime_episodes(self, anime_url, returnDirectory=False): servers = self._get_anime_info(anime_url) mostSources = max(servers.iteritems(), key=lambda x: len(x[1]))[0] server = servers[mostSources] return map(lambda x: utils.allocate_item(x['name'], x['url'], returnDirectory, ''), server)
def _parse_view(self, base, is_dir=True): return [ utils.allocate_item("%s" % base["name"], base["url"], is_dir, base["image"], base["info"], base["fanart"], base["image"]) ]
def _parse_search_view(self, res): url = res['id'] name = res['title'] image = res['image'] info = "%s - %s" % (res['type'], res['status']) return utils.allocate_item(name, "animes/" + str(url), True, image, info)
def _parse_anime_view(self, res): url = res['id'] session = res['session'] name = "%s Ep. %s" % (res['anime_title'], res['episode']) image = res['snapshot'] return utils.allocate_item(name, "play/" + str(url)+"?session="+str(session), False, image)
def _parse_ep_view(self, res): url = res[0] name = res[1] image = '' return utils.allocate_item(name, "gogo_play/" + url, False, image)
def _parse_anime_view(self, res): url = (res.attrs['href']).rsplit('/', 1)[1] name = res.text image = res.find('div')['style'].split('"')[1] return utils.allocate_item(name, "gogo_animes/" + url, True, image)