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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Stalinon.Bot.Scheduler" Version="1.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Stalinon.Bot.Scheduler" Version="1.0.4" />
                    
Directory.Packages.props
<PackageReference Include="Stalinon.Bot.Scheduler" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Stalinon.Bot.Scheduler --version 1.0.4
                    
#r "nuget: Stalinon.Bot.Scheduler, 1.0.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Stalinon.Bot.Scheduler@1.0.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Stalinon.Bot.Scheduler&version=1.0.4
                    
Install as a Cake Addin
#tool nuget:?package=Stalinon.Bot.Scheduler&version=1.0.4
                    
Install as a Cake Tool

Bot

Минимальный фреймворк для создания Telegram-ботов на .NET.

Быстрый старт

  1. Установите .NET 8 SDK.
  2. Клонируйте репозиторий и перейдите в каталог проекта:
    git clone <repo-url>
    cd bot
    
  3. Создайте бота через @BotFather и получите токен.
  4. Запустите пример HelloBot с вашим токеном:
    cd Stalinon.Bot.Examples.HelloBot
    export BOT_TOKEN="<ваш-токен>"
    dotnet run
    
  5. Отправьте /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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.

Version Downloads Last Updated
1.0.4 155 9/13/2025
1.0.3 142 9/13/2025
1.0.2 139 9/13/2025
1.0.1 103 9/12/2025