From 644b22383cdb613aa33f6d4bbb6e394a12444bc4 Mon Sep 17 00:00:00 2001 From: Benex254 Date: Mon, 5 Aug 2024 09:47:04 +0300 Subject: [PATCH] feat(anilist): make icons optional --- fastanime/cli/__init__.py | 8 ++ fastanime/cli/config.py | 4 + .../cli/interfaces/anilist_interfaces.py | 76 ++++++++++--------- 3 files changed, 51 insertions(+), 37 deletions(-) diff --git a/fastanime/cli/__init__.py b/fastanime/cli/__init__.py index ba05169..ad1b91a 100644 --- a/fastanime/cli/__init__.py +++ b/fastanime/cli/__init__.py @@ -100,6 +100,11 @@ signal.signal(signal.SIGINT, handle_exit) @click.option("--default", is_flag=True, help="Use the default interface") @click.option("--preview", is_flag=True, help="Show preview when using fzf") @click.option("--no-preview", is_flag=True, help="Dont show preview when using fzf") +@click.option( + "--icons/--no-icons", + type=bool, + help="Use icons in the interfaces", +) @click.pass_context def run_cli( ctx: click.Context, @@ -117,6 +122,7 @@ def run_cli( default, preview, no_preview, + icons, ): ctx.obj = Config() if provider: @@ -132,6 +138,8 @@ def run_cli( ctx.obj.quality = quality if ctx.get_parameter_source("auto-next") == click.core.ParameterSource.COMMANDLINE: ctx.obj.auto_next = auto_next + if ctx.get_parameter_source("icons") == click.core.ParameterSource.COMMANDLINE: + ctx.obj.icons = icons if ( ctx.get_parameter_source("auto_select") == click.core.ParameterSource.COMMANDLINE diff --git a/fastanime/cli/config.py b/fastanime/cli/config.py index 1ab7d7c..8736346 100644 --- a/fastanime/cli/config.py +++ b/fastanime/cli/config.py @@ -35,6 +35,7 @@ class Config(object): "format": "best[height<=1080]/bestvideo[height<=1080]+bestaudio/best", "provider": "allanime", "error": "3", + "icons":"false" } ) self.configparser.add_section("stream") @@ -49,6 +50,7 @@ class Config(object): self.downloads_dir = self.get_downloads_dir() self.provider = self.get_provider() self.use_fzf = self.get_use_fzf() + self.icons = self.get_icons() self.preview = self.get_preview() self.translation_type = self.get_translation_type() self.sort_by = self.get_sort_by() @@ -108,6 +110,8 @@ class Config(object): def get_use_fzf(self): return self.configparser.getboolean("general", "use_fzf") + def get_icons(self): + return self.configparser.getboolean("general", "icons") def get_preview(self): return self.configparser.getboolean("general", "preview") diff --git a/fastanime/cli/interfaces/anilist_interfaces.py b/fastanime/cli/interfaces/anilist_interfaces.py index 578db2f..cd5ef88 100644 --- a/fastanime/cli/interfaces/anilist_interfaces.py +++ b/fastanime/cli/interfaces/anilist_interfaces.py @@ -146,19 +146,19 @@ def player_controls(config: Config, anilist_config: QueryDict): # reload to controls player_controls(config, anilist_config) - + icons=config.icons options = { - "๐Ÿ”‚ Replay": _replay, - "โญ Next Episode": _next_episode, - "โฎ Previous Episode": _previous_episode, - "๐Ÿ—ƒ๏ธ Episodes": _episodes, - "๐Ÿ“€ Change Quality": _change_quality, - "๐ŸŽง Change Translation Type": _change_translation_type, - "๐Ÿ’ฝ Servers": _servers, - "๐Ÿ“ฑ Main Menu": lambda: anilist(config, anilist_config), - "๐Ÿ“œ Anime Options Menu": lambda: anilist_options(config, anilist_config), - "๐Ÿ”Ž Search Results": lambda: select_anime(config, anilist_config), - "โŒ Exit": exit_app, + f"{'๐Ÿ”‚ ' if icons else ''}Replay": _replay, + f"{'โญ ' if icons else ''}Next Episode": _next_episode, + f"{'โฎ ' if icons else ''}Previous Episode": _previous_episode, + f"{'๐Ÿ—ƒ๏ธ ' if icons else ''}Episodes": _episodes, + f"{'๐Ÿ“€ ' if icons else ''}Change Quality": _change_quality, + f"{'๐ŸŽง ' if icons else ''}Change Translation Type": _change_translation_type, + f"{'๐Ÿ’ฝ ' if icons else ''}Servers": _servers, + f"{'๐Ÿ“ฑ ' if icons else ''}Main Menu": lambda: anilist(config, anilist_config), + f"{'๐Ÿ“œ ' if icons else ''}Anime Options Menu": lambda: anilist_options(config, anilist_config), + f"{'๐Ÿ”Ž ' if icons else ''}Search Results": lambda: select_anime(config, anilist_config), + f"{'โŒ ' if icons else ''}Exit": exit_app, } if config.auto_next: @@ -528,15 +528,16 @@ def anilist_options(config, anilist_config: QueryDict): anilist_options(config, anilist_config) return + icons=config.icons options = { - "๐Ÿ“ฝ๏ธ Stream": provide_anime, - "๐Ÿ“ผ Watch Trailer": _watch_trailer, - "๐Ÿ“ฅ Add to List": _add_to_list, - "๐Ÿ“ค Remove from List": _remove_from_list, - "๐Ÿ“– View Info": _view_info, - "๐ŸŽง Change Translation Type": _change_translation_type, - "๐Ÿ”™ Back": select_anime, - "โŒ Exit": exit_app, + f"{'๐Ÿ“ฝ๏ธ ' if icons else ''}Stream": provide_anime, + f"{'๐Ÿ“ผ ' if icons else ''}Watch Trailer": _watch_trailer, + f"{'๐Ÿ“ฅ ' if icons else ''}Add to List": _add_to_list, + f"{'๐Ÿ“ค ' if icons else ''}Remove from List": _remove_from_list, + f"{'๐Ÿ“– ' if icons else ''}View Info": _view_info, + f"{'๐ŸŽง ' if icons else ''}Change Translation Type": _change_translation_type, + f"{'๐Ÿ”™ ' if icons else ''}Back": select_anime, + f"{'โŒ ' if icons else ''}Exit": exit_app, } if config.use_fzf: action = fzf.run( @@ -648,25 +649,26 @@ def anilist(config: Config, anilist_config: QueryDict): anilist(config, anilist_config) + icons = config.icons options = { - "๐Ÿ”ฅ Trending": AniList.get_trending, - "๐Ÿ“บ Watching": lambda x="Watching": handle_animelist(x), - "โธ Paused": lambda x="Paused": handle_animelist(x), - "๐Ÿšฎ Dropped": lambda x="Dropped": handle_animelist(x), - "๐Ÿ“‘ Planned": lambda x="Planned": handle_animelist(x), - "โœ… Completed": lambda x="Completed": handle_animelist(x), - "๐Ÿ” Repeating": lambda x="Repeating": handle_animelist(x), - "๐Ÿ”” Recently Updated Anime": AniList.get_most_recently_updated, - "๐Ÿ”Ž Search": _anilist_search, - "๐ŸŽž๏ธ Watch History": _watch_history, + f"{'๐Ÿ”ฅ ' if icons else ''}Trending": AniList.get_trending, + f"{'๐Ÿ“บ ' if icons else ''}Watching": lambda x="Watching": handle_animelist(x), + f"{'โธ ' if icons else ''}Paused": lambda x="Paused": handle_animelist(x), + f"{'๐Ÿšฎ ' if icons else ''}Dropped": lambda x="Dropped": handle_animelist(x), + f"{'๐Ÿ“‘ ' if icons else ''}Planned": lambda x="Planned": handle_animelist(x), + f"{'โœ… ' if icons else ''}Completed": lambda x="Completed": handle_animelist(x), + f"{'๐Ÿ” ' if icons else ''}Repeating": lambda x="Repeating": handle_animelist(x), + f"{'๐Ÿ”” ' if icons else ''}Recently Updated Anime": AniList.get_most_recently_updated, + f"{'๐Ÿ”Ž ' if icons else ''}Search": _anilist_search, + f"{'๐ŸŽž๏ธ ' if icons else ''}Watch History": _watch_history, # "AnimeList": _anime_list๐Ÿ’ฏ, - "๐ŸŽฒ Random Anime": _anilist_random, - "๐ŸŒŸ Most Popular Anime": AniList.get_most_popular, - "๐Ÿ’– Most Favourite Anime": AniList.get_most_favourite, - "โœจ Most Scored Anime": AniList.get_most_scored, - "๐ŸŽฌ Upcoming Anime": AniList.get_upcoming_anime, - "๐Ÿ“ Edit Config": edit_config, - "โŒ Exit": exit_app, + f"{'๐ŸŽฒ ' if icons else ''}Random Anime": _anilist_random, + f"{'๐ŸŒŸ ' if icons else ''}Most Popular Anime": AniList.get_most_popular, + f"{'๐Ÿ’– ' if icons else ''}Most Favourite Anime": AniList.get_most_favourite, + f"{'โœจ ' if icons else ''}Most Scored Anime": AniList.get_most_scored, + f"{'๐ŸŽฌ ' if icons else ''}Upcoming Anime": AniList.get_upcoming_anime, + f"{'๐Ÿ“ ' if icons else ''}Edit Config": edit_config, + f"{'โŒ ' if icons else ''}Exit": exit_app, } if config.use_fzf: