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
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
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
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
def setup(self): self.player = mpv('example.mp4')