class SlackLogViewer
Main class of Slack Log Viewer. Sinatra app.
@since 0.1
Version of Slack Log Viewer
Constants
- VERSION
Private Instance Methods
channels()
click to toggle source
# File lib/slack_log_viewer.rb, line 65 def channels Dir["#{settings.log_dir}/*"] .select { |e| e !~ /\.json/ } .map { |e| File.basename(e) } end
channels_data()
click to toggle source
# File lib/slack_log_viewer.rb, line 108 def channels_data Hash[ *JSON .load(File.read("#{settings.log_dir}/channels.json")) .map { |ch| [ch['id'], ch] } .flatten ] end
dates(channel)
click to toggle source
# File lib/slack_log_viewer.rb, line 71 def dates(channel) Dir["#{settings.log_dir}/#{channel}/*"] .map { |e| File.basename(e, '.json') } end
logs(channel, day)
click to toggle source
# File lib/slack_log_viewer.rb, line 76 def logs(channel, day) parse(File.read("#{settings.log_dir}/#{channel}/#{day}.json")) end
parse(logs)
click to toggle source
# File lib/slack_log_viewer.rb, line 80 def parse(logs) user_dic = users_data ch_dic = channels_data logs = JSON.load(logs) logs.map do |log| log['user'] = user_dic[log['user']] log['raw_text'] = log['text'] log['text'] = log['text'] .gsub(/simple_smile/, 'smile') .gsub(/<@(.*?)(\|.*?)?>/){ "@#{user_dic[$1]['name']}" } .gsub(/<#(.*?)(\|.*?)?>/){ $2 ? "##{$2[1..-1]}" : "##{ch_dic[$1]['name']}" } .gsub(/<(.*?)(\|.*?)?>/, "<a href='\\1'>\\1</a>") .gsub(/```(.*?)```/m){ "<pre>#{ $1.strip if $1 }</pre>" } .gsub("\n", '<br />') log end end
users_data()
click to toggle source
# File lib/slack_log_viewer.rb, line 99 def users_data Hash[ *JSON .load(File.read("#{settings.log_dir}/users.json")) .map { |user| [user['id'], user] } .flatten ] end