Introduction
Nuget package TelegramModularFramework
Quick start
Services
Framework uses .NET Generic Host
var host = Host.CreateDefaultBuilder(args);
<services init>
await host.RunAsync();
Asp Net host can be used too with builder.Host
To add framework to host configure it with:
- ConfigureTelegramBotHost
Used to add basics services add start receiving updates and routing events with TelegramBotEvents
host.ConfigureTelegramBotHost((context, c) =>
{
c.TelegramBotClientOptions = new TelegramBotClientOptions(context.Configuration["Telegram:Token"]);
})
- AddTelegramModulesService
Used to add Modules and process updates
host.AddTelegramModulesService((context, c) => {
// Configuration
})
To add modules, set bot commands, handle post execution you need to create Hosted Service
public class TelegramHandler: BackgroundService
{
private readonly TelegramBotEvents _events;
private readonly ILogger<TelegramHandler> _logger;
private readonly TelegramModulesService _modulesService;
public TelegramHandler(TelegramBotEvents events, ILogger<TelegramHandler> logger, TelegramModulesService modulesService)
{
_events = events;
_logger = logger;
_modulesService = modulesService;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
_events.OnUpdate += _modulesService.HandleUpdateAsync;
_modulesService.AddModules();
await _modulesService.SetMyCommands();
}
}
host.ConfigureServices(services =>
{
services.AddHostedService<TelegramHandler>();
});
For more examples see SimpleBot guide and samples