From 678cc19ccfe2528353d3843395cc6dab7a873a19 Mon Sep 17 00:00:00 2001 From: Dan Schwarz Date: Tue, 4 Apr 2023 19:43:37 -0400 Subject: [PATCH] Added toot list_add_account command --- toot/api.py | 12 ++++++++++++ toot/commands.py | 16 ++++++++++++++++ toot/console.py | 19 +++++++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/toot/api.py b/toot/api.py index b4e0bd1..3d9e956 100644 --- a/toot/api.py +++ b/toot/api.py @@ -549,3 +549,15 @@ def create_list(app, user, title, replies_policy): def delete_list(app, user, id): return http.delete(app, user, f"/api/v1/lists/{id}") + + +def add_accounts_to_list(app, user, list_id, account_ids): + url = f"/api/v1/lists/{list_id}/accounts" + json = {'account_ids': account_ids} + return http.post(app, user, url, json=json).json() + + +def remove_accounts_from_list(app, user, list_id, account_ids): + url = f"/api/v1/lists/{list_id}/accounts" + json = {'account_ids[]': account_ids} + return http.delete(app, user, url, json=json) diff --git a/toot/commands.py b/toot/commands.py index 5ac4aca..4a7c908 100644 --- a/toot/commands.py +++ b/toot/commands.py @@ -446,6 +446,22 @@ def list_delete(app, user, args): print_out(f"✓ List \"{args.title}\" deleted.") +def list_add_account(app, user, args): + list_id = args.id if args.id else api.find_list_id(app, user, args.title) + if not list_id: + print_out("List not found") + return + account = find_account(app, user, args.account) + if not account: + print_out("Account not found") + return + try: + api.add_accounts_to_list(app, user, list_id, [account['id']]) + print_out(f"✓ Added account \"{account['acct']}\"") + except Exception as ex: + print_out(f"{ex}") + + def mute(app, user, args): account = find_account(app, user, args.account) api.mute(app, user, account['id']) diff --git a/toot/console.py b/toot/console.py index b53f339..cfe20ff 100644 --- a/toot/console.py +++ b/toot/console.py @@ -779,6 +779,25 @@ LIST_COMMANDS = [ ], require_auth=True, ), + Command( + name="list_add_account", + description="Add account to list", + arguments=[ + (["--id"], { + "type": str, + "help": "ID of the list" + }), + (["--title"], { + "type": str, + "help": "title of the list" + }), + (["--account"], { + "type": str, + "help": "Account to add" + }), + ], + require_auth=True, + ), ] COMMAND_GROUPS = [ ("Authentication", AUTH_COMMANDS),