module Hipmost::Hipchat
Public Class Methods
direct_channels()
click to toggle source
# File lib/hipmost/hipchat.rb, line 20 def direct_channels Dir[$path.join("users", "**", "*.json")].flat_map do |file_path| json = JSON.parse(File.read(file_path)) json.map do |message| msg = message["PrivateUserMessage"] sender = users[msg["sender"]["id"]] receiver = users[msg["receiver"]["id"]] [sender.username, receiver.username].sort end end.uniq end
direct_posts(file, verbose)
click to toggle source
# File lib/hipmost/hipchat.rb, line 32 def direct_posts(file, verbose) i = 1 if verbose Dir[$path.join("users", "**", "*.json")].each do |file_path| puts "Opening 1-on-1 room at #{file_path}..." if verbose json = JSON.parse(File.read(file_path)) puts "Successfully parsed file at #{file_path}" if verbose puts "Examining messages in this file..." if verbose json.each do |message| if verbose print "On post #{i}\r" i += 1 end msg = message["PrivateUserMessage"] sender = users[msg["sender"]["id"]] receiver = users[msg["receiver"]["id"]] message = msg["message"] create_at = DateTime.strptime(msg["timestamp"]).to_time.to_i*1000 members = [ sender.username, receiver.username ] .sort Conversion.convert_formatting_to_markdown(message) file.puts(%[{ "type": "direct_post", "direct_post": { "channel_members": #{members.inspect}, "user": "#{sender.username}", "message": "#{message}", "create_at": #{create_at} } }]) end if verbose print "\n" puts "Successfully wrote data for that 1-on-1 room\n\n" end end end
rooms()
click to toggle source
# File lib/hipmost/hipchat.rb, line 16 def rooms @rooms ||= RoomRepository.new($path).tap(&:load) end
users()
click to toggle source
# File lib/hipmost/hipchat.rb, line 12 def users @users ||= UserRepository.load_from($path) end