From 2602a20aa7a2f6c9a7d3e388ba706129bb5fea41 Mon Sep 17 00:00:00 2001 From: Benex254 Date: Fri, 16 Aug 2024 14:53:57 +0300 Subject: [PATCH] feat(login command): add option to erase login data --- fastanime/cli/commands/anilist/login.py | 59 +++++++++++++++---------- 1 file changed, 36 insertions(+), 23 deletions(-) diff --git a/fastanime/cli/commands/anilist/login.py b/fastanime/cli/commands/anilist/login.py index e53ed1c..9890030 100644 --- a/fastanime/cli/commands/anilist/login.py +++ b/fastanime/cli/commands/anilist/login.py @@ -8,41 +8,54 @@ if TYPE_CHECKING: @click.command(help="Login to your anilist account") @click.option("--status", "-s", help="Whether you are logged in or not", is_flag=True) +@click.option("--erase", "-e", help="Erase your login details", is_flag=True) @click.pass_obj -def login(config: "Config", status): - from click import launch +def login(config: "Config", status, erase): from rich import print from rich.prompt import Confirm, Prompt - from ....anilist import AniList from ...utils.tools import exit_app if status: is_logged_in = True if config.user else False message = ( - "You are logged in :happy:" if is_logged_in else "You arent logged in :cry" + "You are logged in :smile:" if is_logged_in else "You arent logged in :cry:" ) print(message) print(config.user) exit_app() - if config.user: - print("Already logged in :confused:") - if not Confirm.ask("or would you like to reloggin", default=True): + elif erase: + if Confirm.ask( + "Are you sure you want to erase your login status", default=False + ): + config.update_user({}) + print("Success") + exit_app(0) + else: + exit_app(1) + else: + from click import launch + + from ....anilist import AniList + + if config.user: + print("Already logged in :confused:") + if not Confirm.ask("or would you like to reloggin", default=True): + exit_app() + # ---- new loggin ----- + print( + f"A browser session will be opened ( [link]{config.fastanime_anilist_app_login_url}[/link] )", + ) + launch(config.fastanime_anilist_app_login_url, wait=True) + print("Please paste the token provided here") + token = Prompt.ask("Enter token") + user = AniList.login_user(token) + if not user: + print("Sth went wrong", user) exit_app() - # ---- new loggin ----- - print( - f"A browser session will be opened ( [link]{config.fastanime_anilist_app_login_url}[/link] )", - ) - launch(config.fastanime_anilist_app_login_url, wait=True) - print("Please paste the token provided here") - token = Prompt.ask("Enter token") - user = AniList.login_user(token) - if not user: - print("Sth went wrong", user) + return + user["token"] = token + config.update_user(user) + print("Successfully saved credentials") + print(user) exit_app() - return - user["token"] = token - config.update_user(user) - print("Successfully saved credentials") - print(user) - exit_app()