class MijDiscord::Cache::ChannelCache
Constants
- MAX_MESSAGES
Public Class Methods
new(channel, bot, max_messages: MAX_MESSAGES)
click to toggle source
# File lib/mij-discord/cache.rb, line 264 def initialize(channel, bot, max_messages: MAX_MESSAGES) @channel, @bot = channel, bot @max_messages = max_messages reset end
Public Instance Methods
get_message(key, local: false)
click to toggle source
# File lib/mij-discord/cache.rb, line 275 def get_message(key, local: false) id = key&.to_id || return return @messages[id] if @messages.has_key?(id) return nil if local begin response = case @bot.auth.type when :bot then MijDiscord::Core::API::Channel.message(@bot.auth, @channel.id, key) when :user then MijDiscord::Core::API::Channel.messages(@bot.auth, @channel.id, 1, nil, nil, key) end rescue MijDiscord::Errors::NotFound return nil end message = @messages.store(id, MijDiscord::Data::Message.new(JSON.parse(response), @bot)) @messages.shift while @messages.length > @max_messages message end
inspect()
click to toggle source
# File lib/mij-discord/cache.rb, line 312 def inspect MijDiscord.make_inspect(self) end
put_message(data, update: false)
click to toggle source
# File lib/mij-discord/cache.rb, line 295 def put_message(data, update: false) id = data['id'].to_i if @messages.has_key?(id) @messages[id].update_data(data) if update return @messages[id] end message = @messages.store(id, MijDiscord::Data::Message.new(data, @bot)) @messages.shift while @messages.length > @max_messages message end
remove_message(key)
click to toggle source
# File lib/mij-discord/cache.rb, line 308 def remove_message(key) @messages.delete(key&.to_id) end
reset()
click to toggle source
# File lib/mij-discord/cache.rb, line 271 def reset @messages = {} end