diff --git a/fastanime/cli/__init__.py b/fastanime/cli/__init__.py index 4046ff3..8a6e8a4 100644 --- a/fastanime/cli/__init__.py +++ b/fastanime/cli/__init__.py @@ -1,3 +1,5 @@ +from sys import exit + import click from .. import __version__ @@ -14,6 +16,7 @@ commands = { "download": download, "anilist": anilist, "config": configure, + "exit": exit, } diff --git a/fastanime/cli/commands/anilist/__init__.py b/fastanime/cli/commands/anilist/__init__.py index 3266395..d058a7d 100644 --- a/fastanime/cli/commands/anilist/__init__.py +++ b/fastanime/cli/commands/anilist/__init__.py @@ -1,3 +1,5 @@ +from sys import exit + import click from ...interfaces.anilist_interfaces import anilist as anilist_interface @@ -5,6 +7,7 @@ from ...utils.tools import QueryDict from .favourites import favourites from .popular import popular from .recent import recent +from .scores import scores from .search import search from .trending import trending from .upcoming import upcoming @@ -15,7 +18,9 @@ commands = { "search": search, "popular": popular, "trending": trending, + "scores": scores, "upcoming": upcoming, + "exit": exit, } diff --git a/fastanime/cli/commands/anilist/popular.py b/fastanime/cli/commands/anilist/popular.py index 26fc27c..6dba569 100644 --- a/fastanime/cli/commands/anilist/popular.py +++ b/fastanime/cli/commands/anilist/popular.py @@ -1,6 +1,15 @@ import click +from ....libs.anilist.anilist import AniList +from ...interfaces.anilist_interfaces import select_anime +from ...utils.tools import QueryDict + @click.command() -def popular(): - print("popular") +@click.pass_obj +def popular(config): + anime_data = AniList.get_most_popular() + if anime_data[0]: + anilist_config = QueryDict() + anilist_config.data = anime_data[1] + select_anime(config, anilist_config) diff --git a/fastanime/cli/commands/anilist/recent.py b/fastanime/cli/commands/anilist/recent.py index 0baace6..633c4cf 100644 --- a/fastanime/cli/commands/anilist/recent.py +++ b/fastanime/cli/commands/anilist/recent.py @@ -1,6 +1,15 @@ import click +from ....libs.anilist.anilist import AniList +from ...interfaces.anilist_interfaces import select_anime +from ...utils.tools import QueryDict + @click.command() -def recent(): - print("recent") +@click.pass_obj +def recent(config): + anime_data = AniList.get_most_recently_updated() + if anime_data[0]: + anilist_config = QueryDict() + anilist_config.data = anime_data[1] + select_anime(config, anilist_config) diff --git a/fastanime/cli/commands/anilist/scores.py b/fastanime/cli/commands/anilist/scores.py new file mode 100644 index 0000000..2e707ab --- /dev/null +++ b/fastanime/cli/commands/anilist/scores.py @@ -0,0 +1,15 @@ +import click + +from ....libs.anilist.anilist import AniList +from ...interfaces.anilist_interfaces import select_anime +from ...utils.tools import QueryDict + + +@click.command() +@click.pass_obj +def scores(config): + anime_data = AniList.get_most_scored() + if anime_data[0]: + anilist_config = QueryDict() + anilist_config.data = anime_data[1] + select_anime(config, anilist_config) diff --git a/fastanime/cli/commands/anilist/search.py b/fastanime/cli/commands/anilist/search.py index abab9b5..a00d8b6 100644 --- a/fastanime/cli/commands/anilist/search.py +++ b/fastanime/cli/commands/anilist/search.py @@ -1,12 +1,16 @@ import click from ....libs.anilist.anilist import AniList -from .utils import get_search_result +from ...interfaces.anilist_interfaces import select_anime +from ...utils.tools import QueryDict @click.command() @click.option("--title", prompt="Enter anime title") -def search(title): +@click.pass_obj +def search(config, title): success, search_results = AniList.search(title) - if search_results and success: - get_search_result(search_results) + if success: + anilist_config = QueryDict() + anilist_config.data = search_results + select_anime(config, anilist_config) diff --git a/fastanime/cli/commands/anilist/trending.py b/fastanime/cli/commands/anilist/trending.py index f0d0138..bfdb480 100644 --- a/fastanime/cli/commands/anilist/trending.py +++ b/fastanime/cli/commands/anilist/trending.py @@ -1,11 +1,15 @@ import click from ....libs.anilist.anilist import AniList -from .utils import get_search_result +from ...interfaces.anilist_interfaces import select_anime +from ...utils.tools import QueryDict @click.command() -def trending(): - success, trending = AniList.get_trending() - if trending and success: - get_search_result(trending) +@click.pass_obj +def trending(config): + success, data = AniList.get_trending() + if success: + anilist_config = QueryDict() + anilist_config.data = data + select_anime(config, anilist_config) diff --git a/fastanime/cli/commands/anilist/upcoming.py b/fastanime/cli/commands/anilist/upcoming.py index 7944a45..dfa43cd 100644 --- a/fastanime/cli/commands/anilist/upcoming.py +++ b/fastanime/cli/commands/anilist/upcoming.py @@ -1,6 +1,15 @@ import click +from ....libs.anilist.anilist import AniList +from ...interfaces.anilist_interfaces import select_anime +from ...utils.tools import QueryDict + @click.command() -def upcoming(): - print("upcoming") +@click.pass_obj +def upcoming(config): + success, data = AniList.get_upcoming_anime() + if success: + anilist_config = QueryDict() + anilist_config.data = data + select_anime(config, anilist_config) diff --git a/fastanime/cli/interfaces/anilist_interfaces.py b/fastanime/cli/interfaces/anilist_interfaces.py index 48ed54e..6acd417 100644 --- a/fastanime/cli/interfaces/anilist_interfaces.py +++ b/fastanime/cli/interfaces/anilist_interfaces.py @@ -15,7 +15,6 @@ from ..utils.tools import QueryDict from ..utils.utils import clear, fuzzy_inquirer -# FIXME: BACK brocken def player_controls(config: Config, anilist_config: QueryDict): # user config translation_type: str = config.translation_type @@ -112,14 +111,14 @@ def player_controls(config: Config, anilist_config: QueryDict): options = { "Replay": _replay, "Next Episode": _next_episode, - "Episodes": _episodes, "Previous Episode": _previous_episode, + "Episodes": _episodes, "Change Quality": _change_quality, "Change Translation Type": _change_translation_type, "Back to servers": _back, - "Go to Main Menu": lambda: anilist(config, anilist_config), - "Go to Anime Options Menu": lambda: anilist_options(config, anilist_config), - "Go to Search Results": lambda: select_anime(config, anilist_config), + "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": sys.exit, } @@ -350,6 +349,7 @@ def anilist_options(config, anilist_config: QueryDict): "view info": _view_info, "Change Translation Type": _change_translation_type, "back": select_anime, + "exit": sys.exit, } action = fuzzy_inquirer("Select Action:", options.keys()) options[action](config, anilist_config) @@ -396,6 +396,7 @@ def anilist(config: Config, anilist_config: QueryDict): "most scored anime": AniList.get_most_scored, "upcoming anime": AniList.get_upcoming_anime, "recently updated anime": AniList.get_most_recently_updated, + "exit": sys.exit, } action = fuzzy_inquirer("Select Action:", options.keys()) anilist_data = options[action]()