mirror of
https://github.com/yawaflua/Telegram.Net.git
synced 2025-12-09 20:19:28 +02:00
Fix warnings and change versions of dependencies for better compatability
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.InteropServices.JavaScript;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
@@ -15,31 +14,32 @@ using static System.Reflection.BindingFlags;
|
|||||||
|
|
||||||
namespace Telegram.Net.Services;
|
namespace Telegram.Net.Services;
|
||||||
|
|
||||||
|
[SuppressMessage("ReSharper", "ReturnValueOfPureMethodIsNotUsed")]
|
||||||
public class TelegramHostedService : IHostedService
|
public class TelegramHostedService : IHostedService
|
||||||
{
|
{
|
||||||
private IServiceCollection isc { get; }
|
private IServiceCollection ServiceCollection { get; } = null!;
|
||||||
internal TelegramBotClient Client { get; set; }
|
internal TelegramBotClient Client { get; set; } = null!;
|
||||||
private ITelegramBotConfig Config { get; }
|
private ITelegramBotConfig Config { get; } = null!;
|
||||||
internal Dictionary<string, Func<ITelegramBotClient, Message, CancellationToken, Task>> CommandHandler { get; set; } = new();
|
internal Dictionary<string, Func<ITelegramBotClient, Message, CancellationToken, Task>?> CommandHandler { get; set; } = new();
|
||||||
internal List<Func<ITelegramBotClient, Message, CancellationToken, Task>> EditedMessageHandler { get; set; } = new();
|
internal List<Func<ITelegramBotClient, Message, CancellationToken, Task>?> EditedMessageHandler { get; set; } = new();
|
||||||
internal Dictionary<string, Func<ITelegramBotClient, CallbackQuery,CancellationToken, Task>> CallbackQueryHandler { get; set; } = new();
|
internal Dictionary<string, Func<ITelegramBotClient, CallbackQuery, CancellationToken, Task>?> CallbackQueryHandler { get; set; } = new();
|
||||||
internal Dictionary<string, Func<ITelegramBotClient, InlineQuery ,CancellationToken, Task>> InlineHandler { get; set; } = new();
|
internal Dictionary<string, Func<ITelegramBotClient, InlineQuery, CancellationToken, Task>?> InlineHandler { get; set; } = new();
|
||||||
internal Func<ITelegramBotClient, PreCheckoutQuery,CancellationToken, Task>? PreCheckoutHandler { get; set; }
|
internal Func<ITelegramBotClient, PreCheckoutQuery,CancellationToken, Task>? PreCheckoutHandler { get; set; }
|
||||||
internal List<Func<ITelegramBotClient, Update, CancellationToken, Task>> DefaultUpdateHandler { get; set; } = new();
|
internal List<Func<ITelegramBotClient, Update, CancellationToken, Task>?> DefaultUpdateHandler { get; set; } = new();
|
||||||
internal static ILogger<TelegramHostedService> _logger;
|
internal static ILogger<TelegramHostedService> Logger = null!;
|
||||||
|
|
||||||
public TelegramHostedService(ITelegramBotConfig config, IServiceCollection isc, ILogger<TelegramHostedService> logger)
|
public TelegramHostedService(ITelegramBotConfig config, IServiceCollection serviceCollection, ILogger<TelegramHostedService> logger)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_logger = logger;
|
Logger = logger;
|
||||||
Client = new TelegramBotClient(config.Token);
|
Client = new TelegramBotClient(config.Token);
|
||||||
Config = config;
|
Config = config;
|
||||||
this.isc = isc;
|
this.ServiceCollection = serviceCollection;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.Log(LogLevel.Critical, new EventId(), ex, "Catched exception when creating TelegramHostedService: ");
|
Logger.Log(LogLevel.Critical, new EventId(), ex, "Catched exception when creating TelegramHostedService: ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
internal static bool IsValidHandlerMethod(MethodInfo method, Type parameterType)
|
internal static bool IsValidHandlerMethod(MethodInfo method, Type parameterType)
|
||||||
@@ -55,12 +55,12 @@ public class TelegramHostedService : IHostedService
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.LogError(ex, "Catched exception in parsing and checking params.");
|
Logger.LogError(ex, "Catched exception in parsing and checking params.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static Func<ITelegramBotClient, T, CancellationToken, Task> CreateDelegate<T>(MethodInfo method)
|
internal static Func<ITelegramBotClient, T, CancellationToken, Task>? CreateDelegate<T>(MethodInfo method)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -70,7 +70,7 @@ public class TelegramHostedService : IHostedService
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.Log(LogLevel.Critical, new EventId(), ex, "Catched exception in CreateDelegate function: ");
|
Logger.Log(LogLevel.Critical, new EventId(), ex, "Catched exception in CreateDelegate function: ");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,10 +106,10 @@ public class TelegramHostedService : IHostedService
|
|||||||
|
|
||||||
if (methods.Count == 0)
|
if (methods.Count == 0)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("No methods found with required attributes");
|
Logger.LogWarning("No methods found with required attributes");
|
||||||
}
|
}
|
||||||
|
|
||||||
var isp = isc.BuildServiceProvider();
|
var isp = ServiceCollection.BuildServiceProvider();
|
||||||
foreach (var method in methods)
|
foreach (var method in methods)
|
||||||
{
|
{
|
||||||
var declaringType = method.DeclaringType!;
|
var declaringType = method.DeclaringType!;
|
||||||
@@ -156,7 +156,7 @@ public class TelegramHostedService : IHostedService
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.Log(LogLevel.Critical, new EventId(), ex, "Catched new exception when added methods: ");
|
Logger.Log(LogLevel.Critical, new EventId(), ex, "Catched new exception when added methods: ");
|
||||||
}
|
}
|
||||||
}, cancellationToken);
|
}, cancellationToken);
|
||||||
}
|
}
|
||||||
@@ -171,25 +171,26 @@ public class TelegramHostedService : IHostedService
|
|||||||
case { Message: { } message }:
|
case { Message: { } message }:
|
||||||
CommandHandler.Where(k => message.Text!.StartsWith(k.Key)).Select(async k =>
|
CommandHandler.Where(k => message.Text!.StartsWith(k.Key)).Select(async k =>
|
||||||
{
|
{
|
||||||
await k.Value(client, message, ctx);
|
await k.Value!(client, message, ctx);
|
||||||
return k;
|
return k;
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case { EditedMessage: { } message }:
|
case { EditedMessage: { } message }:
|
||||||
EditedMessageHandler.ForEach(async k => await k(client, message, ctx));
|
// ReSharper disable once AsyncVoidLambda
|
||||||
|
EditedMessageHandler.ForEach(async k => await k!(client, message, ctx));
|
||||||
break;
|
break;
|
||||||
case { CallbackQuery: { } callbackQuery }:
|
case { CallbackQuery: { } callbackQuery }:
|
||||||
CallbackQueryHandler.Where(k => callbackQuery.Data!.StartsWith(k.Key))
|
CallbackQueryHandler.Where(k => callbackQuery.Data!.StartsWith(k.Key))
|
||||||
.Select(async k =>
|
.Select(async k =>
|
||||||
{
|
{
|
||||||
await k.Value(client, callbackQuery, ctx);
|
await k.Value!(client, callbackQuery, ctx);
|
||||||
return k;
|
return k;
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case { InlineQuery: { } inlineQuery }:
|
case { InlineQuery: { } inlineQuery }:
|
||||||
InlineHandler.Where(k => inlineQuery.Id.StartsWith(k.Key)).Select(async k =>
|
InlineHandler.Where(k => inlineQuery.Id.StartsWith(k.Key)).Select(async k =>
|
||||||
{
|
{
|
||||||
await k.Value(client, inlineQuery, ctx);
|
await k.Value!(client, inlineQuery, ctx);
|
||||||
return k;
|
return k;
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
@@ -197,13 +198,17 @@ public class TelegramHostedService : IHostedService
|
|||||||
if (PreCheckoutHandler != null) await PreCheckoutHandler(client, preCheckoutQuery, ctx);
|
if (PreCheckoutHandler != null) await PreCheckoutHandler(client, preCheckoutQuery, ctx);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
DefaultUpdateHandler.ForEach(async k => await k(client, update, ctx));
|
// ReSharper disable once AsyncVoidLambda
|
||||||
|
DefaultUpdateHandler.ForEach(async k => await k!(client, update, ctx));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.Log(LogLevel.Error, new EventId(), ex, "Catched exception in UpdateHandler: ");
|
if (ex is KeyNotFoundException)
|
||||||
|
Logger.Log(LogLevel.Warning, new EventId(), ex, "Key not found: ");
|
||||||
|
else
|
||||||
|
Logger.Log(LogLevel.Error, new EventId(), ex, "Caught exception in UpdateHandler: ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,7 +225,7 @@ public class TelegramHostedService : IHostedService
|
|||||||
UpdateHandler,
|
UpdateHandler,
|
||||||
Config.errorHandler ?? ((_, ex, _) =>
|
Config.errorHandler ?? ((_, ex, _) =>
|
||||||
{
|
{
|
||||||
_logger.LogError(ex, "Catched error in telegram bot working: ");
|
Logger.LogError(ex, "Catched error in telegram bot working: ");
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}),
|
}),
|
||||||
Config.ReceiverOptions,
|
Config.ReceiverOptions,
|
||||||
@@ -228,7 +233,7 @@ public class TelegramHostedService : IHostedService
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.Log(LogLevel.Critical, new EventId(), ex, "Failed to start. Catched exception: ");
|
Logger.Log(LogLevel.Critical, new EventId(), ex, "Failed to start. Catched exception: ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -240,7 +245,7 @@ public class TelegramHostedService : IHostedService
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.LogCritical(ex, "Failed to stop. Exception: ");
|
Logger.LogCritical(ex, "Failed to stop. Exception: ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
|
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<Version>1.0.2</Version>
|
<Version>1.0.3</Version>
|
||||||
<Authors>yawaflua</Authors>
|
<Authors>yawaflua</Authors>
|
||||||
<Title>yawaflua.Telegram.Net</Title>
|
<Title>yawaflua.Telegram.Net</Title>
|
||||||
<Description>Telegram.Bots extender pack, what provides to user attributes, which can used with services</Description>
|
<Description>Telegram.Bots extender pack, what provides to user attributes, which can used with services</Description>
|
||||||
@@ -19,8 +19,10 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.3" />
|
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version=">=7.0.0" />
|
||||||
<PackageReference Include="Telegram.Bot" Version="22.4.4" />
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version=">=7.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Logging" Version=">=7.0.0" />
|
||||||
|
<PackageReference Include="Telegram.Bot" Version="22.4.*" />
|
||||||
<None Include="..\README.md" Pack="true" PackagePath="\"/>
|
<None Include="..\README.md" Pack="true" PackagePath="\"/>
|
||||||
<None Include="..\LICENSE" Pack="true" PackagePath=""/>
|
<None Include="..\LICENSE" Pack="true" PackagePath=""/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user