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