summaryrefslogtreecommitdiff
path: root/client.rb
diff options
context:
space:
mode:
authorpdp8 <pdp8@pdp8.info>2023-09-11 21:09:26 +0200
committerpdp8 <pdp8@pdp8.info>2023-09-11 21:09:26 +0200
commitd635057cb576c5570c5ceba5945cc5339b0f41ab (patch)
tree3baf2432690f221f67dc318a3fd5aa6b271c9961 /client.rb
parentda017e7cd9394cb759ee74440c5fd25860063905 (diff)
new create format, outbox refactoring
Diffstat (limited to 'client.rb')
-rw-r--r--client.rb37
1 files changed, 19 insertions, 18 deletions
diff --git a/client.rb b/client.rb
index ca5a338..8af00c9 100644
--- a/client.rb
+++ b/client.rb
@@ -16,24 +16,10 @@ post '/delete' do
200
end
-post '/undo' do # TODO: generalize for announce
- protected!
- Dir[File.join('outbox', '*', '*.json')].each do |f|
- activity = JSON.load_file(f)
- next unless activity['id'] == params['id']
-
- object_file = find_file activity['object']['id']
- outbox 'Undo', params['id'], activity['to']
- FileUtils.rm(object_file)
- FileUtils.rm(f)
- end
- 200
-end
-
post '/follow' do
protected!
params['id'] = actor params['mention'] if params['mention']
- outbox 'Follow', params['id'], [params['id']]
+ create_activity 'Follow', params['id'], [params['id']]
200
end
@@ -48,8 +34,8 @@ post '/unfollow' do
"actor": 'https://social.pdp8.info/pdp8',
"object": params['id']
}
- outbox 'Undo', activity, [params['id']]
- update_collection FOLLOWING, params['id'], true
+ create_activity 'Undo', activity, [params['id']]
+ update_collection FOLLOWING, params['id'], 'delete'
200
end
@@ -60,13 +46,28 @@ post '/share' do # TODO
recipients = ['https://www.w3.org/ns/activitystreams#Public']
recipients += JSON.load_file(FOLLOWERS)['orderedItems']
recipients << object['attributedTo']
- outbox 'Announce', object, recipients
+ create_activity 'Announce', object, recipients
dest = src.sub('inbox/', 'outbox/')
FileUtils.mkdir_p File.dirname(dest)
FileUtils.mv src, dest
200
end
+# post '/undo' do # TODO: generalize for announce
+# protected!
+# activity_file = find_file(params['id'])
+# Dir[File.join('outbox', '*', '*.json')].each do |f|
+# activity = JSON.load_file(f)
+# next unless activity['id'] == params['id']
+#
+# object_file = find_file activity['object']['id']
+# create_activity 'Undo', params['id'], activity['to']
+# FileUtils.rm(object_file)
+# FileUtils.rm(f)
+# end
+# 200
+# end
+
post '/login' do
session['client'] = (OpenSSL::Digest::SHA256.base64digest(params['secret']) == File.read('.digest').chomp)
200