def watch(anime_name, new, update_all, _list, quality, log_level, remove, download_dir, provider): """ With watch you can keep track of any anime you watch. Available Commands after selection of an anime:\n set : set episodes_done, provider and title. Ex: set episodes_done=3\n remove : remove selected anime from watch list\n update : Update the episodes of the currrent anime\n watch : Watch selected anime\n download : Download episodes of selected anime """ util.setup_logger(log_level) util.print_info(__version__) watcher = _watch.Watcher() if new: if anime_name: query = anime_name else: query = click.prompt('Enter a anime name or url', type=str) url = util.search(query, provider) watcher.new(url) sys.exit(0) if remove: anime = watcher.get(anime_name) if anime and click.confirm("Remove '{}'".format(anime.title), abort=True): watcher.remove(anime) else: logging.error("Couldn't find '{}'. " "Use a better search term.".format(anime_name)) sys.exit(1) sys.exit(0) if update_all: animes = watcher.anime_list() for anime in animes: watcher.update_anime(anime) if _list: list_animes(watcher, quality, download_dir) sys.exit(0) if anime_name: anime = watcher.get(anime_name) if not anime: logging.error("Couldn't find '{}'." "Use a better search term.".format(anime_name)) sys.exit(1) anime.quality = quality logging.info('Found {}'.format(anime.title)) watch_anime(watcher, anime)
def dl(ctx, anime_url, episode_range, url, player, skip_download, quality, force_download, log_level, download_dir): """ Download the anime using the url or search for it. """ util.setup_logger(log_level) util.print_info(__version__) cls = get_anime_class(anime_url) if not cls: anime_url = util.search_and_get_url(anime_url) cls = get_anime_class(anime_url) try: anime = cls(anime_url, quality=quality) except NotFoundError as e: echo(e.args[0]) return if episode_range is None: episode_range = '1:' + str(len(anime) + 1) logging.info('Found anime: {}'.format(anime.title)) anime = util.split_anime(anime, episode_range) util.process_anime(anime, player=player, force_download=force_download, download_dir=download_dir, url=url, skip_download=skip_download)
def dl(ctx, anime_url, episode_range, url, player, skip_download, quality, force_download, log_level, download_dir, file_format, provider, external_downloader): """ Download the anime using the url or search for it. """ util.setup_logger(log_level) util.print_info(__version__) cls = get_anime_class(anime_url) if not cls: anime_url = util.search(anime_url, provider) cls = get_anime_class(anime_url) try: anime = cls(anime_url, quality=quality) except Exception as e: echo(click.style(str(e), fg='red')) return # TODO: Refractor this somewhere else. (util?) if episode_range is None: episode_range = '1:' if episode_range.endswith(':'): episode_range += str(len(anime) + 1) if episode_range.startswith(':'): episode_range = '1' + episode_range logging.info('Found anime: {}'.format(anime.title)) anime = util.split_anime(anime, episode_range) if url or player: skip_download = True if download_dir and not skip_download: logging.info('Downloading to {}'.format(os.path.abspath(download_dir))) for episode in anime: if url: util.print_episodeurl(episode) if player: util.play_episode(episode, player=player) if not skip_download: if external_downloader: logging.info('Downloading episode {} of {}'.format( episode.ep_no, anime.title)) util.external_download(external_downloader, episode, file_format, path=download_dir) continue episode.download(force=force_download, path=download_dir, format=file_format) print()
def cli(log_level): """Anime Downloader Download or watch your favourite anime """ if not util.check_in_path('aria2c'): raise RuntimeError( "Aria2 is not in path. Please follow installation instructions: https://github.com/vn-ki/anime-downloader/wiki/Installation" ) util.setup_logger(log_level)
def dl(ctx, anime_url, episode_range, url, player, skip_download, quality, force_download, log_level, download_dir, file_format, provider): """ Download the anime using the url or search for it. """ util.setup_logger(log_level) util.print_info(__version__) cls = get_anime_class(anime_url) if not cls: anime_url = util.search(anime_url, provider) cls = get_anime_class(anime_url) try: anime = cls(anime_url, quality=quality) except Exception as e: echo(click.style(str(e), fg='red')) return if episode_range is None: episode_range = '1:' + str(len(anime) + 1) logging.info('Found anime: {}'.format(anime.title)) anime = util.split_anime(anime, episode_range) if url or player: skip_download = True if download_dir and not skip_download: logging.info('Downloading to {}'.format(os.path.abspath(download_dir))) for episode in anime: if url: util.print_episodeurl(episode) if player: util.play_episode(episode, player=player) if not skip_download: episode.download(force=force_download, path=download_dir, format=file_format) print()
def cli(log_level): """Anime Downloader Download or watch your favourite anime """ util.setup_logger(log_level)
def dl(ctx, anime_url, episode_range, url, player, skip_download, quality, force_download, log_level, download_dir, file_format, provider, external_downloader, chunk_size, disable_ssl, fallback_qualities): """ Download the anime using the url or search for it. """ util.setup_logger(log_level) util.print_info(__version__) cls = get_anime_class(anime_url) disable_ssl = cls and cls.__name__ == 'Masterani' or disable_ssl session.get_session().verify = not disable_ssl if not cls: anime_url = util.search(anime_url, provider) cls = get_anime_class(anime_url) try: anime = cls(anime_url, quality=quality, fallback_qualities=fallback_qualities) except Exception as e: if log_level != 'DEBUG': echo(click.style(str(e), fg='red')) else: raise return logging.info('Found anime: {}'.format(anime.title)) anime = util.parse_ep_str(anime, episode_range) if url or player: skip_download = True if download_dir and not skip_download: logging.info('Downloading to {}'.format(os.path.abspath(download_dir))) for episode in anime: if url: util.print_episodeurl(episode) if player: util.play_episode(episode, player=player) if not skip_download: if external_downloader: logging.info('Downloading episode {} of {}'.format( episode.ep_no, anime.title)) util.external_download(external_downloader, episode, file_format, path=download_dir) continue if chunk_size is not None: chunk_size *= 1e6 chunk_size = int(chunk_size) episode.download(force=force_download, path=download_dir, format=file_format, range_size=chunk_size) print()