0
Files
aleesa-irc-go/globals.go
eleksir 8c24a1d8c6 Implement grabbing +B flag, connect command sequence fixes
* Implement i-am-bot, +B, flag grabbing.
* Move collections to internal packages.
* Postpone nickserv login sequence to 376 and 422 events, as it should be after motd message
* Postpone join channels to 376 and 422 events, as it should be after motd message
2025-03-30 15:41:46 +03:00

60 lines
2.1 KiB
Go

package main
import (
"context"
"os"
"aleesa-irc-go/internal/anycollection"
"aleesa-irc-go/internal/boolcollection"
"github.com/cockroachdb/pebble"
"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
// Мапка с открытыми дескрипторами баз с настройками
var settingsDB = make(map[string]*pebble.DB)
// "Базюлька" с 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: */