From 08a28bfb26dae4ca6f13d91f62220e6221245311 Mon Sep 17 00:00:00 2001 From: Lim Ding Wen Date: Thu, 22 Dec 2022 05:12:36 +0800 Subject: [PATCH] TOOT_VISIBILITY controls boost visibility TOOT_VISIBILITY controls default boost visibility from CLI, and the boost visibility from TUI (no option to change in TUI yet) --- toot/api.py | 8 ++++---- toot/commands.py | 2 +- toot/console.py | 7 ++++++- toot/tui/app.py | 3 ++- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/toot/api.py b/toot/api.py index 17458e7..2d84ceb 100644 --- a/toot/api.py +++ b/toot/api.py @@ -18,10 +18,10 @@ def _account_action(app, user, account, action): return http.post(app, user, url).json() -def _status_action(app, user, status_id, action): +def _status_action(app, user, status_id, action, data=None): url = '/api/v1/statuses/{}/{}'.format(status_id, action) - return http.post(app, user, url).json() + return http.post(app, user, url, data=data).json() def create_app(domain, scheme='https'): @@ -187,8 +187,8 @@ def unfavourite(app, user, status_id): return _status_action(app, user, status_id, 'unfavourite') -def reblog(app, user, status_id): - return _status_action(app, user, status_id, 'reblog') +def reblog(app, user, status_id, visibility="public"): + return _status_action(app, user, status_id, 'reblog', data={"visibility": visibility}) def unreblog(app, user, status_id): diff --git a/toot/commands.py b/toot/commands.py index e334b30..daa155f 100644 --- a/toot/commands.py +++ b/toot/commands.py @@ -169,7 +169,7 @@ def unfavourite(app, user, args): def reblog(app, user, args): - api.reblog(app, user, args.status_id) + api.reblog(app, user, args.status_id, visibility=args.visibility) print_out("✓ Status reblogged") diff --git a/toot/console.py b/toot/console.py index 663aab5..51c1d5e 100644 --- a/toot/console.py +++ b/toot/console.py @@ -434,7 +434,12 @@ STATUS_COMMANDS = [ Command( name="reblog", description="Reblog a status", - arguments=[status_id_arg], + arguments=[status_id_arg, + (["-v", "--visibility"], { + "type": visibility, + "default": os.getenv("TOOT_VISIBILITY", "public"), + "help": 'boost visibility, one of: %s' % ", ".join(VISIBILITY_CHOICES), + })], require_auth=True, ), Command( diff --git a/toot/tui/app.py b/toot/tui/app.py index 5f5a2c3..39b8529 100644 --- a/toot/tui/app.py +++ b/toot/tui/app.py @@ -1,5 +1,6 @@ import logging import urwid +import os from concurrent.futures import ThreadPoolExecutor @@ -494,7 +495,7 @@ class TUI(urwid.Frame): def async_toggle_reblog(self, timeline, status): def _reblog(): logger.info("Reblogging {}".format(status)) - api.reblog(self.app, self.user, status.id) + api.reblog(self.app, self.user, status.id, visibility=os.getenv("TOOT_VISIBILITY", "public")) def _unreblog(): logger.info("Unreblogging {}".format(status))