* Architectural rework
This commit is contained in:
+6
-6
@@ -1,9 +1,9 @@
|
||||
<Solution>
|
||||
<Project Path="src/Telegrator/Telegrator.csproj" />
|
||||
<Project Path="src/Telegrator.Analyzers/Telegrator.Analyzers.csproj" />
|
||||
<Project Path="src/Telegrator.Hosting/Telegrator.Hosting.csproj" />
|
||||
<Project Path="src/Telegrator.Hosting.Web/Telegrator.Hosting.Web.csproj" />
|
||||
<Project Path="src/Telegrator.Localized/Telegrator.Localized.csproj" />
|
||||
<Solution>
|
||||
<Project Path="dev/Telegrator.RoslynGenerators/Telegrator.RoslynGenerators.csproj" />
|
||||
<Project Path="src/Telegrator.Analyzers/Telegrator.Analyzers.csproj" />
|
||||
<Project Path="src/Telegrator.Hosting.Web/Telegrator.Hosting.Web.csproj" />
|
||||
<Project Path="src/Telegrator.Hosting/Telegrator.Hosting.csproj" />
|
||||
<Project Path="src/Telegrator.Localized/Telegrator.Localized.csproj" />
|
||||
<Project Path="src/Telegrator/Telegrator.csproj" />
|
||||
<Project Path="tests/Telegrator.Tests/Telegrator.Tests.csproj" />
|
||||
</Solution>
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Routing;
|
||||
using Telegrator.Hosting.Components;
|
||||
|
||||
namespace Telegrator.Hosting.Web.Components
|
||||
namespace Telegrator.Hosting.Web
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for Telegram bot hosts with Webhook update receiving.
|
||||
+1
-3
@@ -5,9 +5,7 @@ using Microsoft.AspNetCore.Routing;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Telegrator.Hosting.Components;
|
||||
using Telegrator.Hosting.Web.Components;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.Core;
|
||||
|
||||
namespace Telegrator.Hosting.Web
|
||||
{
|
||||
+3
-4
@@ -5,11 +5,10 @@ using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Telegram.Bot;
|
||||
using Telegrator.Hosting.Components;
|
||||
using Telegrator;
|
||||
using Telegrator.Core;
|
||||
using Telegrator.Hosting.Configuration;
|
||||
using Telegrator.Hosting.Providers;
|
||||
using Telegrator.Hosting.Providers.Components;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.Providers;
|
||||
|
||||
#pragma warning disable IDE0001
|
||||
namespace Telegrator.Hosting.Web
|
||||
+3
-2
@@ -7,9 +7,10 @@ using Microsoft.Extensions.Primitives;
|
||||
using System.Text.Json;
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.Core;
|
||||
using Telegrator.Hosting.Web;
|
||||
|
||||
namespace Telegrator.Hosting.Web.Polling
|
||||
namespace Telegrator.Mediation
|
||||
{
|
||||
/// <summary>
|
||||
/// Service for receiving updates for Hosted telegram bots via Webhooks
|
||||
@@ -5,6 +5,7 @@
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<RootNamespace>Telegrator</RootNamespace>
|
||||
<BaseOutputPath>..\..\bin</BaseOutputPath>
|
||||
<DocumentationFile>..\..\docs\$(AssemblyName).xml</DocumentationFile>
|
||||
|
||||
|
||||
@@ -6,14 +6,13 @@ using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using System.Diagnostics;
|
||||
using Telegram.Bot;
|
||||
using Telegrator.Configuration;
|
||||
using Telegrator.Hosting.Providers;
|
||||
using Telegrator.Hosting.Providers.Components;
|
||||
using Telegrator.Hosting.Web.Components;
|
||||
using Telegrator.Hosting.Web.Polling;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator;
|
||||
using Telegrator.Core;
|
||||
using Telegrator.Hosting.Web;
|
||||
using Telegrator.Mediation;
|
||||
using Telegrator.Providers;
|
||||
|
||||
namespace Telegrator.Hosting.Web
|
||||
namespace Telegrator
|
||||
{
|
||||
/// <summary>
|
||||
/// Contains extensions for <see cref="IServiceCollection"/>
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace Telegrator.Hosting.Configuration
|
||||
namespace Telegrator
|
||||
{
|
||||
/// <summary>
|
||||
/// Abstract base class for configuring options from configuration sources.
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.Providers;
|
||||
|
||||
namespace Telegrator.Hosting.Providers.Components
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Collection class for managing handler descriptors organized by update type for host apps.
|
||||
+3
-1
@@ -1,4 +1,6 @@
|
||||
namespace Telegrator.Hosting.Components
|
||||
using Telegrator.Hosting;
|
||||
|
||||
namespace Telegrator.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for pre-building routines that can be executed during host construction.
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Configuration;
|
||||
using Telegrator.Core;
|
||||
|
||||
namespace Telegrator.Hosting
|
||||
{
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Telegrator;
|
||||
|
||||
namespace Telegrator.Hosting.Components
|
||||
namespace Telegrator.Hosting
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for Telegram bot hosts.
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.Core;
|
||||
|
||||
namespace Telegrator.Hosting.Components
|
||||
namespace Telegrator.Hosting
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for building Telegram bot hosts with dependency injection support.
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Telegrator.Hosting.Components;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.Core;
|
||||
|
||||
namespace Telegrator.Hosting
|
||||
{
|
||||
+1
-2
@@ -2,9 +2,8 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Telegrator.Hosting.Components;
|
||||
using Telegrator.Core;
|
||||
using Telegrator.Hosting.Providers;
|
||||
using Telegrator.MadiatorCore;
|
||||
|
||||
#pragma warning disable IDE0001
|
||||
namespace Telegrator.Hosting
|
||||
@@ -1,7 +1,6 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Telegrator.Logging;
|
||||
|
||||
namespace Telegrator.Hosting.Logging
|
||||
namespace Telegrator.Logging
|
||||
{
|
||||
/// <summary>
|
||||
/// Adapter for Microsoft.Extensions.Logging to work with Telegrator logging system.
|
||||
@@ -21,7 +20,7 @@ namespace Telegrator.Hosting.Logging
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void Log(Telegrator.Logging.LogLevel level, string message, Exception? exception = null)
|
||||
public void Log(LogLevel level, string message, Exception? exception = null)
|
||||
{
|
||||
var msLogLevel = level switch
|
||||
{
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using Microsoft.Extensions.Options;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.Polling;
|
||||
using Telegrator.Core;
|
||||
using Telegrator.Mediation;
|
||||
|
||||
namespace Telegrator.Hosting.Polling
|
||||
namespace Telegrator.Polling
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public class HostUpdateHandlersPool(IUpdateRouter router, IOptions<TelegratorOptions> options)
|
||||
|
||||
@@ -3,11 +3,10 @@ using Microsoft.Extensions.Options;
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Polling;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Configuration;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.Polling;
|
||||
using Telegrator.Core;
|
||||
using Telegrator.Mediation;
|
||||
|
||||
namespace Telegrator.Hosting.Polling
|
||||
namespace Telegrator.Polling
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public class HostUpdateRouter : UpdateRouter
|
||||
|
||||
@@ -3,11 +3,11 @@ using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Polling;
|
||||
using Telegrator.Hosting.Components;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.Polling;
|
||||
using Telegrator.Core;
|
||||
using Telegrator.Hosting;
|
||||
using Telegrator.Mediation;
|
||||
|
||||
namespace Telegrator.Hosting.Polling
|
||||
namespace Telegrator.Polling
|
||||
{
|
||||
/// <summary>
|
||||
/// Service for receiving updates for Hosted telegram bots
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Telegrator.Providers;
|
||||
|
||||
namespace Telegrator.Hosting.Providers
|
||||
namespace Telegrator.Providers
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public class HostAwaitingProvider(IOptions<TelegratorOptions> options, ILogger<HostAwaitingProvider> logger) : AwaitingProvider(options.Value)
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System.Reflection;
|
||||
using Telegrator.Configuration;
|
||||
using Telegrator.Hosting.Components;
|
||||
using Telegrator.Hosting.Providers.Components;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Providers;
|
||||
using Telegrator.Core;
|
||||
using Telegrator.Core.Descriptors;
|
||||
using Telegrator.Hosting;
|
||||
|
||||
namespace Telegrator.Hosting.Providers
|
||||
namespace Telegrator.Providers
|
||||
{
|
||||
/// <summary>
|
||||
/// Pre host building task
|
||||
@@ -16,7 +14,7 @@ namespace Telegrator.Hosting.Providers
|
||||
public delegate void PreBuildingRoutine(ITelegramBotHostBuilder builder);
|
||||
|
||||
/// <inheritdoc/>
|
||||
public class HostHandlersCollection(IServiceCollection hostServiceColletion, ITelegratorOptions options) : HandlersCollection(options), IHostHandlersCollection
|
||||
public class HostHandlersCollection(IServiceCollection hostServiceColletion, TelegratorOptions options) : HandlersCollection(options), IHostHandlersCollection
|
||||
{
|
||||
private readonly IServiceCollection Services = hostServiceColletion;
|
||||
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Providers;
|
||||
using Telegrator.Core;
|
||||
using Telegrator.Core.Descriptors;
|
||||
using Telegrator.Core.Handlers;
|
||||
|
||||
namespace Telegrator.Hosting.Providers
|
||||
namespace Telegrator.Providers
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public class HostHandlersProvider : HandlersProvider
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
using Telegram.Bot;
|
||||
|
||||
namespace Telegrator.Hosting.Configuration
|
||||
namespace Telegrator
|
||||
{
|
||||
/// <summary>
|
||||
/// Internal proxy class for configuring Telegram bot client options from configuration.
|
||||
@@ -5,6 +5,7 @@
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<RootNamespace>Telegrator</RootNamespace>
|
||||
<BaseOutputPath>..\..\bin</BaseOutputPath>
|
||||
<DocumentationFile>..\..\docs\$(AssemblyName).xml</DocumentationFile>
|
||||
|
||||
|
||||
@@ -12,18 +12,17 @@ using Telegram.Bot;
|
||||
using Telegram.Bot.Polling;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Configuration;
|
||||
using Telegrator.Hosting.Components;
|
||||
using Telegrator;
|
||||
using Telegrator.Core;
|
||||
using Telegrator.Core.Descriptors;
|
||||
using Telegrator.Handlers;
|
||||
using Telegrator.Hosting;
|
||||
using Telegrator.Hosting.Configuration;
|
||||
using Telegrator.Hosting.Logging;
|
||||
using Telegrator.Hosting.Polling;
|
||||
using Telegrator.Hosting.Providers;
|
||||
using Telegrator.Hosting.Providers.Components;
|
||||
using Telegrator.Logging;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Polling;
|
||||
using Telegrator.Providers;
|
||||
|
||||
namespace Telegrator.Hosting
|
||||
namespace Telegrator
|
||||
{
|
||||
public static class HostBuilderExtensions
|
||||
{
|
||||
@@ -196,7 +195,7 @@ namespace Telegrator.Hosting
|
||||
ILogger logger = loggerFactory.CreateLogger("Telegrator");
|
||||
|
||||
MicrosoftLoggingAdapter adapter = new MicrosoftLoggingAdapter(logger);
|
||||
Alligator.AddAdapter(adapter);
|
||||
TelegratorLogging.AddAdapter(adapter);
|
||||
return host;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using Microsoft.Extensions.Localization;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.Core.Handlers;
|
||||
|
||||
namespace Telegrator.Localized
|
||||
{
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Attributes;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Filters;
|
||||
using Telegrator.Filters.Components;
|
||||
|
||||
namespace Telegrator.Annotations
|
||||
{
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Filters;
|
||||
using Telegrator.Attributes;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Annotations
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Filters;
|
||||
using Telegrator.Attributes;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Annotations
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using Telegrator.StateKeeping;
|
||||
using Telegrator.Attributes;
|
||||
using Telegrator.StateKeeping.Components;
|
||||
using Telegrator.Core.StateKeeping;
|
||||
|
||||
namespace Telegrator.Annotations.StateKeeping
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using Telegrator.StateKeeping;
|
||||
using Telegrator.Attributes;
|
||||
using Telegrator.StateKeeping.Components;
|
||||
using Telegrator.Core.StateKeeping;
|
||||
|
||||
namespace Telegrator.Annotations.StateKeeping
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using Telegrator.StateKeeping;
|
||||
using Telegrator.Attributes;
|
||||
using Telegrator.StateKeeping.Components;
|
||||
using Telegrator.Core.StateKeeping;
|
||||
|
||||
namespace Telegrator.Annotations.StateKeeping
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.Core.Handlers;
|
||||
|
||||
namespace Telegrator.Aspects
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.Core.Handlers;
|
||||
|
||||
namespace Telegrator.Aspects
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Filters;
|
||||
using Telegrator.Filters.Components;
|
||||
|
||||
namespace Telegrator.Attributes
|
||||
{
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Annotations.StateKeeping;
|
||||
using Telegrator.Attributes.Components;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.StateKeeping.Components;
|
||||
using Telegrator.Core.Attributes;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Core.StateKeeping;
|
||||
|
||||
namespace Telegrator.Attributes
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Attributes.Components;
|
||||
using Telegrator.Core.Attributes;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Filters;
|
||||
using Telegrator.Filters.Components;
|
||||
|
||||
namespace Telegrator.Attributes
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Attributes.Components;
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.Core.Attributes;
|
||||
using Telegrator.Core.Handlers;
|
||||
|
||||
namespace Telegrator.Attributes
|
||||
{
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
namespace Telegrator.Configuration
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for configuring Telegram bot behavior and execution settings.
|
||||
/// Controls various aspects of bot operation including concurrency, routing, collecting, and execution policies.
|
||||
/// </summary>
|
||||
public interface ITelegratorOptions
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the maximum number of parallel working handlers. Null means no limit.
|
||||
/// </summary>
|
||||
public int? MaximumParallelWorkingHandlers { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether awaiting handlers should be routed separately from regular handlers.
|
||||
/// </summary>
|
||||
public bool ExclusiveAwaitingHandlerRouting { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether to exclude intersecting command aliases.
|
||||
/// </summary>
|
||||
public bool ExceptIntersectingCommandAliases { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the global cancellation token for all bot operations.
|
||||
/// </summary>
|
||||
public CancellationToken GlobalCancellationToken { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Logging;
|
||||
|
||||
namespace Telegrator;
|
||||
|
||||
public class ContinuousAction : IDisposable
|
||||
{
|
||||
private readonly ITelegramBotClient _client;
|
||||
private readonly ChatAction _action;
|
||||
private readonly ChatId _chat;
|
||||
private readonly TimeSpan _delay;
|
||||
|
||||
private readonly CancellationTokenSource _linkedCts;
|
||||
private readonly Task _workerTask;
|
||||
|
||||
private int _disposed;
|
||||
|
||||
public ContinuousAction(ITelegramBotClient client, ChatId chat, ChatAction action, TimeSpan? delay = null, CancellationToken cancellationToken = default)
|
||||
{
|
||||
_client = client;
|
||||
_chat = chat;
|
||||
_action = action;
|
||||
_delay = delay ?? TimeSpan.FromSeconds(4);
|
||||
|
||||
_linkedCts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
|
||||
_workerTask = StartActorAsync(_linkedCts.Token);
|
||||
}
|
||||
|
||||
private async Task StartActorAsync(CancellationToken token)
|
||||
{
|
||||
try
|
||||
{
|
||||
while (!token.IsCancellationRequested)
|
||||
{
|
||||
try
|
||||
{
|
||||
await _client.SendChatAction(_chat, _action, cancellationToken: token).ConfigureAwait(false);
|
||||
}
|
||||
catch (Exception ex) when (ex is not OperationCanceledException)
|
||||
{
|
||||
TelegratorLogging.LogTrace("Continuous action throwed an exception.\n{0}", ex);
|
||||
}
|
||||
|
||||
await Task.Delay(_delay, token);
|
||||
}
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
TelegratorLogging.LogTrace("Continuous action cancelled");
|
||||
}
|
||||
}
|
||||
|
||||
public void Cancel()
|
||||
{
|
||||
if (Interlocked.CompareExchange(ref _disposed, 0, 0) == 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
_linkedCts.Cancel();
|
||||
}
|
||||
catch (ObjectDisposedException)
|
||||
{
|
||||
_ = 0xDEADBEEF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public async Task WaitAsync()
|
||||
{
|
||||
await _workerTask.ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (Interlocked.Exchange(ref _disposed, 1) == 1)
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
_linkedCts.Cancel();
|
||||
}
|
||||
finally
|
||||
{
|
||||
_linkedCts.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
+4
-4
@@ -1,9 +1,9 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.StateKeeping.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Core.Handlers;
|
||||
using Telegrator.Core.StateKeeping;
|
||||
|
||||
namespace Telegrator.Attributes.Components
|
||||
namespace Telegrator.Core.Attributes
|
||||
{
|
||||
/// <summary>
|
||||
/// Sets the state in which the <see cref="UpdateHandlerBase"/> can be executed
|
||||
+4
-3
@@ -1,10 +1,11 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Attributes;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Core.Handlers;
|
||||
using Telegrator.Filters;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Handlers.Components;
|
||||
|
||||
namespace Telegrator.Attributes.Components
|
||||
namespace Telegrator.Core.Attributes
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the <see cref="IFilter{T}"/> to <see cref="Update"/> validation for entry into execution of the <see cref="UpdateHandlerBase"/>
|
||||
+4
-4
@@ -1,10 +1,10 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Core.Descriptors;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Core.Handlers;
|
||||
|
||||
namespace Telegrator.Attributes.Components
|
||||
namespace Telegrator.Core.Attributes
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the <see cref="UpdateType"/>'s and validator (<see cref="IFilter{T}"/>) of the <see cref="Update"/> that <see cref="UpdateHandlerBase"/> will process
|
||||
+4
-4
@@ -1,13 +1,13 @@
|
||||
using System.Reflection;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Attributes.Components;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Attributes;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Core.Handlers;
|
||||
using Telegrator.Handlers;
|
||||
using Telegrator.Handlers.Building;
|
||||
using Telegrator.Handlers.Components;
|
||||
|
||||
namespace Telegrator.MadiatorCore.Descriptors
|
||||
namespace Telegrator.Core.Descriptors
|
||||
{
|
||||
/// <summary>
|
||||
/// Descriptor for creating handlers from methods
|
||||
+4
-3
@@ -1,9 +1,10 @@
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.Core;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Core.Handlers;
|
||||
|
||||
namespace Telegrator.MadiatorCore.Descriptors
|
||||
namespace Telegrator.Core.Descriptors
|
||||
{
|
||||
/// <summary>
|
||||
/// Contains information about a described handler, including its context, client, and execution logic.
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
using Telegrator.Aspects;
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.Core.Handlers;
|
||||
|
||||
namespace Telegrator.MadiatorCore.Descriptors
|
||||
namespace Telegrator.Core.Descriptors
|
||||
{
|
||||
/// <summary>
|
||||
/// Manages the execution of pre and post-execution aspects for a handler.
|
||||
+5
-5
@@ -1,9 +1,9 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Handlers.Diagnostics;
|
||||
using Telegrator.Logging;
|
||||
|
||||
namespace Telegrator.MadiatorCore.Descriptors
|
||||
namespace Telegrator.Core.Descriptors
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a set of filters for a handler descriptor, including update and state keeper validators.
|
||||
@@ -61,7 +61,7 @@ namespace Telegrator.MadiatorCore.Descriptors
|
||||
if (!result)
|
||||
{
|
||||
anyErrors = true;
|
||||
Alligator.LogTrace("(E) UpdateValidator filter of '{0}' for Update ({1}) didnt pass!", filterContext.Data["handler_name"], filterContext.Update.Id);
|
||||
TelegratorLogging.LogTrace("(E) UpdateValidator filter of '{0}' for Update ({1}) didnt pass!", filterContext.Data["handler_name"], filterContext.Update.Id);
|
||||
|
||||
if (!formReport)
|
||||
return Result.Fault();
|
||||
@@ -84,7 +84,7 @@ namespace Telegrator.MadiatorCore.Descriptors
|
||||
if (!result)
|
||||
{
|
||||
anyErrors = true;
|
||||
Alligator.LogTrace("(E) StateKeeperValidator filter of '{0}' for Update ({1}) didnt pass!", filterContext.Data["handler_name"], filterContext.Update.Id);
|
||||
TelegratorLogging.LogTrace("(E) StateKeeperValidator filter of '{0}' for Update ({1}) didnt pass!", filterContext.Data["handler_name"], filterContext.Update.Id);
|
||||
|
||||
if (!formReport)
|
||||
return Result.Fault();
|
||||
@@ -110,7 +110,7 @@ namespace Telegrator.MadiatorCore.Descriptors
|
||||
if (!result)
|
||||
{
|
||||
anyErrors = true;
|
||||
Alligator.LogTrace("(E) '{0}' filter of '{1}' for Update ({2}) didnt pass!", filterName, filterContext.Data["handler_name"], filterContext.Update.Id);
|
||||
TelegratorLogging.LogTrace("(E) '{0}' filter of '{1}' for Update ({2}) didnt pass!", filterName, filterContext.Data["handler_name"], filterContext.Update.Id);
|
||||
|
||||
if (!formReport)
|
||||
return Result.Fault();
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
using Telegrator.Attributes.Components;
|
||||
using Telegrator.Core.Attributes;
|
||||
|
||||
namespace Telegrator.MadiatorCore.Descriptors
|
||||
namespace Telegrator.Core.Descriptors
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents an indexer for handler descriptors, containing importance and priority information.
|
||||
+4
-4
@@ -1,10 +1,10 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Attributes.Components;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.Core.Attributes;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Core.Handlers;
|
||||
|
||||
namespace Telegrator.MadiatorCore.Descriptors
|
||||
namespace Telegrator.Core.Descriptors
|
||||
{
|
||||
/// <summary>
|
||||
/// Specifies the type of handler descriptor.
|
||||
+4
-3
@@ -2,8 +2,9 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Configuration;
|
||||
using Telegrator.Core;
|
||||
|
||||
namespace Telegrator.MadiatorCore.Descriptors
|
||||
namespace Telegrator.Core.Descriptors
|
||||
{
|
||||
/// <summary>
|
||||
/// The collection containing the <see cref="HandlerDescriptor"/>'s. Used to route <see cref="Update"/>'s in <see cref="IHandlersProvider"/>
|
||||
@@ -12,7 +13,7 @@ namespace Telegrator.MadiatorCore.Descriptors
|
||||
{
|
||||
private readonly object _lock = new object();
|
||||
private readonly SortedList<DescriptorIndexer, HandlerDescriptor> _innerCollection;
|
||||
private readonly ITelegratorOptions? _options;
|
||||
private readonly TelegratorOptions? _options;
|
||||
private readonly UpdateType _handlingType;
|
||||
|
||||
private int count;
|
||||
@@ -54,7 +55,7 @@ namespace Telegrator.MadiatorCore.Descriptors
|
||||
/// </summary>
|
||||
/// <param name="updateType">The update type for the handlers.</param>
|
||||
/// <param name="options">The collecting options.</param>
|
||||
public HandlerDescriptorList(UpdateType updateType, ITelegratorOptions? options)
|
||||
public HandlerDescriptorList(UpdateType updateType, TelegratorOptions? options)
|
||||
{
|
||||
_innerCollection = [];
|
||||
_handlingType = updateType;
|
||||
+3
-3
@@ -3,10 +3,10 @@ using System.Reflection;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Aspects;
|
||||
using Telegrator.Attributes.Components;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Attributes;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.MadiatorCore.Descriptors
|
||||
namespace Telegrator.Core.Descriptors
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides methods for inspecting handler types and retrieving their attributes and filters.
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters;
|
||||
using Telegrator.Logging;
|
||||
|
||||
namespace Telegrator.Filters.Components
|
||||
namespace Telegrator.Core.Filters
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a compiled filter that applies a set of filters to an anonymous target type.
|
||||
@@ -77,7 +78,7 @@ namespace Telegrator.Filters.Components
|
||||
if (!filter.CanPass(context))
|
||||
{
|
||||
if (filter is not AnonymousCompiledFilter && filter is not AnonymousTypeFilter)
|
||||
Alligator.LogDebug("{0} filter of {1} didnt pass! (Compiled anonymous)", filter.GetType().Name, context.Data["handler_name"]);
|
||||
TelegratorLogging.LogDebug("{0} filter of {1} didnt pass! (Compiled anonymous)", filter.GetType().Name, context.Data["handler_name"]);
|
||||
|
||||
return false;
|
||||
}
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters;
|
||||
using Telegrator.Logging;
|
||||
|
||||
namespace Telegrator.Filters.Components
|
||||
namespace Telegrator.Core.Filters
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a filter that applies a filter action to an anonymous target type extracted from an update.
|
||||
@@ -76,7 +77,7 @@ namespace Telegrator.Filters.Components
|
||||
if (!filter.CanPass(context))
|
||||
{
|
||||
if (IgnoreLog.Contains(filter.GetType().MakeGenericType()))
|
||||
Alligator.LogDebug("{0} filter of {1} didnt pass!", filter.GetType().Name, context.Data["handler_name"]);
|
||||
TelegratorLogging.LogDebug("{0} filter of {1} didnt pass!", filter.GetType().Name, context.Data["handler_name"]);
|
||||
|
||||
return false;
|
||||
}
|
||||
+4
-3
@@ -1,6 +1,7 @@
|
||||
using Telegrator.Logging;
|
||||
using Telegrator.Filters;
|
||||
using Telegrator.Logging;
|
||||
|
||||
namespace Telegrator.Filters.Components
|
||||
namespace Telegrator.Core.Filters
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a filter that composes multiple filters and passes only if all of them pass.
|
||||
@@ -49,7 +50,7 @@ namespace Telegrator.Filters.Components
|
||||
if (!filter.CanPass(context))
|
||||
{
|
||||
if (filter is not AnonymousCompiledFilter && filter is not AnonymousTypeFilter)
|
||||
Alligator.LogTrace("{0} filter of {1} didnt pass! (Compiled)", filter.GetType().Name, context.Data["handler_name"]);
|
||||
TelegratorLogging.LogTrace("{0} filter of {1} didnt pass! (Compiled)", filter.GetType().Name, context.Data["handler_name"]);
|
||||
|
||||
return false;
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
using System.Collections;
|
||||
|
||||
namespace Telegrator.Filters.Components
|
||||
namespace Telegrator.Core.Filters
|
||||
{
|
||||
/// <summary>
|
||||
/// The list containing filters worked out during Polling to further obtain additional filtering information
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Configuration;
|
||||
|
||||
namespace Telegrator.Filters.Components
|
||||
namespace Telegrator.Core.Filters
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents the context for filter execution, including update, input, and additional data.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace Telegrator.Filters.Components
|
||||
namespace Telegrator.Core.Filters
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for filters that have a name for identification and debugging purposes.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace Telegrator.Filters.Components
|
||||
namespace Telegrator.Core.Filters
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a filter that joins multiple filters together.
|
||||
+4
-4
@@ -1,11 +1,11 @@
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Core.Descriptors;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Handlers;
|
||||
|
||||
namespace Telegrator.Handlers.Components
|
||||
namespace Telegrator.Core.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Abstract handler for Telegram updates of type <typeparamref name="TUpdate"/>.
|
||||
+5
-5
@@ -1,13 +1,13 @@
|
||||
using System.Reflection;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Attributes.Components;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Attributes;
|
||||
using Telegrator.Core.Descriptors;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Handlers;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Providers;
|
||||
|
||||
namespace Telegrator.Handlers.Components
|
||||
namespace Telegrator.Core.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Abstract base class for handlers that support branching execution based on different methods.
|
||||
+4
-6
@@ -1,13 +1,11 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Annotations.StateKeeping;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.StateKeeping.Components;
|
||||
using Telegrator.Core.Descriptors;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Core.StateKeeping;
|
||||
|
||||
namespace Telegrator.Handlers.Building.Components
|
||||
namespace Telegrator.Core.Handlers.Building
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class for building handler descriptors and managing handler filters.
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
using Telegrator.StateKeeping.Components;
|
||||
using Telegrator.Core.StateKeeping;
|
||||
|
||||
namespace Telegrator.Handlers.Building.Components
|
||||
namespace Telegrator.Core.Handlers.Building
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines a builder for awaiting handler logic for a specific update type.
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Annotations.StateKeeping;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.StateKeeping.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Core.StateKeeping;
|
||||
|
||||
namespace Telegrator.Handlers.Building.Components
|
||||
namespace Telegrator.Core.Handlers.Building
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines builder actions for configuring handler builders.
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
using Telegrator.Handlers.Building;
|
||||
using Telegrator.MadiatorCore;
|
||||
|
||||
namespace Telegrator.Handlers.Building.Components
|
||||
namespace Telegrator.Core.Handlers.Building
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines a builder for regular handler logic for a specific update type.
|
||||
+3
-3
@@ -1,10 +1,10 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Annotations.StateKeeping;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Core.StateKeeping;
|
||||
using Telegrator.Filters;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.StateKeeping.Components;
|
||||
|
||||
namespace Telegrator.Handlers.Building.Components
|
||||
namespace Telegrator.Core.Handlers.Building
|
||||
{
|
||||
/// <summary>
|
||||
/// Filter for state keeping logic, allowing filtering based on state and special state conditions.
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Handlers.Building.Components
|
||||
namespace Telegrator.Core.Handlers.Building
|
||||
{
|
||||
/// <summary>
|
||||
/// Delegate for validating an update in a filter context.
|
||||
+2
-3
@@ -1,9 +1,8 @@
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Handlers.Components
|
||||
namespace Telegrator.Core.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents an empty handler container that throws <see cref="NotImplementedException"/> for all members.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace Telegrator.Handlers.Components
|
||||
namespace Telegrator.Core.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a token that tracks the lifetime of a handler instance.
|
||||
+3
-1
@@ -1,4 +1,6 @@
|
||||
namespace Telegrator.Handlers.Components;
|
||||
using Telegrator.Handlers;
|
||||
|
||||
namespace Telegrator.Core.Handlers;
|
||||
|
||||
/// <summary>
|
||||
/// Abstract handler for Telegram updates of type <typeparamref name="TUpdate"/>.
|
||||
+2
-3
@@ -1,9 +1,8 @@
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Handlers.Components
|
||||
namespace Telegrator.Core.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for handler containers that provide context and resources for update handlers.
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
using Telegrator.MadiatorCore;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Core.Descriptors;
|
||||
using Telegrator.MadiatorCore;
|
||||
|
||||
namespace Telegrator.Handlers.Components
|
||||
namespace Telegrator.Core.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Factory interface for creating handler containers.
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Core.Descriptors;
|
||||
using Telegrator.Handlers.Diagnostics;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
|
||||
namespace Telegrator.Handlers.Components;
|
||||
namespace Telegrator.Core.Handlers;
|
||||
|
||||
/// <summary>
|
||||
/// Abstraction for update handlers, providing execution and lifetime management for Telegram updates.
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Polling;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Core.Descriptors;
|
||||
using Telegrator.Handlers.Diagnostics;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
|
||||
namespace Telegrator.Handlers.Components
|
||||
namespace Telegrator.Core.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class for update handlers, providing execution and lifetime management for Telegram updates.
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Core.Descriptors;
|
||||
|
||||
namespace Telegrator.MadiatorCore
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Provider for managing awaiting handlers that can wait for specific update types.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace Telegrator.MadiatorCore
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for providers that collect and manage handler collections.
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Core.Descriptors;
|
||||
|
||||
namespace Telegrator.Providers
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for classes that can provide custom handler descriptors.
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Core.Descriptors;
|
||||
|
||||
namespace Telegrator.MadiatorCore
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Collection class for managing handler descriptors organized by update type.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace Telegrator.MadiatorCore
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Combines <see cref="IHandlersCollection"/> and <see cref="IHandlersProvider"/>.
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Core.Descriptors;
|
||||
using Telegrator.Core.Handlers;
|
||||
|
||||
namespace Telegrator.MadiatorCore
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides methods to retrieve and describe handler information for updates.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace Telegrator.MadiatorCore
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for polling providers that manage both regular and awaiting handlers.
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Polling;
|
||||
|
||||
namespace Telegrator.MadiatorCore
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for handling exceptions that occur during update routing operations.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
using Telegram.Bot.Types;
|
||||
|
||||
namespace Telegrator.Configuration
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for providing bot information and metadata.
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Core.Descriptors;
|
||||
|
||||
namespace Telegrator.MadiatorCore
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a delegate for when a handler is enqueued.
|
||||
@@ -1,7 +1,7 @@
|
||||
using Telegram.Bot.Polling;
|
||||
using Telegram.Bot.Types;
|
||||
|
||||
namespace Telegrator.Polling;
|
||||
namespace Telegrator.Core;
|
||||
|
||||
/// <summary>
|
||||
/// Requests new <see cref="Update"/>s and processes them using provided <see cref="IUpdateHandler"/> instance<
|
||||
@@ -1,7 +1,7 @@
|
||||
using Telegram.Bot.Polling;
|
||||
using Telegrator.Handlers.Components;
|
||||
using Telegrator.Core.Handlers;
|
||||
|
||||
namespace Telegrator.MadiatorCore
|
||||
namespace Telegrator.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for update routers that handle incoming updates and manage handler execution.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
using Telegram.Bot.Types;
|
||||
|
||||
namespace Telegrator.StateKeeping.Components
|
||||
namespace Telegrator.Core.StateKeeping
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines a resolver for extracting a key from an update for state keeping purposes.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
using Telegram.Bot.Types;
|
||||
|
||||
namespace Telegrator.StateKeeping.Components
|
||||
namespace Telegrator.Core.StateKeeping
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class for managing state associated with updates and keys.
|
||||
@@ -1,4 +1,4 @@
|
||||
using Telegrator.MadiatorCore.Descriptors;
|
||||
using Telegrator.Core.Descriptors;
|
||||
|
||||
namespace Telegrator
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Text.RegularExpressions;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Filters
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Handlers;
|
||||
|
||||
namespace Telegrator.Filters
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Text.RegularExpressions;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
using Telegrator.Handlers;
|
||||
|
||||
namespace Telegrator.Filters
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Diagnostics;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Filters
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Filters
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Filters
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Filters
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegram.Bot.Types.ReplyMarkups;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Filters
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.Text.RegularExpressions;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
using Telegrator.Filters.Components;
|
||||
using Telegrator.Core.Filters;
|
||||
|
||||
namespace Telegrator.Filters
|
||||
{
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user