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()
Alias for: list
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