From 458ce88d5f96272daeadfc70ccd7d43c10df1a31 Mon Sep 17 00:00:00 2001 From: pdp8 Date: Sun, 4 Jun 2023 12:34:23 +0200 Subject: inbox at '/', inbox parsing moved to activitypub.rb --- activitypub.rb | 31 ++++++++++++++++++++++--------- public/webfinger | 10 ++++++++++ views/inbox.erb | 50 -------------------------------------------------- views/index.erb | 35 +++++++++++++++++++++++++++++++++++ webfinger | 10 ---------- 5 files changed, 67 insertions(+), 69 deletions(-) create mode 100644 public/webfinger delete mode 100644 views/inbox.erb create mode 100644 views/index.erb delete mode 100644 webfinger 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| diff --git a/public/webfinger b/public/webfinger new file mode 100644 index 0000000..507b34e --- /dev/null +++ b/public/webfinger @@ -0,0 +1,10 @@ +{ + "subject": "acct:pdp8@social.pdp8.info", + "links": [ + { + "rel": "self", + "type": "application/activity+json", + "href": "https://social.pdp8.info/pdp8" + } + ] +} diff --git a/views/inbox.erb b/views/inbox.erb deleted file mode 100644 index 0be5dd5..0000000 --- a/views/inbox.erb +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - <% @inbox.each_with_index do |file,i| %> - <% item = JSON.parse(File.read(file)) - mention = mention(item['attributedTo']) - following_path = File.join('public', 'following', mention + '.json') %> - ', target='_blank'><%= mention %>  - <% File.exists?(following_path) ? method = 'unfollow' : method = 'follow' %> -
- -
-

<%= item['content'] %> - <% if item['attachment'] - item['attachment'].each do |att| - case att['mediaType'] - when /audio/ %> -
- <% when /image/ %> -
'>'> - <% when /video/ %> -
- <% else %> - <%= att %>
- '><%= att['url'] %> - <% end %> - <% end %> - <% end %> -

-

' method='post'> - -
- -
- <% end %> - - diff --git a/views/index.erb b/views/index.erb new file mode 100644 index 0000000..a698565 --- /dev/null +++ b/views/index.erb @@ -0,0 +1,35 @@ + + + + + + + <% @inbox.each do |item| %> + <%= item[:mention] %>  +
+ +
+

<%= item[:content] %> + <% if item[:attachment] + item[:attachment].each do |att| + case att['mediaType'] + when /audio/ %> +
+ <% when /image/ %> +
'>'> + <% when /video/ %> +
+ <% else %> + <%= att %>
+ '><%= att['url'] %> + <% end %> + <% end %> + <% end %> +

+

' method='post'> + +
+
+ <% end %> + + diff --git a/webfinger b/webfinger deleted file mode 100644 index 507b34e..0000000 --- a/webfinger +++ /dev/null @@ -1,10 +0,0 @@ -{ - "subject": "acct:pdp8@social.pdp8.info", - "links": [ - { - "rel": "self", - "type": "application/activity+json", - "href": "https://social.pdp8.info/pdp8" - } - ] -} -- cgit v1.2.3