class PrivateParlorXT::UpvoteHandler

Overview

A command-like HearsHandler used for upvote messages sent by other users.

Defined in:

private-parlor-xt/handlers/hears_handlers/upvote_handler.cr

Instance Method Summary

Instance methods inherited from class PrivateParlorXT::HearsHandler

deny_user(user : User, services : Services) : Nil deny_user, karma_reason(reason : String | Nil, karma_reply : String, services : Services) : String karma_reason, truncate_karma_reason(reason : String | Nil) : String | Nil truncate_karma_reason

Instance methods inherited from class PrivateParlorXT::Handler

do(message : Tourmaline::Message, services : Services) : Nil do, reply_message(user : User, message : Tourmaline::Message, services : Services) : Tourmaline::Message | Nil reply_message, reply_user(user : User, reply_message : Tourmaline::Message, services : Services) : User | Nil reply_user, unique?(user : User, message : Tourmaline::Message, services : Services, text : String | Nil = nil) : Bool unique?, update_user_activity(user : User, services : Services) : Nil update_user_activity

Constructor methods inherited from class PrivateParlorXT::Handler

new(config : Config) new

Instance Method Detail

def authorized?(user : User, message : Tourmaline::Message, authority : CommandPermissions, services : Services) : Bool #

Checks if the user is authorized to upvote a message

Returns true if so, false otherwise


[View source]
def do(message : Tourmaline::Message, services : Services) : Nil #

Upvotes the message that the given message replies to if it meets requirements


[View source]
def karma_level_up(reply_user : User, reply_parameters : ReplyParameters | Nil, services : Services) : Nil #

Checks if the user has gained a karma level when karma levels are set, and if so, queues a 'leveled up' response


[View source]
def record_message_statistics(services : Services) : Nil #

Records message statistics about upvotes if the Statistics module is enabled


[View source]
def send_replies(user : User, reply_user : User, message : Tourmaline::Message, reply : Tourmaline::Message, services : Services) : Nil #

Queues 'gave upvote' and 'got upvoted' replies for the user and reply_user, respectively

Includes a reason for the upvote if karma reasons are enabled.


[View source]
def spamming?(user : User, message : Tourmaline::Message, services : Services) : Bool #

Checks if the user is spamming upvotes

Returns true if the user is spamming upvotes, false otherwise


[View source]
def upvote_message(user : User, reply_user : User, message : Tourmaline::Message, reply : Tourmaline::Message, services : Services) : Bool #

Adds user's upvote to message history and update reply_user's karma Returns false if user has already upvoted the message or user attempted to give himself karma


[View source]
def user_from_message(message : Tourmaline::Message, services : Services) : User | Nil #

Returns the User associated with the message if the User could be found in the Database. This will also update the User's username and realname if they have changed since the last message.

Returns nil if:

  • Message has no sender
  • User does not exist in the Database
  • User cannot use a command due to being blacklisted

[View source]