5 Commits

Author SHA1 Message Date
Rikitav 7650bf13e4 Update README.md 2026-05-01 21:20:19 +04:00
gutii 832e121af5 * Updated dependencies 2026-05-01 21:06:52 +04:00
gutii e9569545d8 * Added missing summaries 2026-05-01 20:50:56 +04:00
gutii 39f9abd9de * Added WideBotOptions
* Added ConfigureWideBot method
* Refactored `AddWideTelegrator` method
* Added `dbConnectionFactory`
2026-05-01 20:48:32 +04:00
gutii 6453e42d06 * Added link to new documenation site to README 2026-04-29 23:38:38 +04:00
18 changed files with 232 additions and 66 deletions
+5 -1
View File
@@ -8,6 +8,10 @@ Telegrator is a modern C# framework for building Telegram bots, inspired by AOP
---
## Learn and Docs
Learn Telegrator on [Official documentation site](https://rikitav.github.io/telegrator.docs).
The documentation may not be completely transparent, informative or even actual to latest version, so if you have any questions or problems, please write them in the [Telegram.Bot](https://t.me/joinchat/B35YY0QbLfd034CFnvCtCA) group. I am a member of this group and will notice you! If you have any suggestions or want to participate in building documentation, make push requests and open issues on this repository!
---
@@ -124,7 +128,7 @@ bot.Handlers.AddHandler<StateKeepFirst>();
## 📚 Documentation & Examples
- [Documentation](https://github.com/Rikitav/Telegrator/wiki/)
- [Documentation](https://rikitav.github.io/telegrator.docs)
- [Usage examples (WIP)](https://github.com/Rikitav/Telegrator/tree/master/examples)
---
+31 -31
View File
@@ -4,41 +4,12 @@
<name>Telegrator.Hosting.Web</name>
</assembly>
<members>
<member name="T:Telegrator.Hosting.Web.WebhookerOptions">
<summary>
Configuration options for Telegram bot behavior and execution settings.
Controls various aspects of bot operation including concurrency, routing, webhook receiving, and execution policies.
</summary>
</member>
<member name="P:Telegrator.Hosting.Web.WebhookerOptions.WebhookUri">
<summary>
Gets or sets HTTPS URL to send updates to. Use an empty string to remove webhook integration
</summary>
</member>
<member name="P:Telegrator.Hosting.Web.WebhookerOptions.SecretToken">
<summary>
A secret token to be sent in a header “X-Telegram-Bot-Api-Secret-Token” in every webhook request, 1-256 characters.
Only characters A-Z, a-z, 0-9, _ and - are allowed.
The header is useful to ensure that the request comes from a webhook set by you.
</summary>
</member>
<member name="P:Telegrator.Hosting.Web.WebhookerOptions.MaxConnections">
<summary>
The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to 40.
Use lower values to limit the load on your bot's server, and higher values to increase your bot's throughput.
</summary>
</member>
<member name="P:Telegrator.Hosting.Web.WebhookerOptions.DropPendingUpdates">
<summary>
Pass true to drop all pending updates
</summary>
</member>
<member name="T:Telegrator.Mediation.HostedUpdateWebhooker">
<summary>
Service for receiving updates for Hosted telegram bots via Webhooks and queuing them to router
</summary>
</member>
<member name="M:Telegrator.Mediation.HostedUpdateWebhooker.#ctor(Telegram.Bot.ITelegramBotClient,Telegrator.Core.IUpdateRouter,Microsoft.Extensions.Options.IOptions{Telegrator.Hosting.Web.WebhookerOptions})">
<member name="M:Telegrator.Mediation.HostedUpdateWebhooker.#ctor(Telegram.Bot.ITelegramBotClient,Telegrator.Core.IUpdateRouter,Microsoft.Extensions.Options.IOptions{Telegrator.WebhookerOptions})">
<summary>
Initiallizes new instance of <see cref="T:Telegrator.Mediation.HostedUpdateWebhooker"/>
</summary>
@@ -95,7 +66,7 @@
Provides method to configure Telegram Bot WebHost
</summary>
</member>
<member name="M:Telegrator.WebServicesCollectionExtensions.ConfigureWebhooker(Microsoft.Extensions.DependencyInjection.IServiceCollection,Telegrator.Hosting.Web.WebhookerOptions)">
<member name="M:Telegrator.WebServicesCollectionExtensions.ConfigureWebhooker(Microsoft.Extensions.DependencyInjection.IServiceCollection,Telegrator.WebhookerOptions)">
<summary>
Adds WebhookerOptions to services
</summary>
@@ -138,5 +109,34 @@
<param name="services"></param>
<returns></returns>
</member>
<member name="T:Telegrator.WebhookerOptions">
<summary>
Configuration options for Telegram bot behavior and execution settings.
Controls various aspects of bot operation including concurrency, routing, webhook receiving, and execution policies.
</summary>
</member>
<member name="P:Telegrator.WebhookerOptions.WebhookUri">
<summary>
Gets or sets HTTPS URL to send updates to. Use an empty string to remove webhook integration
</summary>
</member>
<member name="P:Telegrator.WebhookerOptions.SecretToken">
<summary>
A secret token to be sent in a header “X-Telegram-Bot-Api-Secret-Token” in every webhook request, 1-256 characters.
Only characters A-Z, a-z, 0-9, _ and - are allowed.
The header is useful to ensure that the request comes from a webhook set by you.
</summary>
</member>
<member name="P:Telegrator.WebhookerOptions.MaxConnections">
<summary>
The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to 40.
Use lower values to limit the load on your bot's server, and higher values to increase your bot's throughput.
</summary>
</member>
<member name="P:Telegrator.WebhookerOptions.DropPendingUpdates">
<summary>
Pass true to drop all pending updates
</summary>
</member>
</members>
</doc>
+38 -4
View File
@@ -13,7 +13,7 @@
<param name="updateRouter"></param>
<param name="options"></param>
</member>
<member name="M:Telegrator.Mediation.HostedWideBotUpdateReceiver.#ctor(Microsoft.Extensions.Logging.ILogger{Telegrator.Mediation.HostedWideBotUpdateReceiver},Telegram.Bot.ITelegramBotClient,Telegrator.Core.IUpdateRouter,Microsoft.Extensions.Options.IOptions{Telegram.Bot.Polling.ReceiverOptions})">
<member name="M:Telegrator.Mediation.HostedWideBotUpdateReceiver.#ctor(Microsoft.Extensions.Logging.ILogger{Telegrator.Mediation.HostedWideBotUpdateReceiver},Telegram.Bot.ITelegramBotClient,Telegrator.Core.IUpdateRouter,Microsoft.Extensions.Options.IOptions{Telegrator.WideBotOptions})">
<summary>
Service for receiving updates for Hosted wide telegram bots and queuing them to router
</summary>
@@ -119,17 +119,17 @@
Provides extension methods for <see cref="T:Microsoft.Extensions.Hosting.IHostApplicationBuilder"/> to configure Telegrator.
</summary>
</member>
<member name="M:Telegrator.WideHostBuilderExtensions.AddWideTelegrator(Microsoft.Extensions.Hosting.IHostApplicationBuilder,Telegrator.TelegratorOptions,Telegrator.Core.IHandlersCollection,System.Action{Telegrator.Hosting.ITelegramBotHostBuilder})">
<member name="M:Telegrator.WideHostBuilderExtensions.AddWideTelegrator(Microsoft.Extensions.Hosting.IHostApplicationBuilder,System.Func{System.IServiceProvider,System.Data.Common.DbConnection},System.Action{Telegrator.Hosting.ITelegramBotHostBuilder},Telegrator.TelegratorOptions,Telegrator.Core.IHandlersCollection)">
<summary>
Replaces TelegramBotHostBuilder. Configures DI, options, and handlers.
</summary>
</member>
<member name="M:Telegrator.WideHostBuilderExtensions.AddWideTelegrator(Microsoft.Extensions.Hosting.IHostApplicationBuilder,Telegrator.TelegratorOptions,Telegrator.Core.IHandlersCollection)">
<member name="M:Telegrator.WideHostBuilderExtensions.AddWideTelegrator(Microsoft.Extensions.Hosting.IHostApplicationBuilder,System.Func{System.IServiceProvider,System.Data.Common.DbConnection},Telegrator.TelegratorOptions,Telegrator.Core.IHandlersCollection)">
<summary>
Replaces TelegramBotHostBuilder. Configures DI, options, and handlers.
</summary>
</member>
<member name="M:Telegrator.WideHostBuilderExtensions.AddWideTelegratorInternal(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Collections.Generic.IDictionary{System.Object,System.Object},Telegrator.Core.IHandlersCollection@,Telegrator.TelegratorOptions)">
<member name="M:Telegrator.WideHostBuilderExtensions.AddWideTelegratorInternal(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Collections.Generic.IDictionary{System.Object,System.Object},System.Func{System.IServiceProvider,System.Data.Common.DbConnection},Telegrator.Core.IHandlersCollection@,Telegrator.TelegratorOptions)">
<summary>
Replaces TelegramBotHostBuilder. Configures DI, options, and handlers.
</summary>
@@ -148,6 +148,14 @@
<param name="options"></param>
<returns></returns>
</member>
<member name="M:Telegrator.WideBotServiceCollectionExtensions.ConfigureWideBot(Microsoft.Extensions.DependencyInjection.IServiceCollection,Telegrator.WideBotOptions)">
<summary>
Adds WTelegramBotClientOptions to services
</summary>
<param name="services"></param>
<param name="options"></param>
<returns></returns>
</member>
<member name="M:Telegrator.WideBotServiceCollectionExtensions.AddMTProtoUpdateReceiver(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Boolean)">
<summary>
Adds WTelegramBotClient
@@ -167,5 +175,31 @@
Initializes the bot and logs handlers on application startup.
</summary>
</member>
<member name="T:Telegrator.WideBotOptions">
<summary>
Represents configuration options for initializing and customizing the behavior of a WideBot instance.
</summary>
<remarks>Use this class to specify required API credentials, optional proxy settings, update handling
preferences, and SQL command detection for WideBot. All required properties must be set before using the options
with a WideBot instance.
</remarks>
</member>
<member name="P:Telegrator.WideBotOptions.ApiId">
<inheritdoc cref="P:Telegram.Bot.WTelegramBotClientOptions.ApiId"/>
</member>
<member name="P:Telegrator.WideBotOptions.ApiHash">
<inheritdoc cref="P:Telegram.Bot.WTelegramBotClientOptions.ApiHash"/>
</member>
<member name="P:Telegrator.WideBotOptions.MTProxy">
<inheritdoc cref="P:Telegram.Bot.WTelegramBotClientOptions.MTProxy"/>
</member>
<member name="P:Telegrator.WideBotOptions.SqlCommands">
<inheritdoc cref="P:Telegram.Bot.WTelegramBotClientOptions.SqlCommands"/>
</member>
<member name="P:Telegrator.WideBotOptions.DropPendingUpdates">
<summary>
Gets or sets a value indicating whether pending updates should be discarded.
</summary>
</member>
</members>
</doc>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Telegrator.Localized</name>
</assembly>
<members>
</members>
</doc>
@@ -13,6 +13,9 @@
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<EnableNETAnalyzers>True</EnableNETAnalyzers>
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
<IncludeSymbols>True</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<SignAssembly>False</SignAssembly>
<Title>Telegrator.RedisStateStorage</Title>
<Version>1.16.6</Version>
@@ -8,7 +8,6 @@ using System.Text.Json;
using Telegram.Bot;
using Telegram.Bot.Types;
using Telegrator.Core;
using Telegrator.Hosting.Web;
namespace Telegrator.Mediation;
@@ -13,9 +13,12 @@
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<EnableNETAnalyzers>True</EnableNETAnalyzers>
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
<IncludeSymbols>True</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<SignAssembly>False</SignAssembly>
<Title>Telegrator.Hosting.Web</Title>
<Version>1.17.0</Version>
<Version>1.17.1</Version>
<Authors>Rikitav Tim4ik</Authors>
<Company>Rikitav Tim4ik</Company>
<RepositoryUrl>https://github.com/Rikitav/Telegrator</RepositoryUrl>
@@ -9,7 +9,6 @@ using System.Diagnostics.CodeAnalysis;
using Telegram.Bot;
using Telegrator.Core;
using Telegrator.Hosting;
using Telegrator.Hosting.Web;
using Telegrator.Mediation;
using Telegrator.Providers;
@@ -1,6 +1,6 @@
using System.Diagnostics.CodeAnalysis;
namespace Telegrator.Hosting.Web;
namespace Telegrator;
/// <summary>
/// Configuration options for Telegram bot behavior and execution settings.
@@ -14,7 +14,7 @@ namespace Telegrator.Mediation;
/// <param name="botClient"></param>
/// <param name="updateRouter"></param>
/// <param name="options"></param>
public class HostedWideBotUpdateReceiver(ILogger<HostedWideBotUpdateReceiver> logger, ITelegramBotClient botClient, IUpdateRouter updateRouter, IOptions<ReceiverOptions>? options) : BackgroundService
public class HostedWideBotUpdateReceiver(ILogger<HostedWideBotUpdateReceiver> logger, ITelegramBotClient botClient, IUpdateRouter updateRouter, IOptions<WideBotOptions>? options) : BackgroundService
{
/// <inheritdoc/>
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
@@ -13,9 +13,12 @@
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<EnableNETAnalyzers>True</EnableNETAnalyzers>
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
<IncludeSymbols>True</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<SignAssembly>False</SignAssembly>
<Title>Telegrator.Hosting.WideBot</Title>
<Version>1.17.0</Version>
<Version>1.17.1</Version>
<Authors>Rikitav Tim4ik</Authors>
<Company>Rikitav Tim4ik</Company>
<RepositoryUrl>https://github.com/Rikitav/Telegrator</RepositoryUrl>
@@ -27,7 +30,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="WTelegramBot" Version="9.5.1" />
<PackageReference Include="WTelegramBot" Version="9.6.0" />
</ItemGroup>
<ItemGroup>
@@ -15,6 +15,7 @@ using Telegrator.Providers;
using WUpdate = WTelegram.Types.Update;
using TLUpdate = TL.Update;
using System.Data.Common;
namespace Telegrator;
@@ -92,9 +93,9 @@ public static class WideHostBuilderExtensions
/// <summary>
/// Replaces TelegramBotHostBuilder. Configures DI, options, and handlers.
/// </summary>
public static IHostApplicationBuilder AddWideTelegrator(this IHostApplicationBuilder builder, TelegratorOptions? options = null, IHandlersCollection? handlers = null, Action<ITelegramBotHostBuilder>? action = null)
public static IHostApplicationBuilder AddWideTelegrator(this IHostApplicationBuilder builder, Func<IServiceProvider, DbConnection> dbConnectionFactory, Action<ITelegramBotHostBuilder>? action = null, TelegratorOptions? options = null, IHandlersCollection? handlers = null)
{
AddWideTelegratorInternal(builder.Services, builder.Configuration, builder.Properties, ref handlers, options);
AddWideTelegratorInternal(builder.Services, builder.Configuration, builder.Properties, dbConnectionFactory, ref handlers, options);
action?.Invoke(new TelegramBotHostBuilder(builder, handlers));
return builder;
}
@@ -102,16 +103,16 @@ public static class WideHostBuilderExtensions
/// <summary>
/// Replaces TelegramBotHostBuilder. Configures DI, options, and handlers.
/// </summary>
public static IHostApplicationBuilder AddWideTelegrator(this IHostApplicationBuilder builder, TelegratorOptions? options = null, IHandlersCollection? handlers = null)
public static IHostApplicationBuilder AddWideTelegrator(this IHostApplicationBuilder builder, Func<IServiceProvider, DbConnection> dbConnectionFactory, TelegratorOptions? options = null, IHandlersCollection? handlers = null)
{
AddWideTelegratorInternal(builder.Services, builder.Configuration, builder.Properties, ref handlers, options);
AddWideTelegratorInternal(builder.Services, builder.Configuration, builder.Properties, dbConnectionFactory, ref handlers, options);
return builder;
}
/// <summary>
/// Replaces TelegramBotHostBuilder. Configures DI, options, and handlers.
/// </summary>
internal static void AddWideTelegratorInternal(IServiceCollection services, IConfiguration configuration, IDictionary<object, object> properties, [NotNull] ref IHandlersCollection? handlers, TelegratorOptions? options = null)
internal static void AddWideTelegratorInternal(IServiceCollection services, IConfiguration configuration, IDictionary<object, object> properties, Func<IServiceProvider, DbConnection> dbConnectionFactory, [NotNull] ref IHandlersCollection? handlers, TelegratorOptions? options = null)
{
if (services.Any(srvc => srvc.ServiceType == typeof(HostedUpdateReceiver)))
throw new InvalidOperationException("`HostedUpdateReceiver` found in services. WideHost extension is not compatible with default long-polling receiver. Please, remove `AddTelegrator` invocation from your Host configuration.");
@@ -147,16 +148,32 @@ public static class WideHostBuilderExtensions
if (!services.Any(srvc => srvc.ServiceType == typeof(IOptions<WTelegramBotClientOptions>)))
{
// For now, there's no way to configure this from IConfiguration, use `ConfigureWideTelegram` instead
throw new MissingMemberException("No options of type 'WTelegramBotClientOptions' was registered. This configuration is runtime required! Use `ConfigureWideTelegram` to register options.");
WideBotOptions? wideBotOptions = configuration.GetSection(nameof(WideBotOptions)).Get<WideBotOptions>();
if (wideBotOptions == null)
throw new MissingMemberException("Auto configuration disabled, yet no options of type 'WideBotOptions' was registered. This configuration is runtime required!");
/*
services.AddSingleton(Options.Create(new WTelegramBotClientOptions(options.Token, options.BaseUrl, options.UseTestEnvironment)
services.AddSingleton(provider =>
{
RetryCount = options.RetryCount,
RetryThreshold = options.RetryThreshold
}));
*/
IHostApplicationLifetime lifetime = provider.GetRequiredService<IHostApplicationLifetime>();
DbConnection dbConnection = dbConnectionFactory.Invoke(provider);
lifetime.ApplicationStopping.Register(() => dbConnection.Dispose());
WTelegramBotClientOptions wideOptions = new WTelegramBotClientOptions(
token: options.Token,
apiId: wideBotOptions.ApiId,
apiHash: wideBotOptions.ApiHash,
dbConnection: dbConnection,
sqlCommands: wideBotOptions.SqlCommands,
useTestEnvironment: options.UseTestEnvironment,
mtproxy: wideBotOptions.MTProxy)
{
RetryCount = options.RetryCount,
RetryThreshold = options.RetryThreshold
};
return Options.Create(wideOptions);
});
}
services.AddTelegramBotHostDefaults();
@@ -183,6 +200,19 @@ public static class WideBotServiceCollectionExtensions
return services;
}
/// <summary>
/// Adds WTelegramBotClientOptions to services
/// </summary>
/// <param name="services"></param>
/// <param name="options"></param>
/// <returns></returns>
public static IServiceCollection ConfigureWideBot(this IServiceCollection services, WideBotOptions options)
{
services.RemoveAll<IOptions<WideBotOptions>>();
services.AddSingleton(Options.Create(options));
return services;
}
/// <summary>
/// Adds WTelegramBotClient
/// </summary>
@@ -0,0 +1,31 @@
using Telegram.Bot;
using WTelegram;
namespace Telegrator;
/// <summary>
/// Represents configuration options for initializing and customizing the behavior of a WideBot instance.
/// </summary>
/// <remarks>Use this class to specify required API credentials, optional proxy settings, update handling
/// preferences, and SQL command detection for WideBot. All required properties must be set before using the options
/// with a WideBot instance.
/// </remarks>
public class WideBotOptions
{
/// <inheritdoc cref="WTelegramBotClientOptions.ApiId"/>
public required int ApiId { get; set; }
/// <inheritdoc cref="WTelegramBotClientOptions.ApiHash"/>
public required string ApiHash { get; set; }
/// <inheritdoc cref="WTelegramBotClientOptions.MTProxy"/>
public string? MTProxy { get; set; }
/// <inheritdoc cref="WTelegramBotClientOptions.SqlCommands"/>
public SqlCommands SqlCommands { get; set; } = WTelegram.SqlCommands.Detect;
/// <summary>
/// Gets or sets a value indicating whether pending updates should be discarded.
/// </summary>
public bool DropPendingUpdates { get; set; }
}
@@ -13,9 +13,12 @@
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<EnableNETAnalyzers>True</EnableNETAnalyzers>
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
<IncludeSymbols>True</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<SignAssembly>False</SignAssembly>
<Title>Telegrator.Hosting</Title>
<Version>1.17.0</Version>
<Version>1.17.1</Version>
<Authors>Rikitav Tim4ik</Authors>
<Company>Rikitav Tim4ik</Company>
<RepositoryUrl>https://github.com/Rikitav/Telegrator</RepositoryUrl>
View File
@@ -2,7 +2,31 @@
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<RootNamespace>Telegrator</RootNamespace>
<BaseOutputPath>..\..\bin</BaseOutputPath>
<DocumentationFile>..\..\docs\$(AssemblyName).xml</DocumentationFile>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<EnableNETAnalyzers>True</EnableNETAnalyzers>
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
<IncludeSymbols>True</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<SignAssembly>False</SignAssembly>
<Title>Telegrator.Localized</Title>
<Version>1.17.1</Version>
<Authors>Rikitav Tim4ik</Authors>
<Company>Rikitav Tim4ik</Company>
<RepositoryUrl>https://github.com/Rikitav/Telegrator</RepositoryUrl>
<PackageTags>telegram;bot;mediator;attributes;aspect;hosting;host;framework;easy;simple;handlers</PackageTags>
<PackageIcon>telegrator_nuget.png</PackageIcon>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
</PropertyGroup>
<ItemGroup>
@@ -13,4 +37,10 @@
<ProjectReference Include="..\Telegrator\Telegrator.csproj" />
</ItemGroup>
<ItemGroup>
<None Include=".\README.md" Pack="True" PackagePath="\" />
<None Include="..\..\LICENSE" Pack="True" PackagePath="\" />
<None Include="..\..\resources\telegrator_nuget.png" Pack="True" PackagePath="\" />
</ItemGroup>
</Project>
+5 -2
View File
@@ -12,9 +12,12 @@
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<EnableNETAnalyzers>True</EnableNETAnalyzers>
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
<IncludeSymbols>True</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<SignAssembly>False</SignAssembly>
<Title>Telegrator : Telegram.Bot mediator framework</Title>
<Version>1.17.0</Version>
<Version>1.17.1</Version>
<Authors>Rikitav Tim4ik</Authors>
<Company>Rikitav Tim4ik</Company>
<RepositoryUrl>https://github.com/Rikitav/Telegrator</RepositoryUrl>
@@ -32,7 +35,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Telegram.Bot" Version="22.9.5.3" />
<PackageReference Include="Telegram.Bot" Version="22.9.6.2" />
<PackageReference Include="System.Threading.Channels" Version="10.0.7" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.7" />
</ItemGroup>
+23 -7
View File
@@ -1,8 +1,7 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.Data.Sqlite;
using Microsoft.Extensions.Hosting;
using System.Data.Common;
using Telegram.Bot;
using Telegram.Bot.Polling;
namespace Telegrator.Tests;
@@ -16,6 +15,12 @@ internal static class Program
ApplicationName = "Host example",
});
builder.Services.ConfigureReceiver(new ReceiverOptions()
{
DropPendingUpdates = true,
Limit = 100
});
builder.AddTelegrator(action: builder => builder.Handlers
.CollectHandlersAssemblyWide());
@@ -32,12 +37,16 @@ internal static class Program
ApplicationName = "WBot example",
});
using DbConnection connection = new SqliteConnection("Data Source=wtgb.db");
builder.Services.ConfigureWideTelegram(
new WTelegramBotClientOptions(token: "BOT_TOKEN", apiId: 123, apiHash: "API_HASH", dbConnection: connection));
builder.Services.ConfigureWideBot(new WideBotOptions()
{
ApiId = 123,
ApiHash = "API_HASH",
DropPendingUpdates = true,
});
builder.AddWideTelegrator(action: builder => builder.Handlers
.CollectHandlersAssemblyWide());
builder.AddWideTelegrator(
dbConnectionFactory: provider => new SqliteConnection($"Data Source={Environment.ExpandEnvironmentVariables("%AppData%\\Telegrator\\%wtgb.db")}"),
action: builder => builder.Handlers.CollectHandlersAssemblyWide());
builder.Build()
.UseWideTelegrator()
@@ -52,6 +61,13 @@ internal static class Program
ApplicationName = "WebApplication example",
});
builder.Services.ConfigureWebhooker(new WebhookerOptions()
{
WebhookUri = "https://medic-gaming.com/",
DropPendingUpdates = true,
SecretToken = "MEDIC_GAMING"
});
builder.AddTelegratorWeb(action: builder => builder.Handlers
.CollectHandlersAssemblyWide());