0

End transition to go project layout

This commit is contained in:
eleksir
2025-10-12 12:57:09 +03:00
parent 79840796f6
commit d527c4ab8f
8 changed files with 199 additions and 237 deletions

90
internal/irc/types.go Normal file
View File

@@ -0,0 +1,90 @@
package irc
// Конфиг.
type MyConfig struct {
Redis struct {
Server string `json:"server,omitempty"`
Port int `json:"port,omitempty"`
Channel string `json:"channel,omitempty"`
MyChannel string `json:"my_channel,omitempty"`
} `json:"redis"`
Irc struct {
Server string `json:"server,omitempty"`
Port int `json:"port,omitempty"`
Ssl bool `json:"ssl,omitempty"`
SslVerify bool `json:"ssl_verify,omitempty"`
Nick string `json:"nick,omitempty"`
User string `json:"user,omitempty"`
Password string `json:"password,omitempty"`
Sasl bool `json:"sasl,omitempty"`
Channels []string `json:"channels"`
RateLimit struct {
Type string `json:"type,omitempty"`
SimpleDelay int `json:"simple_delay,omitempty"`
TokenBucket struct {
Size int `json:"size,omitempty"`
Limit int `json:"limit,omitempty"`
ExpirationTime int64 `json:"expiration_time,omitempty"`
} `json:"token_bucket,omitempty"`
}
}
Loglevel string `json:"loglevel,omitempty"`
Log string `json:"log,omitempty"`
Csign string `json:"csign,omitempty"`
ForwardsMax int64 `json:"forwards_max,omitempty"`
DataDir string `json:"data_dir,omitempty"`
}
// Входящее сообщение из pubsub-канала redis-ки.
type rMsg struct {
From string `json:"from,omitempty"`
Chatid string `json:"chatid,omitempty"`
Userid string `json:"userid,omitempty"`
Threadid string `json:"threadid,omitempty"`
Message string `json:"message,omitempty"`
Plugin string `json:"plugin,omitempty"`
Mode string `json:"mode,omitempty"`
Misc struct {
Answer int64 `json:"answer,omitempty"`
Botnick string `json:"bot_nick,omitempty"`
Csign string `json:"csign,omitempty"`
Fwdcnt int64 `json:"fwd_cnt,omitempty"`
GoodMorning int64 `json:"good_morning,omitempty"`
Msgformat int64 `json:"msg_format,omitempty"`
Username string `json:"username,omitempty"`
} `json:"Misc"`
}
// Исходящее сообщение в pubsub-канал redis-ки.
type sMsg struct {
From string `json:"from"`
Chatid string `json:"chatid"`
Userid string `json:"userid"`
Threadid string `json:"threadid"`
Message string `json:"message"`
Plugin string `json:"plugin"`
Mode string `json:"mode"`
Misc struct {
Answer int64 `json:"answer"`
Botnick string `json:"bot_nick"`
Csign string `json:"csign"`
Fwdcnt int64 `json:"fwd_cnt"`
GoodMorning int64 `json:"good_morning"`
Msgformat int64 `json:"msg_format"`
Username string `json:"username"`
} `json:"misc"`
}
// TODO: Имплементировать тип сообщения - privmsg или action.
type iMsg struct {
ChatID string
Text string
}
// "Ведёрко" для реализации ограничителя скорости отправки исходящих сообщений - Token Bucket.
type bucket struct {
Timestamps []int64
IsFull bool
}
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */