implement force-remove in manage.py, should only be used when relay is not running
authorgled <gled@remote-shell.net>
Tue, 11 Jun 2019 17:48:49 +0000 (10:48 -0700)
committergled <gled@remote-shell.net>
Tue, 11 Jun 2019 17:48:49 +0000 (10:48 -0700)
relay/manage.py

index 542a008..4912fb1 100644 (file)
@@ -1,6 +1,9 @@
 import asyncio
 import sys
+import simplejson as json
+
 from .actor import follow_remote_actor, unfollow_remote_actor
+from . import CONFIG
 from .database import DATABASE
 
 
@@ -34,11 +37,28 @@ def relay_unfollow():
 
     print('Sent unfollow message to:', target)
 
+def relay_forceremove():
+    if len(sys.argv) < 3:
+        print('usage: python3 -m relay.manage force-remove <target>')
+        exit()
+
+    target = sys.argv[2]
+
+    following = DATABASE.get('relay-list', [])
+
+    if target in following:
+        following.remove(target)
+        DATABASE['relay-list'] = following
+        with open('relay.jsonld', 'w') as f:
+            json.dump(DATABASE, f)
+        print('Removed target from DB:', target)
+
 
 TASKS = {
     'list': relay_list,
     'follow': relay_follow,
-    'unfollow': relay_unfollow
+    'unfollow': relay_unfollow,
+    'force-remove': relay_forceremove
 }