module Slackgetter

Constants

VERSION

Public Class Methods

channel_id(channel_name) click to toggle source
# File lib/slackgetter.rb, line 28
def self.channel_id(channel_name)
  channels = Slack.channels_list["channels"]
  channel = channels.select{|channel| channel["name"] == channel_name}
  channel_id = channel.first["id"]
end
configure_token(token) click to toggle source
# File lib/slackgetter.rb, line 8
def self.configure_token(token)
  Slack.configure do |config|
    config.token = token
  end
end
convert(text) click to toggle source
# File lib/slackgetter.rb, line 41
def self.convert(text)
  text.reverse.join("\n\n").gsub(/\&lt;/, '<').gsub(/\&gt;/, '>')
      .gsub(/<(http[^>]*)>/){ $1 }
      .gsub(/\*([^*]*)\*/){ "*#{$&}*" }
      .gsub(/\~([^~]*)\~/){ "~#{$&}~" }
  # 離れている ~ 同士で ~~ になってしまう
end
messages(channel_name, oldest, latest) click to toggle source
# File lib/slackgetter.rb, line 14
def self.messages(channel_name, oldest, latest)
  channel_id = channel_id(channel_name)
  oldest = Time.parse(oldest)
  latest = Time.parse(latest)

  messages = Slack.channels_history(channel: channel_id, oldest: oldest.to_f, latest: latest.to_f)
  text = text(messages)
  puts text
end
text(messages) click to toggle source
# File lib/slackgetter.rb, line 34
def self.text(messages)
  if messages["ok"] == true
    text = messages["messages"].map{|message| message["text"]}
    convert(text)
  end
end
url_to_time(url) click to toggle source
# File lib/slackgetter.rb, line 24
def self.url_to_time(url)
  Time.at url.gsub(/.+\/p(.+)\z/){$1}.insert(10, ".").to_f
end