diff options
Diffstat (limited to 'client.rb')
-rw-r--r-- | client.rb | 34 |
1 files changed, 7 insertions, 27 deletions
@@ -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 |