Add commands: (un)mute, (un)block - toot - Unnamed repository; edit this file 'description' to name the repository.
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit 7563641f54d19f0654243454502c7d65f3f15e63
(DIR) parent 3a1d7e17aaaa2d0f2e3c7b99692f9c5ceef63ed5
(HTM) Author: Ivan Habunek <ivan@habunek.com>
Date: Wed, 26 Apr 2017 11:49:21 +0200
Add commands: (un)mute, (un)block
Diffstat:
toot/api.py | 28 +++++++++++++++++++++++-----
toot/commands.py | 34 +++++++++++++++++++++----------
toot/console.py | 46 +++++++++++++++++++++++++++----
3 files changed, 86 insertions(+), 22 deletions(-)
---
(DIR) diff --git a/toot/api.py b/toot/api.py
@@ -92,6 +92,12 @@ def _post(app, user, url, data=None, files=None):
return _process_response(response)
+def _account_action(app, user, account, action):
+ url = '/api/v1/accounts/%d/%s' % (account, action)
+
+ return _post(app, user, url).json()
+
+
def create_app(instance):
base_url = 'https://' + instance
url = base_url + '/api/v1/apps'
@@ -174,15 +180,27 @@ def search_accounts(app, user, query):
def follow(app, user, account):
- url = '/api/v1/accounts/%d/follow' % account
-
- return _post(app, user, url).json()
+ return _account_action(app, user, account, 'follow')
def unfollow(app, user, account):
- url = '/api/v1/accounts/%d/unfollow' % account
+ return _account_action(app, user, account, 'unfollow')
- return _post(app, user, url).json()
+
+def mute(app, user, account):
+ return _account_action(app, user, account, 'mute')
+
+
+def unmute(app, user, account):
+ return _account_action(app, user, account, 'unmute')
+
+
+def block(app, user, account):
+ return _account_action(app, user, account, 'block')
+
+
+def unblock(app, user, account):
+ return _account_action(app, user, account, 'unblock')
def verify_credentials(app, user):
(DIR) diff --git a/toot/commands.py b/toot/commands.py
@@ -297,26 +297,38 @@ def _print_account(account):
def follow(app, user, args):
account = _find_account(app, user, args.account)
-
- if not account:
- print_error("Account not found")
- return
-
api.follow(app, user, account['id'])
-
print(green("✓ You are now following %s" % args.account))
def unfollow(app, user, args):
account = _find_account(app, user, args.account)
+ api.unfollow(app, user, account['id'])
+ print(green("✓ You are no longer following %s" % args.account))
- if not account:
- print_error("Account not found")
- return
- api.unfollow(app, user, account['id'])
+def mute(app, user, args):
+ account = _find_account(app, user, args.account)
+ api.mute(app, user, account['id'])
+ print(green("✓ You have muted %s" % args.account))
- print(green("✓ You are no longer following %s" % args.account))
+
+def unmute(app, user, args):
+ account = _find_account(app, user, args.account)
+ api.unmute(app, user, account['id'])
+ print(green("✓ %s is no longer muted" % args.account))
+
+
+def block(app, user, args):
+ account = _find_account(app, user, args.account)
+ api.block(app, user, account['id'])
+ print(green("✓ You are now blocking %s" % args.account))
+
+
+def unblock(app, user, args):
+ account = _find_account(app, user, args.account)
+ api.unblock(app, user, account['id'])
+ print(green("✓ %s is no longer blocked" % args.account))
def whoami(app, user, args):
(DIR) diff --git a/toot/console.py b/toot/console.py
@@ -26,6 +26,12 @@ def visibility(value):
Command = namedtuple("Command", ["name", "description", "require_auth", "arguments"])
+# Some common arguments:
+account_arg = (["account"], {
+ "help": "account name, e.g. 'Gargron' or 'polymerwitch@toot.cat'",
+})
+
+
COMMANDS = [
Command(
name="login",
@@ -116,9 +122,7 @@ COMMANDS = [
name="follow",
description="Follow an account",
arguments=[
- (["account"], {
- "help": "account name, e.g. 'Gargron' or 'polymerwitch@toot.cat'",
- }),
+ account_arg,
],
require_auth=True,
),
@@ -126,9 +130,39 @@ COMMANDS = [
name="unfollow",
description="Unfollow an account",
arguments=[
- (["account"], {
- "help": "account name, e.g. 'Gargron' or 'polymerwitch@toot.cat'",
- }),
+ account_arg,
+ ],
+ require_auth=True,
+ ),
+ Command(
+ name="mute",
+ description="Mute an account",
+ arguments=[
+ account_arg,
+ ],
+ require_auth=True,
+ ),
+ Command(
+ name="unmute",
+ description="Unmute an account",
+ arguments=[
+ account_arg,
+ ],
+ require_auth=True,
+ ),
+ Command(
+ name="block",
+ description="Block an account",
+ arguments=[
+ account_arg,
+ ],
+ require_auth=True,
+ ),
+ Command(
+ name="unblock",
+ description="Unblock an account",
+ arguments=[
+ account_arg,
],
require_auth=True,
),