From 3c38f81b8a145778d4329c6be4c91baa00ca0d48 Mon Sep 17 00:00:00 2001 From: pdp8 Date: Fri, 21 Jul 2023 16:28:24 +0200 Subject: thread rendering --- client.rb | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) (limited to 'client.rb') diff --git a/client.rb b/client.rb index 75464c1..f90ca5f 100644 --- a/client.rb +++ b/client.rb @@ -135,32 +135,22 @@ get '/' do redirect '/inbox' end -# ['/inbox', '/shared', '/outbox'].each do |path| ['/inbox', '/outbox'].each do |path| get path, provides: 'html' do protected! - @dir = path.sub('/', '') - # collection = DirI# - # collection = Dir[File.join(@dir, 'object','*', '*.json')].collect { |f| JSON.parse(File.read(f)) } - - @collection = Dir[File.join(@dir, 'create', '*.json')].collect { |f| JSON.parse(File.read(f))['object'] } - @collection += Dir[File.join(@dir, 'announce', '*.json')].collect { |f| JSON.parse(File.read(f))['object'] } + @box = path.sub('/', '') + collection = Dir[File.join(@box, 'object', '*', '*.json')].collect { |f| JSON.parse(File.read(f)) } @threads = [] - @collection.collect! do |object| + collection.collect! do |object| object = fetch(object) if object.is_a?(String) && object.match(/^http/) object end - @collection.each do |object| - add_parents object - end - @collection.each do |object| - object['indent'] = 0 + collection.each do |object| object['replies'] = [] - @threads << object if object['inReplyTo'].nil? || @collection.select { |o| o['id'] == object['inReplyTo'] }.empty? + @threads << object if object['inReplyTo'].nil? || collection.select { |o| o['id'] == object['inReplyTo'] }.empty? end - @collection.each do |object| - @collection.select { |o| o['id'] == object['inReplyTo'] }.each do |o| - object['indent'] = o['indent'] + 2 + collection.each do |object| + collection.select { |o| o['id'] == object['inReplyTo'] }.each do |o| o['replies'] << object end end @@ -170,16 +160,6 @@ end end helpers do - def add_parents(object) - return unless object['inReplyTo'] - - object = fetch object['inReplyTo'] - return unless object - - @collection << object unless @collection.collect { |o| o['id'] }.include? object['id'] - add_parents object - end - def protected! halt 403 unless session['client'] end -- cgit v1.2.3