56 lines
1.9 KiB
Go
56 lines
1.9 KiB
Go
package irc
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
|
|
"aleesa-irc-go/internal/anycollection"
|
|
"aleesa-irc-go/internal/boolcollection"
|
|
|
|
"github.com/go-redis/redis/v8"
|
|
irc "github.com/thoj/go-ircevent"
|
|
)
|
|
|
|
// Config - это у нас глобальная штука :).
|
|
var Config MyConfig
|
|
|
|
// To break circular message forwarding we must set some sane default, it can be overridden via config.
|
|
var forwardMax int64 = 5
|
|
|
|
// Объектики irc-клиента.
|
|
var ircClient *irc.Connection
|
|
var nickIsUsed = false
|
|
|
|
// Объектики клиента-редиски.
|
|
var RedisClient *redis.Client
|
|
var Subscriber *redis.PubSub
|
|
|
|
// Main context.
|
|
var ctx = context.Background()
|
|
|
|
// Ставится в true, если мы получили сигнал на выключение.
|
|
var Shutdown = false
|
|
|
|
// Канал, в который приходят уведомления для хэндлера сигналов от траппера сигналов.
|
|
var SigChan = make(chan os.Signal, 1)
|
|
|
|
// Канал, в который пишутся сообщения для отправки в IRC в обычном порядке.
|
|
var imChan = make(chan iMsg, 10000)
|
|
|
|
// Канал, в который пишутся сообщения для отправки в IRC, если ограничений нет (у бота +o или +v на канале).
|
|
var imChanUnrestricted = make(chan iMsg, 100)
|
|
|
|
// "Ведёрко" с timestamp-ами последних отправленных сообщений.
|
|
var msgBucket bucket
|
|
|
|
// "Базюлька" с MODE-ами пользователей на каналах.
|
|
var UserMode = anycollection.NewCollection()
|
|
|
|
// "Базюлька" с доступными MODE-ами пользователя.
|
|
var availableUserModes = boolcollection.NewCollection()
|
|
|
|
// "Базюлька" c с доступными MODE-ами каналов.
|
|
var availableChanModes = boolcollection.NewCollection()
|
|
|
|
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */
|