feat: sync built-in sticker bot
This commit is contained in:
parent
7096625e13
commit
6867d201ed
60 changed files with 7063 additions and 144 deletions
|
|
@ -6,8 +6,8 @@
|
|||
//
|
||||
// 用法:
|
||||
//
|
||||
// go run ./cmd/botcheck -token "<bot_id>:<secret>" # 仅登录自检
|
||||
// go run ./cmd/botcheck -token "<bot_id>:<secret>" -echo # 自检后持续 echo
|
||||
// go run ./cmd/bots/botcheck -token "<bot_id>:<secret>" # 仅登录自检
|
||||
// go run ./cmd/bots/botcheck -token "<bot_id>:<secret>" -echo # 自检后持续 echo
|
||||
//
|
||||
// 连接生产 telesrv(obfuscated TCP)靠 DCOption.TCPObfuscatedOnly=true,
|
||||
// gotd dcs.Plain 据此自动走 MTProto TCP obfuscation。
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
//
|
||||
// 用法示例(向超级群定时轮流发文本/图片/图文,每 15s 一条):
|
||||
//
|
||||
// go run ./cmd/botdemo \
|
||||
// go run ./cmd/bots/botdemo \
|
||||
// -token "<bot_id>:<secret>" \
|
||||
// -chat <channel_id> -chat-hash <access_hash> \
|
||||
// -interval 15s -mode rotate
|
||||
|
|
@ -60,6 +60,7 @@ import (
|
|||
"telesrv/internal/store/postgres"
|
||||
"telesrv/internal/store/redisstore"
|
||||
"telesrv/internal/turnsrv"
|
||||
"telesrv/internal/web/stickerlinks"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
|
@ -405,11 +406,22 @@ func run(logger *zap.Logger) error {
|
|||
// userCache 与 users 服务共享同一实例:bot 元数据写入(version bump)后必须
|
||||
// 失效缓存,否则 TTL 内 getUsers 回旧 first_name/旧 bot_info_version。
|
||||
userCache := redisstore.NewUserCache(rdb, redisstore.DefaultUserCacheTTL)
|
||||
accountService := account.NewService(passwordStore,
|
||||
account.WithReactionSettings(passwordStore),
|
||||
account.WithAccountSettings(passwordStore),
|
||||
account.WithNotifySettings(passwordStore),
|
||||
account.WithStickerCollections(passwordStore),
|
||||
account.WithUserStickerSets(passwordStore),
|
||||
account.WithSavedMusic(passwordStore),
|
||||
account.WithBusinessAutomation(passwordStore),
|
||||
account.WithUsers(userStore))
|
||||
botsService := botsapp.NewService(userStore, botStore, messageStore,
|
||||
botsapp.WithLogger(logger.Named("bots")),
|
||||
botsapp.WithBlockChecker(contactStore),
|
||||
botsapp.WithPublicChannelUsernameResolver(channelStore),
|
||||
botsapp.WithUserCache(userCache))
|
||||
botsapp.WithUserCache(userCache),
|
||||
botsapp.WithStickerSetCreator(filesService),
|
||||
botsapp.WithUserStickerSets(accountService))
|
||||
groupCallStore := postgres.NewGroupCallStore(pool)
|
||||
groupCallsService := groupcallsapp.NewService(groupCallStore)
|
||||
// 群通话媒体面:内嵌 pion SFU(M1+)。SFU 的 liveness reporter 把媒体面存活
|
||||
|
|
@ -517,14 +529,6 @@ func run(logger *zap.Logger) error {
|
|||
messageapp.WithBusinessAutomation(passwordStore, businessAutomationOptions...),
|
||||
)
|
||||
authService := auth.NewService(userStore, authzStore, codeStore, authKeyStore, tempAuthKeyStore, cfg.DevAuthCode, auth.WithLoginMessages(messageStore, dialogStore), auth.WithPasswords(passwordStore), auth.WithBotLogin(botStore), auth.WithPremiumGrant(cfg.PremiumGrantMonths))
|
||||
accountService := account.NewService(passwordStore,
|
||||
account.WithReactionSettings(passwordStore),
|
||||
account.WithAccountSettings(passwordStore),
|
||||
account.WithNotifySettings(passwordStore),
|
||||
account.WithStickerCollections(passwordStore),
|
||||
account.WithSavedMusic(passwordStore),
|
||||
account.WithBusinessAutomation(passwordStore),
|
||||
account.WithUsers(userStore))
|
||||
updatesService := updates.NewService(updateStateStore, updateEventStore, updates.WithLogger(logger.Named("app").Named("updates")))
|
||||
router := rpc.New(rpc.Config{
|
||||
DC: cfg.DC,
|
||||
|
|
@ -625,6 +629,12 @@ func run(logger *zap.Logger) error {
|
|||
if _, err := adminapi.Start(ctx, adminapi.Config{Addr: cfg.AdminAPIAddr, Token: cfg.AdminAPIToken}, adminService, logger.Named("adminapi")); err != nil {
|
||||
return fmt.Errorf("start admin api: %w", err)
|
||||
}
|
||||
if _, err := stickerlinks.Start(ctx, stickerlinks.Config{
|
||||
Addr: cfg.StickerWebAddr,
|
||||
PublicBaseURL: cfg.StickerWebPublicURL,
|
||||
}, filesService, logger.Named("stickerlinks")); err != nil {
|
||||
return fmt.Errorf("start sticker links: %w", err)
|
||||
}
|
||||
|
||||
srv := mtprotoedge.New(mtprotoedge.Options{
|
||||
Logger: logger.Named("mtprotoedge"),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue