relay: add manage task, allows for following/unfollowing remote peers
authorkaniini <kaniini@dereferenced.org>
Sun, 18 Nov 2018 14:41:00 +0000 (14:41 +0000)
committerkaniini <kaniini@dereferenced.org>
Sun, 18 Nov 2018 14:41:00 +0000 (14:41 +0000)
relay/manage.py [new file with mode: 0644]

diff --git a/relay/manage.py b/relay/manage.py
new file mode 100644 (file)
index 0000000..bdc5425
--- /dev/null
@@ -0,0 +1,63 @@
+import asyncio
+import sys
+from .actor import follow_remote_actor, unfollow_remote_actor
+from .database import DATABASE
+
+
+def relay_list():
+    print('Connected to the following instances or relays:')
+    [print('-', relay) for relay in DATABASE['relay-list']]
+
+
+def relay_follow():
+    if len(sys.argv) < 3:
+        print('usage: python3 -m relay.manage follow <target>')
+        exit()
+
+    target = sys.argv[2])
+
+    loop = asyncio.get_event_loop()
+    loop.run_until_complete(follow_remote_actor(target))
+
+    print('Sent follow message to:', target)
+
+
+def relay_unfollow():
+    if len(sys.argv) < 3:
+        print('usage: python3 -m relay.manage unfollow <target>')
+        exit()
+
+    target = sys.argv[2])
+
+    loop = asyncio.get_event_loop()
+    loop.run_until_complete(unfollow_remote_actor(target))
+
+    print('Sent unfollow message to:', target)
+
+
+TASKS = {
+    'list': relay_list,
+    'follow': relay_follow,
+    'unfollow': relay_unfollow
+}
+
+
+def usage():
+    print('usage: python3 -m relay.manage <task> [...]')
+    print('tasks:')
+    [print('-', task) for task in TASKS.keys()]
+    exit()
+
+
+def main():
+    if len(sys.argv) < 2:
+        usage()
+
+    if sys.argv[1] in TASKS:
+        TASKS[sys.argv[1]]()
+    else:
+        usage()
+
+
+if __name__ == '__main__':
+    main()