Stalinon.Bot.Observability
1.0.4
dotnet add package Stalinon.Bot.Observability --version 1.0.4
NuGet\Install-Package Stalinon.Bot.Observability -Version 1.0.4
<PackageReference Include="Stalinon.Bot.Observability" Version="1.0.4" />
<PackageVersion Include="Stalinon.Bot.Observability" Version="1.0.4" />
<PackageReference Include="Stalinon.Bot.Observability" />
paket add Stalinon.Bot.Observability --version 1.0.4
#r "nuget: Stalinon.Bot.Observability, 1.0.4"
#:package Stalinon.Bot.Observability@1.0.4
#addin nuget:?package=Stalinon.Bot.Observability&version=1.0.4
#tool nuget:?package=Stalinon.Bot.Observability&version=1.0.4
Bot
Минимальный фреймворк для создания Telegram-ботов на .NET.
Быстрый старт
- Установите .NET 8 SDK.
- Клонируйте репозиторий и перейдите в каталог проекта:
git clone <repo-url> cd bot - Создайте бота через @BotFather и получите токен.
- Запустите пример HelloBot с вашим токеном:
cd Stalinon.Bot.Examples.HelloBot export BOT_TOKEN="<ваш-токен>" dotnet run - Отправьте
/startв Telegram — бот ответит «Hello».
Настройки можно менять в appsettings.json или через переменные окружения.
Шаблоны
Доступен один шаблон: dotnet new bot.
Основные параметры:
--transport polling|webhook— способ получения обновлений (по умолчанию polling);--public-url <url>— публичный URL для вебхука;--webhook-secret <строка>— секрет вебхука (по умолчанию случайный GUID);--store file|redis|ef— хранилище состояния (fileпо умолчанию);--redis <строка>— строка подключения Redis;--ef-provider postgres|sqlite— провайдер EF Core;--ef-conn <строка>— строка подключения EF Core;--admin— включить административное API;--webapp— добавить точки Mini App;--lang ru|en— язык исходников и комментариев;--bot-token <токен>— токен бота (можно задать позже черезBOT_TOKEN).
JetBrains Rider
Установленные шаблоны доступны в мастере New Solution. После dotnet new install перезапустите Rider и выберите bot среди шаблонов .NET.
Скрипты быстрого старта
scripts/quickstart.sh и scripts/quickstart.ps1 проверяют работоспособность шаблона:
устанавливают его, запускают сгенерированный бот и вызывают набор тестовых команд.
Упаковка NuGet-пакетов
Для сборки NuGet-пакетов используйте scripts/pack.sh на Linux и macOS или scripts/pack.ps1 на Windows.
Скрипт восстанавливает зафиксированные зависимости и собирает пакеты в конфигурации Release.
Переключение хранилища
Тип хранилища выбирается переменной Storage__Provider (file, redis или ef).
Прочие параметры задаются в секции Storage.
Административное API
API включено по умолчанию. Для запросов необходим заголовок X-Admin-Token,
значение берётся из секции Admin или переменной Admin__AdminToken.
Дополнительные переменные окружения
QUEUE__POLICY— политика переполнения очереди (WaitилиDrop);STOP__DRAIN_TIMEOUT_SECONDS— таймаут ожидания при остановке;OBS__EXPORT__OTLP— включение OTLP-экспортёра наблюдаемости;OUTBOX__PATH— каталог для хранения сообщений аутбокса.
Документация
Настройки Mini App
WebApp__PublicUrl— публичный URL страницы;WebApp__AuthTtlSeconds— срок жизни JWT в секундах;WebApp__InitDataTtlSeconds— время жизни параметраinitData;WebApp__Csp__AllowedOrigins__0— дополнительный origin для CSP.
Лидерборды на Redis
using Stalinon.Bot.Storage.Redis;
var options = new RedisOptions { Connection = mux, Database = 0, Prefix = "lb" };
var board = new RedisSortedSet<Player>(options);
await board.AddAsync("game", new Player("Alice"), 1200, ct);
await board.AddAsync("game", new Player("Bob"), 1500, ct);
var top = await board.RangeByScoreAsync("game", 0, double.MaxValue, ct);
public sealed record Player(string Name);
Значения сериализуются в JSON и сохраняются с указанным префиксом ключей.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.8)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.12.0)
- OpenTelemetry.Extensions.Hosting (>= 1.12.0)
- Stalinon.Bot.Abstractions (>= 1.0.4)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Stalinon.Bot.Observability:
| Package | Downloads |
|---|---|
|
Stalinon.Bot.Hosting
Package Description |
|
|
Stalinon.Bot.Telegram
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.