module Circed::Utils::IrcUtils

Overview

Consolidated IRC utilities to eliminate duplicate validation and helper code

Defined in:

circed/utils/irc_utils.cr

Class Method Summary

Class Method Detail

def self.channel_repository #

[View source]
def self.extract_channel_name(param : String) : String | Nil #

Extract channel name from IRC message parameter


[View source]
def self.extract_nickname_from_hostmask(hostmask : String) : String | Nil #

Extract nickname from hostmask


[View source]
def self.format_hostmask(nickname : String, username : String, hostname : String) : String #

Format hostmask efficiently (moved from UnifiedMessaging)


[View source]
def self.send_bad_channel_key_error(sender : Client, channel_name : String) #

[View source]
def self.send_banned_from_channel_error(sender : Client, channel_name : String) #

[View source]
def self.send_cannot_send_to_channel_error(sender : Client, channel_name : String) #

[View source]
def self.send_channel_error(sender : Client, channel_name : String) #

[View source]
def self.send_channel_full_error(sender : Client, channel_name : String) #

[View source]
def self.send_invite_only_error(sender : Client, channel_name : String) #

[View source]
def self.send_nickname_in_use_error(sender : Client, nickname : String) #

[View source]
def self.send_no_such_channel_error(sender : Client, channel_name : String) #

[View source]
def self.send_no_such_nick_error(sender : Client, nickname : String) #

Common error sending helpers


[View source]
def self.send_not_on_channel_error(sender : Client, channel_name : String) #

[View source]
def self.send_not_operator_error(sender : Client, channel_name : String) #

[View source]
def self.send_not_registered_error(sender : Client) #

[View source]
def self.send_user_on_channel_error(sender : Client, channel_name : String) #

[View source]
def self.send_users_dont_match_error(sender : Client) #

[View source]
def self.server_repository #

[View source]
def self.user_can_modify_channel?(channel : Domain::Channel, nickname : String) : Bool #

Check if user can modify channel (operator or higher)


[View source]
def self.user_has_channel_mode?(channel : Domain::Channel, nickname : String, mode : Char) : Bool #

Check if a user has a specific mode in a channel


[View source]
def self.user_is_operator?(channel : Domain::Channel, nickname : String) : Bool #

Check if user is operator in channel


[View source]
def self.user_is_voiced?(channel : Domain::Channel, nickname : String) : Bool #

Check if user is voiced in channel


[View source]
def self.user_repository #

Common repository access helpers


[View source]
def self.valid_channel_mode?(mode : Char) : Bool #

Channel mode validation


[View source]
def self.valid_channel_name?(channel_name : String) : Bool #

Channel validation utilities


[View source]
def self.valid_nickname?(nickname : String) : Bool #

Nickname validation utilities


[View source]
def self.valid_user_mode?(mode : Char) : Bool #

User mode validation


[View source]
def self.validate_channel_name(sender : Client, channel_name : String) : Bool #

Validate channel name and send error if invalid


[View source]