diff options
Diffstat (limited to 'client.rb')
-rw-r--r-- | client.rb | 34 |
1 files changed, 20 insertions, 14 deletions
@@ -10,24 +10,24 @@ post '/delete' do protected! params['id'].each do |id| file = find_file id - if file.match(%r{outbox/}) # find/delete activity + # if file.match(%r{outbox/}) # find/delete activity - Dir[File.join 'outbox', 'announce', '*'].each do |announce_file| - announce = JSON.load_file(announce_file) - next unless announce['object']['id'] == id + Dir[File.join 'outbox', 'announce', '*'].each do |announce_file| + announce = JSON.load_file(announce_file) + next unless announce['object']['id'] == id - outbox 'Undo', announce, announce['to'] - FileUtils.rm(announce_file) - end - Dir[File.join 'outbox', 'create', '*'].each do |create_file| - create = JSON.load_file(create_file) - next unless create['object']['id'] == id + outbox 'Undo', announce, announce['to'] + FileUtils.rm(announce_file) + end + Dir[File.join 'outbox', 'create', '*'].each do |create_file| + create = JSON.load_file(create_file) + next unless create['object']['id'] == id - object = JSON.load_file(file) - outbox 'Delete', object, object['to'] - FileUtils.rm(create_file) - end + object = JSON.load_file(file) + outbox 'Delete', object, object['to'] + FileUtils.rm(create_file) end + # end FileUtils.rm(file) if File.exist? file end 200 @@ -45,6 +45,12 @@ post '/unfollow' do params['id'] = actor params['mention'] if params['mention'] following = Dir[File.join(OUTBOX[:dir], 'follow', '*.json')].collect { |f| JSON.load_file(f) } activity = following.find { |a| a['object'] == params['id'] } + activity ||= { + "@context": 'https://www.w3.org/ns/activitystreams', + "type": 'Follow', + "actor": 'https://social.pdp8.info/pdp8', + "object": params['id'] + } outbox 'Undo', activity, [params['id']] update_collection FOLLOWING, params['id'], true 200 |