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)
Beispiel #5
0
    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)
Beispiel #8
0
 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
Beispiel #11
0
 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)
Beispiel #12
0
 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)
Beispiel #13
0
 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)