From 12acacfc47f84509f16a2f4816b4db995e7527b8 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Mon, 17 Jun 2013 10:43:18 +0200 Subject: [PATCH] Added timestamp sort of spool messages. --- lib/session.rb | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/session.rb b/lib/session.rb index 03425a7e0..44bdd09e9 100644 --- a/lib/session.rb +++ b/lib/session.rb @@ -61,9 +61,15 @@ module Session FileUtils.mkpath path data = [] to_delete = [] - Dir.foreach( path ) do |entry| + files = [] + Dir.foreach( path ) {|entry| next if entry == '.' || entry == '..' - File.open( path + '/' + entry, 'rb' ) { |file| + files.push entry + } + files.sort.each {|entry| + filename = path + '/' + entry + next if !File::exists?( filename ) + File.open( filename, 'rb' ) { |file| all = file.read spool = JSON.parse( all ) begin @@ -86,8 +92,8 @@ module Session if !timestamp || timestamp < spool['timestamp'] # spool to recipient list - if message_parsed['data']['recipient'] && message_parsed['data']['recipient']['user_id'] - message_parsed['data']['recipient']['user_id'].each { |user_id| + if message_parsed['data'] && message_parsed['data']['data'] && message_parsed['data']['data']['recipient'] && message_parsed['data']['data']['recipient']['user_id'] + message_parsed['data']['data']['recipient']['user_id'].each { |user_id| if current_user_id == user_id item = { :type => 'direct', @@ -109,7 +115,7 @@ module Session end end } - end + } to_delete.each {|file| File.delete(file) }