Fix the build.

This commit is contained in:
Guo Xiang Tan 2017-10-10 12:54:10 +08:00
parent 1f6bb6db1c
commit b19550502e
3 changed files with 85 additions and 83 deletions

View File

@ -0,0 +1,80 @@
module DiscourseChat::Provider::SlackProvider
class SlackMessage
def initialize(raw_message, transcript)
@raw = raw_message
@transcript = transcript
end
def username
if user
user['name']
elsif @raw.key?("username")
@raw["username"]
end
end
def avatar
user["profile"]["image_24"] if user
end
def url
channel_id = @transcript.channel_id
ts = @raw['ts'].gsub('.', '')
"https://slack.com/archives/#{channel_id}/p#{ts}"
end
def text
text = @raw["text"]
# Format links (don't worry about special cases @ # !)
text = text.gsub(/<(.*?)>/) do |match|
group = $1
parts = group.split('|')
link = parts[0].start_with?('@', '#', '!') ? '' : parts[0]
text = parts.length > 1 ? parts[1] : parts[0]
if parts[0].start_with?('@')
user = @transcript.users.find { |u| u["id"] == parts[0].gsub('@', '') }
next "@#{user['name']}"
end
"[#{text}](#{link})"
end
# Add an extra * to each side for bold
text = text.gsub(/\*(.*?)\*/) do |match|
"*#{match}*"
end
text
end
def raw_text
@raw['text']
end
def attachments
attachments = []
return attachments unless @raw.key?('attachments')
@raw["attachments"].each do |attachment|
next unless attachment.key?("fallback")
attachments << attachment["fallback"]
end
attachments
end
def ts
@raw["ts"]
end
private
def user
return nil unless user_id = @raw["user"]
@transcript.users.find { |u| u["id"] == user_id }
end
end
end

View File

@ -139,6 +139,7 @@ module DiscourseChat::Provider::SlackProvider
end
end
require_relative "slack_message_formatter.rb"
require_relative "slack_transcript.rb"
require_relative "slack_command_controller.rb"
require_relative "slack_message_formatter"
require_relative "slack_transcript"
require_relative "slack_message"
require_relative "slack_command_controller"

View File

@ -1,83 +1,4 @@
module DiscourseChat::Provider::SlackProvider
class SlackMessage
def initialize(raw_message, transcript)
@raw = raw_message
@transcript = transcript
end
def username
if user
user['name']
elsif @raw.key?("username")
@raw["username"]
end
end
def avatar
user["profile"]["image_24"] if user
end
def url
channel_id = @transcript.channel_id
ts = @raw['ts'].gsub('.', '')
"https://slack.com/archives/#{channel_id}/p#{ts}"
end
def text
text = @raw["text"]
# Format links (don't worry about special cases @ # !)
text = text.gsub(/<(.*?)>/) do |match|
group = $1
parts = group.split('|')
link = parts[0].start_with?('@', '#', '!') ? '' : parts[0]
text = parts.length > 1 ? parts[1] : parts[0]
if parts[0].start_with?('@')
user = @transcript.users.find { |u| u["id"] == parts[0].gsub('@', '') }
next "@#{user['name']}"
end
"[#{text}](#{link})"
end
# Add an extra * to each side for bold
text = text.gsub(/\*(.*?)\*/) do |match|
"*#{match}*"
end
text
end
def raw_text
@raw['text']
end
def attachments
attachments = []
return attachments unless @raw.key?('attachments')
@raw["attachments"].each do |attachment|
next unless attachment.key?("fallback")
attachments << attachment["fallback"]
end
attachments
end
def ts
@raw["ts"]
end
private
def user
return nil unless user_id = @raw["user"]
@transcript.users.find { |u| u["id"] == user_id }
end
end
class SlackTranscript
attr_reader :users, :channel_id, :messages
@ -273,7 +194,7 @@ module DiscourseChat::Provider::SlackProvider
return false unless response.kind_of? Net::HTTPSuccess
json = JSON.parse(response.body)
return false unless json['ok']
json['members']
@users = json['members']
end
def load_chat_history(count: 500)