lib/slack/smart-bot/utils/save_status.rb in slack-smart-bot-1.10.0 vs lib/slack/smart-bot/utils/save_status.rb in slack-smart-bot-1.11.0
- old
+ new
@@ -5,38 +5,53 @@
Dir.mkdir("#{config.path}/status") unless Dir.exist?("#{config.path}/status")
CSV.open("#{config.path}/status/#{config.channel}_status.csv", "a+") do |csv|
csv << [Time.now.strftime("%Y/%m/%d"), Time.now.strftime("%H:%M:%S"), status, status_id, message]
end
+ if defined?(@channels_list) #wait until the 'client' started
+ channel_info = @channels_list.select { |c| c.id == @channel_id}[-1]
+ if channel_info.nil? or channel_info.is_private
+ channel_link = "##{config.channel}"
+ else
+ channel_link = "<##{@channel_id}|#{config.channel}>"
+ end
+ else
+ channel_link = "##{config.channel}"
+ end
+
if status_id == :disconnected
Thread.new do
sleep 50
@logger.info "check disconnection 50 scs later #{@last_notified_status_id}"
unless @last_notified_status_id == :connected
- respond ":red_circle: The *SmartBot* on *<##{@channel_id}|#{config.channel}>* is down. An admin will take a look. <@#{config.admins.join(">, <@")}>", config.status_channel
+ respond ":red_circle: The *SmartBot* on *#{channel_link}* is down. An admin will take a look. <@#{config.admins.join(">, <@")}>", config.status_channel
end
end
end
if @channels_id.is_a?(Hash) and @channels_id.keys.include?(config.status_channel)
is_back = false
m = ''
if (Time.now-@last_status_change) > 20 or !defined?(@last_notified_status_id)
if status_id == :connected
if defined?(@last_notified_status_id)
- m = ":exclamation: :large_green_circle: The *SmartBot* on *<##{@channel_id}|#{config.channel}>* was not available for #{(Time.now-@last_status_change).round(0)} secs. *Now it is up and running again.*"
+ m = ":exclamation: :large_green_circle: The *SmartBot* on *#{channel_link}* was not available for #{(Time.now-@last_status_change).round(0)} secs. *Now it is up and running again.*"
else
- m = ":large_green_circle: The *SmartBot* on *<##{@channel_id}|#{config.channel}>* is up and running again."
+ m = ":large_green_circle: The *SmartBot* on *#{channel_link}* is up and running again."
end
end
end
if status_id == :paused
- m = ":red_circle: #{message} *<##{@channel_id}|#{config.channel}>*"
+ m = ":red_circle: #{message} *#{channel_link}*"
elsif status_id == :started
- m = ":large_green_circle: #{message} *<##{@channel_id}|#{config.channel}>*"
+ m = ":large_green_circle: #{message} *#{channel_link}*"
elsif status_id == :killed or status_id == :exited
m = ":red_circle: #{message}"
elsif config.on_master_bot and status_id == :maintenance_on
- m = ":red_circle: The *SmartBot* is on maintenance so not possible to attend any request."
+ if message.to_s == "Sorry I'm on maintenance so I cannot attend your request."
+ m = ":red_circle: The *SmartBot* is on maintenance so not possible to attend any request."
+ else
+ m = ":red_circle: #{message}"
+ end
elsif config.on_master_bot and status_id == :maintenance_off
m = ":large_green_circle: The *SmartBot* is up and running again."
end
@last_status_change = Time.now
@last_notified_status_id = status_id
\ No newline at end of file