def run(aa):
    """
        Show Latest Episodes
    """

    vs = LatestEpisodesScanner()
    animes = vs.run()
    aa.setProgress(maxval=len(animes), title=aa.getString("latest_loading"))
    for (tag, (type, kind), episode, anime) in animes:
        aa.incrProgress()
        # Load Image
        image = storage.cget(tag)
        if not image:
            try:
                vs = EpisodeScanner(tag)
                image = vs.run()["thumbnail"]
            except NoContentProvided:
                image = None
        aa.addVideo(
            "anime/%s/%s/%s" % (tag, type, episode),
            "%s Episode %s" % (anime, episode),
            image=image,
            icon=aa.asMediaPath("%s.png" % kind),
            label="[%s]" % kind,
            info={"episode": episode, "status": kind, "genre": "Anime", "title": anime},
        )
    aa.closeProgress()
def run(aa):
    """
        Show Anime List
    """

    vs = AnimeScanner("http://www.animeavenue.net/anime-list/")
    animes = vs.run()
    for (tag, anime) in animes:
        # Image Present?
        image = storage.cget(tag)
        # Add List Item
        aa.addDirectory("anime/%s" % tag, anime, image=image)
def run(aa):
    """
        Show Ongoing Series
    """

    vs = OngoingAnimeScanner()
    animes = vs.run()
    for (tag, anime, time) in animes:
        # Image Present?
        image = storage.cget(tag)
        # Add List Item
        aa.addDirectory("anime/%s" % tag, anime, image=image)
def run(aa):
    """
        Show Anime Suggestions
    """

    vs = SuggestionScanner()
    animes = vs.run()
    aa.setProgress(maxval=len(animes), title=aa.getString('suggestion_loading'))
    for (tag, anime, img) in animes:
        aa.incrProgress()

        # Load Image
        image = storage.cget(tag)
        if not image:
            vs = EpisodeScanner(tag)
            image = vs.run()["thumbnail"]

        # Add List Item
        aa.addDirectory("anime/%s" % tag, anime, image=image)
    aa.closeProgress()
def run(aa, tag=None, type=None, episode=None):
    """
        Show an Anime List
    """
    if not tag:
        vs = AnimeScanner("http://www.animeavenue.net/anime-list/")
        animes = vs.run()
        for (tag, anime) in animes:
            # Image Present?
            image = storage.cget(tag)
            # Add List Item
            aa.addDirectory("anime/%s" % tag, anime, image=image)
    elif not type:
        vs = EpisodeScanner(tag)
        data = vs.run()
        # Save Thumbernail
        storage.cset(tag, data['thumbnail'])
        # Print Episodes
        for (tag, type, episode, anime) in data['episodes']:
            aa.addVideo("anime/%s/%s/%s" % (tag, type, episode), anime,
                        image=data['thumbnail'],
                        info={"episode": episode, "genre": "Anime", "title": anime})
    else:
        try:
            if not episode:
                episode = type
                type = "episode"
            ts = StreamScanner(tag, type, episode)
            streams = ts.run()
            if streams:
                aa.resolveUrl(streams[0])
            else:
                aa.failResolve()
        except UpcomingEpisode:
            aa.failResolve(aa.getString("upcoming_episode"))
        except NoContentProvided:
            aa.failResolve(aa.getString("no_video"))