class Slackup::Ims
Constants
- Im
Public Instance Methods
format_username(user)
click to toggle source
# File lib/slackup/ims.rb, line 69 def format_username(user) user_name(user).downcase.gsub(/\s+/, "-") end
ims_dir()
click to toggle source
# File lib/slackup/ims.rb, line 73 def ims_dir @ims_dir ||= "ims" FileUtils.mkdir_p(@ims_dir) @ims_dir end
list()
click to toggle source
@return [Hash] @example {
"ok"=>true, "ims"=>[ {"id"=>"D1234567890", "is_im"=>true, "user"=>"USLACKBOT", "created"=>1372105335, "is_user_deleted"=>false}, ]
}
# File lib/slackup/ims.rb, line 15 def list @list ||= client.im_list["ims"].map { |im| Im.new(im) } end
Also aliased as: ims
messages(im_id)
click to toggle source
@param im_id [String] is the 'channel' of the im, e.g. “D1234567890” @return [Hash] @example return {
"ok": true, "latest": "1358547726.000003", "messages": [ { "type": "message", "ts": "1358546515.000008", "user": "U2147483896", "text": "<@U0453RHGQ> has some thoughts on that kind of stuff" }, ] "has_more": false
# File lib/slackup/ims.rb, line 55 def messages(im_id) client.im_history(channel: im_id) end
write!()
click to toggle source
# File lib/slackup/ims.rb, line 30 def write! return unless write_ims? Dir.chdir(ims_dir) do ims.each do |im| # p [:ims, im.user, format_username(im.user)] write_messages(im) end end end
write_ims?()
click to toggle source
# File lib/slackup/ims.rb, line 20 def write_ims? if config.fetch("ims", true) p [name, :ims, "Writing"] true else p [name, :ims, "Skipping"] false end end
write_messages(im)
click to toggle source
# File lib/slackup/ims.rb, line 59 def write_messages(im) im_username = format_username(im.user) with_messages im_username, messages(im.id) do |messages| formatted_messages = format_messages(messages) File.open(backup_filename(im_username), "w") do |f| f.write serialize(formatted_messages) end unless formatted_messages.empty? end end