Update to new Telegram.Bot.

This commit is contained in:
West14
2021-12-25 16:41:17 +02:00
parent de08c74a5d
commit e1c404c660
13 changed files with 49 additions and 29 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AleXr64.BotFramework" Version="0.5.21" />
<PackageReference Include="AleXr64.BotFramework" Version="0.6.3-gea779222d8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="3.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.2" />
+2 -1
View File
@@ -30,6 +30,7 @@ namespace Kruzya.TelegramBot.Core
[HandleEverything]
public async Task Listener()
{
Console.WriteLine("handle");
foreach (var message in new Message[] {RawUpdate.Message, RawUpdate.EditedMessage, RawUpdate.ChannelPost, RawUpdate.EditedChannelPost})
{
if (message == null)
@@ -37,7 +38,7 @@ namespace Kruzya.TelegramBot.Core
continue;
}
await VerifyChatPair(message);
return new Task();
}
throw new ArgumentException();
+4 -2
View File
@@ -3,8 +3,10 @@ using System.Text;
using System.Threading;
using System.Threading.Tasks;
using BotFramework;
using BotFramework.Abstractions;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Telegram.Bot;
using Telegram.Bot.Exceptions;
using Telegram.Bot.Types;
@@ -15,11 +17,11 @@ namespace Kruzya.TelegramBot.Core.Service
private Timer _timer;
protected readonly ILogger _logger;
protected readonly ITelegramBot _bot;
protected readonly IBotInstance _bot;
protected virtual TimeSpan TimerPeriod => TimeSpan.FromSeconds(45);
protected AbstractTimedHostedService(ILogger logger, ITelegramBot bot)
protected AbstractTimedHostedService(ILogger logger, IBotInstance bot)
{
_bot = bot;
_logger = logger;
+11 -1
View File
@@ -7,7 +7,17 @@
}
},
"BotConfig": {
"token": "5093569980:AAEnrlpg2VYD0CyQYIZtWpUuRrlpkDG8NaI"
},
"ModuleDirectories": [
"C:\\Users\\Andriy\\RiderProjects\\telegram-bot\\modules\\Destiny2.WhereIsXur\\bin\\Debug\\net5.0",
"C:\\Users\\Andriy\\RiderProjects\\telegram-bot\\modules\\RichSiteSummary\\bin\\Debug\\net5.0"
],
"ConnectionStrings": {
"DefaultConnection": "server=127.0.0.1;UserId=rider;Password=rider;database=rider;port=8889"
"DefaultConnection": "server=127.0.0.1;UserId=root;Password=;database=kruzyatgbot-core;port=3306",
"RichSiteSummary": "server=127.0.0.1;UserId=root;Password=;database=kruzyatgbot-rss;port=3306"
}
}
+11 -1
View File
@@ -7,6 +7,8 @@ using BotFramework.Setup;
using Kruzya.TelegramBot.CombotAntiSpam.Combot;
using Kruzya.TelegramBot.Core.Extensions;
using Microsoft.Extensions.Logging;
using Telegram.Bot;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
namespace Kruzya.TelegramBot.CombotAntiSpam
@@ -24,7 +26,15 @@ namespace Kruzya.TelegramBot.CombotAntiSpam
[Message(InChat.Public, MessageFlag.HasNewChatMembers)]
public async Task OnUserJoined()
{
var canKickMembers = ((await Bot.GetChatMemberAsync(Chat, (await Bot.GetMeAsync()).Id)).CanRestrictMembers == true);
// var canKickMembers = (await Bot.GetChatMemberAsync(Chat, (await Bot.GetMeAsync()).Id)).CanRestrictMembers == true;
var meUserId = (await Bot.GetMeAsync()).Id;
var meChatMember = await Bot.GetChatMemberAsync(Chat, meUserId);
var canKickMembers = false;
if (meChatMember is ChatMemberAdministrator adminMember)
{
canKickMembers = adminMember.CanRestrictMembers;
}
foreach (var member in RawUpdate.Message.NewChatMembers)
{
@@ -2,6 +2,7 @@ using System.Threading.Tasks;
using BotFramework;
using BotFramework.Attributes;
using Kruzya.TelegramBot.Destiny2.WhereIsXur.Provider;
using Telegram.Bot;
using Telegram.Bot.Types.Enums;
namespace Kruzya.TelegramBot.Destiny2.WhereIsXur
@@ -31,10 +31,6 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Data
string content = String.Empty;
switch (parseMode)
{
case ParseMode.Default:
content = RawRepresentation(text);
break;
case ParseMode.Html:
content = HtmlRepresentation(text);
break;
+10 -16
View File
@@ -9,6 +9,7 @@ using BotFramework.Setup;
using Kruzya.TelegramBot.Core.Extensions;
using Kruzya.TelegramBot.RichSiteSummary.Data;
using Microsoft.EntityFrameworkCore;
using Telegram.Bot;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
using Telegram.Bot.Types.ReplyMarkups;
@@ -51,24 +52,21 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Handler
var callbackData = $"feed|{from.Id}|do|{feed.FeedId}";
if (await _dbContext.Subscriptions.HasSubscription(chat, feed))
{
buttons.Add(new InlineKeyboardButton()
buttons.Add(new InlineKeyboardButton("Unsubscribe")
{
CallbackData = callbackData,
Text = "Unsubscribe"
});
}
else
{
buttons.Add(new InlineKeyboardButton()
buttons.Add(new InlineKeyboardButton("Subscribe")
{
CallbackData = callbackData,
Text = "Subscribe"
});
}
buttons.Add(new InlineKeyboardButton()
buttons.Add(new InlineKeyboardButton("Last 10 posts")
{
CallbackData = $"feed|{from.Id}|last|{feed.FeedId}",
Text = "Last 10 posts"
});
var inlineButtons = new InlineKeyboardMarkup(buttons);
@@ -155,10 +153,9 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Handler
foreach (var feed in result)
{
row = new List<InlineKeyboardButton>();
row.Add(new InlineKeyboardButton()
row.Add(new InlineKeyboardButton(feed.Title)
{
CallbackData = $"feed|{From.Id}|show|{feed.FeedId.ToString()}",
Text = feed.Title
});
buttons.Add(row);
@@ -169,25 +166,22 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Handler
row = new List<InlineKeyboardButton>();
if (backButton)
{
row.Add(new InlineKeyboardButton()
row.Add(new InlineKeyboardButton("⬅️")
{
CallbackData = $"feed|{From.Id}|page|{query}|{page - 1}",
Text = "⬅️"
});
}
row.Add(new InlineKeyboardButton()
row.Add(new InlineKeyboardButton($"{page + 1}/{(totalCount / elementsOnPage) + 1}")
{
CallbackData = $"feed|{From.Id}|donothing",
Text = $"{page + 1}/{(totalCount / elementsOnPage) + 1}"
});
if (nextButton)
{
row.Add(new InlineKeyboardButton()
row.Add(new InlineKeyboardButton("➡️")
{
CallbackData = $"feed|{From.Id}|page|{query}|{page + 1}",
Text = "➡️"
});
}
@@ -196,12 +190,12 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Handler
if (editableMessage == null)
{
await Bot.SendTextMessageAsync(Chat, "Select the feed for viewing details", ParseMode.Default,
await Bot.SendTextMessageAsync(Chat, "Select the feed for viewing details", null,
null, true, true, 0, replyMarkup: new InlineKeyboardMarkup(buttons));
}
else
{
await Bot.EditMessageTextAsync(editableMessage.Chat, editableMessage.MessageId, "Select the feed for viewing details", ParseMode.Default, null, false,
await Bot.EditMessageTextAsync(editableMessage.Chat, editableMessage.MessageId, "Select the feed for viewing details", null, null, false,
new InlineKeyboardMarkup(buttons));
}
@@ -4,6 +4,7 @@ using System.Threading.Tasks;
using BotFramework.Attributes;
using Kruzya.TelegramBot.RichSiteSummary.Data;
using Microsoft.EntityFrameworkCore;
using Telegram.Bot;
using Telegram.Bot.Types.Enums;
namespace Kruzya.TelegramBot.RichSiteSummary.Handler
@@ -3,8 +3,10 @@ using System.Collections.Concurrent;
using System.Text;
using System.Threading.Tasks;
using BotFramework;
using BotFramework.Abstractions;
using Kruzya.TelegramBot.Core.Service;
using Microsoft.Extensions.Logging;
using Telegram.Bot;
using Telegram.Bot.Exceptions;
using Telegram.Bot.Types;
@@ -17,7 +19,7 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Service
protected readonly ConcurrentQueue<UserMessage> _queue;
protected readonly ConcurrentQueue<UserUnsubscribe> _unsubscribeQueue;
public MessageSender(ILogger<MessageSender> logger, ITelegramBot bot, ConcurrentQueue<UserMessage> userMessageQueue, ConcurrentQueue<UserUnsubscribe> userUnsubscribeQueue) : base(logger, bot)
public MessageSender(ILogger<MessageSender> logger, IBotInstance bot, ConcurrentQueue<UserMessage> userMessageQueue, ConcurrentQueue<UserUnsubscribe> userUnsubscribeQueue) : base(logger, bot)
{
_unsubscribeQueue = userUnsubscribeQueue;
_queue = userMessageQueue;
@@ -3,10 +3,12 @@ using System.Collections.Concurrent;
using System.Linq;
using System.Threading.Tasks;
using BotFramework;
using BotFramework.Abstractions;
using Kruzya.TelegramBot.Core.Service;
using Kruzya.TelegramBot.RichSiteSummary.Data;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Telegram.Bot;
using Telegram.Bot.Types;
namespace Kruzya.TelegramBot.RichSiteSummary.Service
@@ -18,7 +20,7 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Service
protected override TimeSpan TimerPeriod => TimeSpan.FromSeconds(1);
public Unsubscriber(ILogger<Unsubscriber> logger, ITelegramBot bot, ConcurrentQueue<UserUnsubscribe> queue, IServiceScopeFactory scopeFactory) : base(logger, bot)
public Unsubscriber(ILogger<Unsubscriber> logger, IBotInstance bot, ConcurrentQueue<UserUnsubscribe> queue, IServiceScopeFactory scopeFactory) : base(logger, bot)
{
_scopeFactory = scopeFactory;
_queue = queue;
+1
View File
@@ -9,6 +9,7 @@ using Kruzya.TelegramBot.Core.Cache;
using Kruzya.TelegramBot.Core.Data;
using Kruzya.TelegramBot.Core.Extensions;
using Microsoft.Extensions.Logging;
using Telegram.Bot;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
+1 -1
View File
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFramework>net5.0</TargetFramework>
<IsPackable>false</IsPackable>