class Last
Public Class Methods
Source
# File plugins/last.rb, line 19 def self.format_relative(at) return "unknown time" unless at seconds = (Time.now - at).to_i return "just now" if seconds < 60 return "#{seconds / 60}m ago" if seconds < 3600 return "#{seconds / 3600}h ago" if seconds < 86_400 "#{seconds / 86_400}d ago" end
Source
# File plugins/last.rb, line 30 def self.lookup(network:, channel:, nick:, store: RabbotDb) user = store.channel_user(network: network, channel: channel, nick: nick) return "#{nick} has no recorded activity in this channel" unless user return "#{nick} has no recorded messages" if user.last_message.to_s.strip.empty? "#{nick} (#{format_relative(store.parse_time(user.last_message_at))}): #{user.last_message}" end
Source
# File plugins/last.rb, line 15 def self.usage_message "Usage: !last <nick>" end
Public Instance Methods
Source
# File plugins/last.rb, line 38 def execute(m, nick) unless m.channel m.reply "Use !last in a channel" return end flood_safe_reply( m, self.class.lookup(network: bot.config.server, channel: m.channel.name, nick: nick) ) end