diff --git a/toot/api.py b/toot/api.py
index 97d5a33..1b4e1a2 100644
--- a/toot/api.py
+++ b/toot/api.py
@@ -153,6 +153,14 @@ def unpin(app, user, status_id):
return _status_action(app, user, status_id, 'unpin')
+def bookmark(app, user, status_id):
+ return _status_action(app, user, status_id, 'bookmark')
+
+
+def unbookmark(app, user, status_id):
+ return _status_action(app, user, status_id, 'unbookmark')
+
+
def context(app, user, status_id):
url = '/api/v1/statuses/{}/context'.format(status_id)
diff --git a/toot/commands.py b/toot/commands.py
index 720c318..845a55f 100644
--- a/toot/commands.py
+++ b/toot/commands.py
@@ -164,6 +164,16 @@ def unpin(app, user, args):
print_out("✓ Status unpinned")
+def bookmark(app, user, args):
+ api.bookmark(app, user, args.status_id)
+ print_out("✓ Status bookmarked")
+
+
+def unbookmark(app, user, args):
+ api.unbookmark(app, user, args.status_id)
+ print_out("✓ Status unbookmarked")
+
+
def reblogged_by(app, user, args):
for account in api.reblogged_by(app, user, args.status_id):
print_out("{}\n @{}".format(account['display_name'], account['acct']))
diff --git a/toot/console.py b/toot/console.py
index e90a808..a0fc0d2 100644
--- a/toot/console.py
+++ b/toot/console.py
@@ -410,6 +410,18 @@ STATUS_COMMANDS = [
arguments=[status_id_arg],
require_auth=True,
),
+ Command(
+ name="bookmark",
+ description="Bookmark a status",
+ arguments=[status_id_arg],
+ require_auth=True,
+ ),
+ Command(
+ name="unbookmark",
+ description="Unbookmark a status",
+ arguments=[status_id_arg],
+ require_auth=True,
+ ),
]
ACCOUNTS_COMMANDS = [