FILE / ScuroNeko/Laniakea
doc.go
Исходный файл и его история в репозитории.
(fix): compact payload escape, Draft.push validation, plugin logger ownership, worker StopAndWait, getChatLimiter deadlock, runner ctx-after-tick (refactor): remove NewPayload, buildSceneKey from sceneRuntime, unify ToJSON fallback (tests): compact round-trip, Draft.push state, RateLimiter.Cleanup eviction (doc): changelog v1.0.0 rewrite, NewCommand dual-use godoc
34 lines
1.2 KiB
Go
34 lines
1.2 KiB
Go
/*
|
|
Package laniakea provides a modular, extensible framework for building scalable Telegram bots.
|
|
|
|
Core concepts:
|
|
|
|
- Bot manages Telegram API access, update processing, logging, rate limiting, and dependency injection.
|
|
- Plugins group commands, payloads, and non-command update handlers behind shared middleware.
|
|
- MessageContext provides access to the current update and reply/edit/delete helpers.
|
|
- InlineKeyboard builds callback-driven keyboards and structured payloads.
|
|
- DraftProvider accumulates multi-step replies before sending them.
|
|
- L10n stores key-based translations with fallback behavior.
|
|
- Runners execute startup or background tasks alongside the polling loop.
|
|
|
|
Example usage:
|
|
|
|
bot, err := laniakea.NewBot[*mydb.AppData](laniakea.LoadOptsFromEnv())
|
|
if err != nil {
|
|
return err
|
|
}
|
|
bot.SetAppData(myDB).
|
|
AddUpdateType(tgapi.UpdateTypeMessage).
|
|
AddPrefixes("/", "!").
|
|
AddPlugins(&startPlugin, &helpPlugin).
|
|
AddMiddleware(authMiddleware, logMiddleware).
|
|
AddRunner(cleanupRunner).
|
|
SetL10n(l10n.New())
|
|
|
|
return bot.Run()
|
|
|
|
Configure bots, plugins, and localization before starting Run, RunWithContext, or RunWebhookWithContext.
|
|
Runtime accessors are safe for concurrent use unless stated otherwise.
|
|
*/
|
|
package laniakea
|