Stalinon.Bot.Scheduler
1.0.4
dotnet add package Stalinon.Bot.Scheduler --version 1.0.4
NuGet\Install-Package Stalinon.Bot.Scheduler -Version 1.0.4
<PackageReference Include="Stalinon.Bot.Scheduler" Version="1.0.4" />
<PackageVersion Include="Stalinon.Bot.Scheduler" Version="1.0.4" />
<PackageReference Include="Stalinon.Bot.Scheduler" />
paket add Stalinon.Bot.Scheduler --version 1.0.4
#r "nuget: Stalinon.Bot.Scheduler, 1.0.4"
#:package Stalinon.Bot.Scheduler@1.0.4
#addin nuget:?package=Stalinon.Bot.Scheduler&version=1.0.4
#tool nuget:?package=Stalinon.Bot.Scheduler&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
- Cronos (>= 0.7.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.8)
- Stalinon.Bot.Abstractions (>= 1.0.4)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Stalinon.Bot.Scheduler:
Package | Downloads |
---|---|
Stalinon.Bot.Hosting
Package Description |
|
Stalinon.Bot.TestKit
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.