diff --git a/Core/Core.csproj b/Core/Core.csproj index 80edb00..0b2e869 100644 --- a/Core/Core.csproj +++ b/Core/Core.csproj @@ -7,7 +7,7 @@ - + diff --git a/Core/GeneralHandler.cs b/Core/GeneralHandler.cs index 7c49bd0..c4d7300 100644 --- a/Core/GeneralHandler.cs +++ b/Core/GeneralHandler.cs @@ -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(); diff --git a/Core/Service/AbstractTimedHostedService.cs b/Core/Service/AbstractTimedHostedService.cs index 1aa9fc1..c8b0016 100644 --- a/Core/Service/AbstractTimedHostedService.cs +++ b/Core/Service/AbstractTimedHostedService.cs @@ -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; diff --git a/Core/appsettings.Development.json b/Core/appsettings.Development.json index 464b352..45f769a 100644 --- a/Core/appsettings.Development.json +++ b/Core/appsettings.Development.json @@ -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" } } diff --git a/modules/CombotAntiSpam/UserJoinHandler.cs b/modules/CombotAntiSpam/UserJoinHandler.cs index e7a7745..60fced1 100644 --- a/modules/CombotAntiSpam/UserJoinHandler.cs +++ b/modules/CombotAntiSpam/UserJoinHandler.cs @@ -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) { diff --git a/modules/Destiny2.WhereIsXur/RequestHandler.cs b/modules/Destiny2.WhereIsXur/RequestHandler.cs index b051062..ea8ac7e 100644 --- a/modules/Destiny2.WhereIsXur/RequestHandler.cs +++ b/modules/Destiny2.WhereIsXur/RequestHandler.cs @@ -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 diff --git a/modules/RichSiteSummary/Data/RepresentableEntity.cs b/modules/RichSiteSummary/Data/RepresentableEntity.cs index d8086a3..4a498ee 100644 --- a/modules/RichSiteSummary/Data/RepresentableEntity.cs +++ b/modules/RichSiteSummary/Data/RepresentableEntity.cs @@ -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; diff --git a/modules/RichSiteSummary/Handler/FeedList.cs b/modules/RichSiteSummary/Handler/FeedList.cs index bc6c950..df123de 100644 --- a/modules/RichSiteSummary/Handler/FeedList.cs +++ b/modules/RichSiteSummary/Handler/FeedList.cs @@ -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(); - 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(); 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)); } diff --git a/modules/RichSiteSummary/Handler/StatsHandler.cs b/modules/RichSiteSummary/Handler/StatsHandler.cs index e84bad0..3e0863d 100644 --- a/modules/RichSiteSummary/Handler/StatsHandler.cs +++ b/modules/RichSiteSummary/Handler/StatsHandler.cs @@ -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 diff --git a/modules/RichSiteSummary/Service/MessageSender.cs b/modules/RichSiteSummary/Service/MessageSender.cs index c79a8fa..70294eb 100644 --- a/modules/RichSiteSummary/Service/MessageSender.cs +++ b/modules/RichSiteSummary/Service/MessageSender.cs @@ -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 _queue; protected readonly ConcurrentQueue _unsubscribeQueue; - public MessageSender(ILogger logger, ITelegramBot bot, ConcurrentQueue userMessageQueue, ConcurrentQueue userUnsubscribeQueue) : base(logger, bot) + public MessageSender(ILogger logger, IBotInstance bot, ConcurrentQueue userMessageQueue, ConcurrentQueue userUnsubscribeQueue) : base(logger, bot) { _unsubscribeQueue = userUnsubscribeQueue; _queue = userMessageQueue; diff --git a/modules/RichSiteSummary/Service/Unsubscriber.cs b/modules/RichSiteSummary/Service/Unsubscriber.cs index fc4efce..3de8acc 100644 --- a/modules/RichSiteSummary/Service/Unsubscriber.cs +++ b/modules/RichSiteSummary/Service/Unsubscriber.cs @@ -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 logger, ITelegramBot bot, ConcurrentQueue queue, IServiceScopeFactory scopeFactory) : base(logger, bot) + public Unsubscriber(ILogger logger, IBotInstance bot, ConcurrentQueue queue, IServiceScopeFactory scopeFactory) : base(logger, bot) { _scopeFactory = scopeFactory; _queue = queue; diff --git a/modules/UrlLimitations/MessageHandler.cs b/modules/UrlLimitations/MessageHandler.cs index fc65dc7..0bc4726 100644 --- a/modules/UrlLimitations/MessageHandler.cs +++ b/modules/UrlLimitations/MessageHandler.cs @@ -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; diff --git a/tests/Tests.csproj b/tests/Tests.csproj index fab280a..5e99fe4 100644 --- a/tests/Tests.csproj +++ b/tests/Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 false