abstract class PrivateParlorXT::History

Overview

A base class for objects that store the history of sent messages so that they can be referenced later for replies, deletions, or other commands

Direct Known Subclasses

Defined in:

private-parlor-xt/history/history.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(lifespan : Time::Span) #

Initialize a message History where messages older than #lifespan are considered expired


[View source]

Instance Method Detail

abstract def add_rating(message : MessageID, user : UserID) : Bool #

Adds a rating entry to the database with the given data

Returns true if the user's rating was successfully added; false if the user's rating already exists.


[View source]
abstract def add_to_history(origin : MessageID, receiver : MessageID, receiver_id : UserID) : Nil #

Add a receiver message to the History


[View source]
abstract def add_warning(message : MessageID) : Nil #

Adds a warning to the given message


[View source]
def close #

Cleanup when finished with History

Mainly applicable for implementations using a database


[View source]
abstract def delete_message_group(message : MessageID) : MessageID | Nil #

Delete a message group from the History


[View source]
abstract def expire : Nil #

Deletes old messages from the History

This should be invoked as a recurring task


[View source]
def lifespan : Time::Span #

Returns the Time::Span for which a message can exist before expiring


[View source]
abstract def messages_from_user(user : UserID) : Set(MessageID) #

Get all message IDs sent by a given user for purging messages


[View source]
abstract def new_message(sender_id : UserID, origin : MessageID) : MessageID #

Create a new message group and add it to the History


[View source]
abstract def origin_message(message : MessageID) : MessageID | Nil #

Get the message ID of the original message associated with the given message ID


[View source]
abstract def purge_receivers(messages : Set(MessageID)) : Hash(UserID, Array(MessageID)) #

Get a hash containing an array of message IDs to delete associated with the users who received a message in the given set. Used for the PurgeCommand

NOTE The returned array of message IDs should be sorted in descending order (most recent messages first)


[View source]
abstract def receiver_message(message : MessageID, receiver : UserID) : MessageID | Nil #

Get the original message ID associated with the given message ID and receiver ID


[View source]
abstract def receivers(message : MessageID) : Hash(UserID, MessageID) #

Get a hash of all users and receiver message IDs associated with the given message ID


[View source]
abstract def sender(message : MessageID) : UserID | Nil #

Get the sender of the original message referenced by the given message ID


[View source]
abstract def warned?(message : MessageID) : Bool | Nil #

Returns true if the given message was already warned; false or nil otherwise


[View source]