예제 #1
0
def watch_anime(watcher, anime):
    to_watch = anime[anime.episodes_done:]
    logger.debug('Sliced epiosdes: {}'.format(to_watch._episode_urls))

    while anime.episodes_done < len(anime):
        episode = anime[anime.episodes_done]
        anime.episodes_done += 1
        watcher.update(anime)
        for tries in range(5):
            logger.info('Playing episode {}'.format(episode.ep_no))
            try:
                player = mpv(episode.source().stream_url)
            except Exception as e:
                anime.episodes_done -= 1
                watcher.update(anime)
                logger.error(str(e))
                sys.exit(1)

            returncode = player.play()

            if returncode == player.STOP:
                sys.exit(0)
            elif returncode == player.CONNECT_ERR:
                logger.warning("Couldn't connect. Retrying. "
                               "Attempt #{}".format(tries + 1))
                continue
            elif returncode == player.PREV:
                anime.episodes_done -= 2
                watcher.update(anime)
                break
            else:
                break
예제 #2
0
def watch_anime(watcher, anime):
    to_watch = anime[anime.episodes_done:]

    for idx, episode in enumerate(to_watch):

        for tries in range(5):
            logging.info('Playing episode {}'.format(anime.episodes_done + 1))
            player = mpv(episode.stream_url)
            returncode = player.play()

            if returncode == mpv.STOP:
                sys.exit(0)
            elif returncode == mpv.CONNECT_ERR:
                logging.warning("Couldn't connect. Retrying.")
                continue
            anime.episodes_done += 1
            watcher.update(anime)
            break
예제 #3
0
def watch_anime(watcher, anime, quality, download_dir):
    autoplay = Config['watch']['autoplay_next']
    to_watch = anime[anime.episodes_done:]
    logger.debug('Sliced episodes: {}'.format(to_watch._episode_urls))

    while anime.episodes_done < len(anime):
        episode = anime[anime.episodes_done]
        anime.episodes_done += 1
        watcher.update(anime)
        for tries in range(5):
            logger.info(
                'Playing episode {}'.format(episode.ep_no)
            )
            try:
                player = mpv(episode)
            except Exception as e:
                anime.episodes_done -= 1
                watcher.update(anime)
                logger.error(str(e))
                sys.exit(1)

            returncode = player.play()
            if returncode == player.STOP:
                # Returns to watch.
                return

            elif returncode == player.CONNECT_ERR:
                logger.warning("Couldn't connect. Retrying. "
                               "Attempt #{}".format(tries + 1))
                continue

            elif returncode == player.PREV:
                anime.episodes_done -= 2
                watcher.update(anime)
                break
            # If no other return codes, basically when the player finishes.
            # Can't find the returncode for success.
            elif autoplay:
                break
            else:
                return
예제 #4
0
def watch_anime(watcher, anime):
    to_watch = anime[anime.episodes_done:]
    logging.debug('Sliced epiosdes: {}'.format(to_watch._episodeIds))

    for idx, episode in enumerate(to_watch):

        for tries in range(5):
            logging.info('Playing episode {}'.format(episode.ep_no))
            player = mpv(episode.stream_url)
            returncode = player.play()

            if returncode == mpv.STOP:
                sys.exit(0)
            elif returncode == mpv.CONNECT_ERR:
                logging.warning(
                    "Couldn't connect. Retrying. Attempt #{}".format(tries +
                                                                     1))
                continue
            anime.episodes_done += 1
            watcher.update(anime)
            break
예제 #5
0
 def setup(self):
     self.player = mpv('example.mp4')