summaryrefslogtreecommitdiff
path: root/activitypub.rb
diff options
context:
space:
mode:
authorpdp8 <pdp8@pdp8.info>2023-06-04 12:34:23 +0200
committerpdp8 <pdp8@pdp8.info>2023-06-04 12:34:23 +0200
commit458ce88d5f96272daeadfc70ccd7d43c10df1a31 (patch)
tree4b72059fc8aa5fced4f028c5e41dde680b310e51 /activitypub.rb
parent1b51ff391d98dc5ed297b9162fa0e3078840cdc0 (diff)
inbox at '/', inbox parsing moved to activitypub.rb
Diffstat (limited to 'activitypub.rb')
-rw-r--r--activitypub.rb31
1 files changed, 22 insertions, 9 deletions
diff --git a/activitypub.rb b/activitypub.rb
index ab42c4f..a67c9ba 100644
--- a/activitypub.rb
+++ b/activitypub.rb
@@ -29,7 +29,7 @@ set :session_secret, File.read(".secret").chomp
set :default_content_type, 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'
set :port, 9292
-before "/inbox" do
+before "/" do
if request.request_method == "POST"
halt 400 unless verify_signature(request.env)
end
@@ -123,7 +123,7 @@ end
post "/delete/*" do
protected!
FileUtils.rm params['splat'][0]
- redirect to("/inbox")
+ redirect to("/")
end
post "/follow/*" do
@@ -138,7 +138,7 @@ post "/follow/*" do
"object" => actor }
send_signed follow, actor
File.open(following_path, "w+") { |f| f.puts follow.to_json }
- redirect to("/inbox")
+ redirect to("/")
end
post "/unfollow/*" do
@@ -154,27 +154,40 @@ post "/unfollow/*" do
"object" => JSON.parse(File.read(following_path)) }
send_signed undo, actor
FileUtils.rm following_path
- redirect to("/inbox")
+ redirect to("/")
end
end
post "/login" do
session["client"] = true if params["secret"] == File.read(".pwd").chomp
- redirect to("/inbox")
+ redirect to("/")
end
get "/.well-known/webfinger" do
if request["resource"] == "acct:#{ACCOUNT}"
- send_file "./webfinger", :type => "application/jrd+json"
+ send_file "./public/webfinger", :type => "application/jrd+json"
else
halt 404
end
end
-get "/inbox", :provides => 'html' do
+get "/", :provides => 'html' do
protected!
- @inbox = Dir['./inbox/*'].sort
- erb :inbox
+ @inbox = Dir['./inbox/*'].sort.collect do |file|
+ item = JSON.parse(File.read(file))
+ mention = mention(item['attributedTo'])
+ following_path = File.join('public', 'following', mention + '.json')
+ File.exists?(following_path) ? follow = 'unfollow' : follow = 'follow'
+ { :file => file,
+ :actor_url => item['attributedTo'],
+ :mention => mention,
+ :follow => follow,
+ :content => item['content'],
+ :attachment => item['attachment']
+ }
+ end
+ p @inbox
+ erb :index
end
["/outbox","/following","/followers"].each do |path|