diff --git a/bananas_cli/authentication.py b/bananas_cli/authentication.py index 5015e3e..6ebde42 100644 --- a/bananas_cli/authentication.py +++ b/bananas_cli/authentication.py @@ -78,7 +78,7 @@ async def wait_for_code(): raise Exit -async def authenticate(session, client_id): +async def authenticate(session): config_folder = click.get_app_dir("bananas-cli") os.makedirs(config_folder, exist_ok=True) token_filename = config_folder + "/token" @@ -104,7 +104,7 @@ async def authenticate(session, client_id): "audience=github&" "redirect_uri=http%3A%2F%2Flocalhost%3A3977%2F&" "response_type=code&" - f"client_id={client_id}&" + f"client_id={Authenticate.client_id}&" f"code_challenge={code_challenge}&" "code_challenge_method=S256" ) diff --git a/bananas_cli/cli.py b/bananas_cli/cli.py index 72c24fc..4fc2d52 100644 --- a/bananas_cli/cli.py +++ b/bananas_cli/cli.py @@ -1,7 +1,7 @@ import click import logging -from .authentication import authenticate +from .authentication import Authenticate from .helpers import task from .session import Session @@ -43,7 +43,7 @@ async def cli(ctx, api_url, tus_url, client_id): ctx.obj = session await session.start() - await authenticate(session, client_id) + Authenticate.client_id = client_id @task diff --git a/bananas_cli/commands/list_self.py b/bananas_cli/commands/list_self.py index 24edcac..ed944f3 100644 --- a/bananas_cli/commands/list_self.py +++ b/bananas_cli/commands/list_self.py @@ -6,6 +6,7 @@ ) from ..exceptions import Exit from ..helpers import task +from ..authentication import authenticate log = logging.getLogger(__name__) @@ -14,6 +15,8 @@ @pass_session @task async def list_self(session): + await authenticate(session) + status, data = await session.get("/package/self") if status != 200: log.error(f"Server returned invalid status code {status}: {data}") diff --git a/bananas_cli/commands/upload.py b/bananas_cli/commands/upload.py index bfaec2f..d35a4eb 100644 --- a/bananas_cli/commands/upload.py +++ b/bananas_cli/commands/upload.py @@ -8,6 +8,7 @@ from ..enums import License from ..exceptions import Exit from ..helpers import task +from ..authentication import authenticate log = logging.getLogger(__name__) @@ -28,6 +29,8 @@ def show_validation_errors(data): @pass_session @task async def upload(session, version, name, description, url, license, files): + await authenticate(session) + parts = files[0].split("/")[:-1] for filename in files: check_parts = filename.split("/")