mirror of
https://github.com/Bubuni-Team/telegram-bot.git
synced 2026-07-31 00:29:24 +03:00
Update to new Telegram.Bot.
This commit is contained in:
+1
-1
@@ -7,7 +7,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<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.Design" Version="3.1.2" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="3.1.2" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="3.1.2" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.2" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.2" />
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ namespace Kruzya.TelegramBot.Core
|
|||||||
[HandleEverything]
|
[HandleEverything]
|
||||||
public async Task Listener()
|
public async Task Listener()
|
||||||
{
|
{
|
||||||
|
Console.WriteLine("handle");
|
||||||
foreach (var message in new Message[] {RawUpdate.Message, RawUpdate.EditedMessage, RawUpdate.ChannelPost, RawUpdate.EditedChannelPost})
|
foreach (var message in new Message[] {RawUpdate.Message, RawUpdate.EditedMessage, RawUpdate.ChannelPost, RawUpdate.EditedChannelPost})
|
||||||
{
|
{
|
||||||
if (message == null)
|
if (message == null)
|
||||||
@@ -37,7 +38,7 @@ namespace Kruzya.TelegramBot.Core
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
await VerifyChatPair(message);
|
return new Task();
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new ArgumentException();
|
throw new ArgumentException();
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ using System.Text;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BotFramework;
|
using BotFramework;
|
||||||
|
using BotFramework.Abstractions;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Telegram.Bot;
|
||||||
using Telegram.Bot.Exceptions;
|
using Telegram.Bot.Exceptions;
|
||||||
using Telegram.Bot.Types;
|
using Telegram.Bot.Types;
|
||||||
|
|
||||||
@@ -15,11 +17,11 @@ namespace Kruzya.TelegramBot.Core.Service
|
|||||||
private Timer _timer;
|
private Timer _timer;
|
||||||
|
|
||||||
protected readonly ILogger _logger;
|
protected readonly ILogger _logger;
|
||||||
protected readonly ITelegramBot _bot;
|
protected readonly IBotInstance _bot;
|
||||||
|
|
||||||
protected virtual TimeSpan TimerPeriod => TimeSpan.FromSeconds(45);
|
protected virtual TimeSpan TimerPeriod => TimeSpan.FromSeconds(45);
|
||||||
|
|
||||||
protected AbstractTimedHostedService(ILogger logger, ITelegramBot bot)
|
protected AbstractTimedHostedService(ILogger logger, IBotInstance bot)
|
||||||
{
|
{
|
||||||
_bot = bot;
|
_bot = bot;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
|
|||||||
@@ -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": {
|
"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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ using BotFramework.Setup;
|
|||||||
using Kruzya.TelegramBot.CombotAntiSpam.Combot;
|
using Kruzya.TelegramBot.CombotAntiSpam.Combot;
|
||||||
using Kruzya.TelegramBot.Core.Extensions;
|
using Kruzya.TelegramBot.Core.Extensions;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Telegram.Bot;
|
||||||
|
using Telegram.Bot.Types;
|
||||||
using Telegram.Bot.Types.Enums;
|
using Telegram.Bot.Types.Enums;
|
||||||
|
|
||||||
namespace Kruzya.TelegramBot.CombotAntiSpam
|
namespace Kruzya.TelegramBot.CombotAntiSpam
|
||||||
@@ -24,7 +26,15 @@ namespace Kruzya.TelegramBot.CombotAntiSpam
|
|||||||
[Message(InChat.Public, MessageFlag.HasNewChatMembers)]
|
[Message(InChat.Public, MessageFlag.HasNewChatMembers)]
|
||||||
public async Task OnUserJoined()
|
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)
|
foreach (var member in RawUpdate.Message.NewChatMembers)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System.Threading.Tasks;
|
|||||||
using BotFramework;
|
using BotFramework;
|
||||||
using BotFramework.Attributes;
|
using BotFramework.Attributes;
|
||||||
using Kruzya.TelegramBot.Destiny2.WhereIsXur.Provider;
|
using Kruzya.TelegramBot.Destiny2.WhereIsXur.Provider;
|
||||||
|
using Telegram.Bot;
|
||||||
using Telegram.Bot.Types.Enums;
|
using Telegram.Bot.Types.Enums;
|
||||||
|
|
||||||
namespace Kruzya.TelegramBot.Destiny2.WhereIsXur
|
namespace Kruzya.TelegramBot.Destiny2.WhereIsXur
|
||||||
|
|||||||
@@ -31,10 +31,6 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Data
|
|||||||
string content = String.Empty;
|
string content = String.Empty;
|
||||||
switch (parseMode)
|
switch (parseMode)
|
||||||
{
|
{
|
||||||
case ParseMode.Default:
|
|
||||||
content = RawRepresentation(text);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ParseMode.Html:
|
case ParseMode.Html:
|
||||||
content = HtmlRepresentation(text);
|
content = HtmlRepresentation(text);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ using BotFramework.Setup;
|
|||||||
using Kruzya.TelegramBot.Core.Extensions;
|
using Kruzya.TelegramBot.Core.Extensions;
|
||||||
using Kruzya.TelegramBot.RichSiteSummary.Data;
|
using Kruzya.TelegramBot.RichSiteSummary.Data;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Telegram.Bot;
|
||||||
using Telegram.Bot.Types;
|
using Telegram.Bot.Types;
|
||||||
using Telegram.Bot.Types.Enums;
|
using Telegram.Bot.Types.Enums;
|
||||||
using Telegram.Bot.Types.ReplyMarkups;
|
using Telegram.Bot.Types.ReplyMarkups;
|
||||||
@@ -51,24 +52,21 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Handler
|
|||||||
var callbackData = $"feed|{from.Id}|do|{feed.FeedId}";
|
var callbackData = $"feed|{from.Id}|do|{feed.FeedId}";
|
||||||
if (await _dbContext.Subscriptions.HasSubscription(chat, feed))
|
if (await _dbContext.Subscriptions.HasSubscription(chat, feed))
|
||||||
{
|
{
|
||||||
buttons.Add(new InlineKeyboardButton()
|
buttons.Add(new InlineKeyboardButton("Unsubscribe")
|
||||||
{
|
{
|
||||||
CallbackData = callbackData,
|
CallbackData = callbackData,
|
||||||
Text = "Unsubscribe"
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
buttons.Add(new InlineKeyboardButton()
|
buttons.Add(new InlineKeyboardButton("Subscribe")
|
||||||
{
|
{
|
||||||
CallbackData = callbackData,
|
CallbackData = callbackData,
|
||||||
Text = "Subscribe"
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
buttons.Add(new InlineKeyboardButton()
|
buttons.Add(new InlineKeyboardButton("Last 10 posts")
|
||||||
{
|
{
|
||||||
CallbackData = $"feed|{from.Id}|last|{feed.FeedId}",
|
CallbackData = $"feed|{from.Id}|last|{feed.FeedId}",
|
||||||
Text = "Last 10 posts"
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var inlineButtons = new InlineKeyboardMarkup(buttons);
|
var inlineButtons = new InlineKeyboardMarkup(buttons);
|
||||||
@@ -155,10 +153,9 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Handler
|
|||||||
foreach (var feed in result)
|
foreach (var feed in result)
|
||||||
{
|
{
|
||||||
row = new List<InlineKeyboardButton>();
|
row = new List<InlineKeyboardButton>();
|
||||||
row.Add(new InlineKeyboardButton()
|
row.Add(new InlineKeyboardButton(feed.Title)
|
||||||
{
|
{
|
||||||
CallbackData = $"feed|{From.Id}|show|{feed.FeedId.ToString()}",
|
CallbackData = $"feed|{From.Id}|show|{feed.FeedId.ToString()}",
|
||||||
Text = feed.Title
|
|
||||||
});
|
});
|
||||||
|
|
||||||
buttons.Add(row);
|
buttons.Add(row);
|
||||||
@@ -169,25 +166,22 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Handler
|
|||||||
row = new List<InlineKeyboardButton>();
|
row = new List<InlineKeyboardButton>();
|
||||||
if (backButton)
|
if (backButton)
|
||||||
{
|
{
|
||||||
row.Add(new InlineKeyboardButton()
|
row.Add(new InlineKeyboardButton("⬅️")
|
||||||
{
|
{
|
||||||
CallbackData = $"feed|{From.Id}|page|{query}|{page - 1}",
|
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",
|
CallbackData = $"feed|{From.Id}|donothing",
|
||||||
Text = $"{page + 1}/{(totalCount / elementsOnPage) + 1}"
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (nextButton)
|
if (nextButton)
|
||||||
{
|
{
|
||||||
row.Add(new InlineKeyboardButton()
|
row.Add(new InlineKeyboardButton("➡️")
|
||||||
{
|
{
|
||||||
CallbackData = $"feed|{From.Id}|page|{query}|{page + 1}",
|
CallbackData = $"feed|{From.Id}|page|{query}|{page + 1}",
|
||||||
Text = "➡️"
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,12 +190,12 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Handler
|
|||||||
|
|
||||||
if (editableMessage == null)
|
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));
|
null, true, true, 0, replyMarkup: new InlineKeyboardMarkup(buttons));
|
||||||
}
|
}
|
||||||
else
|
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));
|
new InlineKeyboardMarkup(buttons));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using System.Threading.Tasks;
|
|||||||
using BotFramework.Attributes;
|
using BotFramework.Attributes;
|
||||||
using Kruzya.TelegramBot.RichSiteSummary.Data;
|
using Kruzya.TelegramBot.RichSiteSummary.Data;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Telegram.Bot;
|
||||||
using Telegram.Bot.Types.Enums;
|
using Telegram.Bot.Types.Enums;
|
||||||
|
|
||||||
namespace Kruzya.TelegramBot.RichSiteSummary.Handler
|
namespace Kruzya.TelegramBot.RichSiteSummary.Handler
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ using System.Collections.Concurrent;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BotFramework;
|
using BotFramework;
|
||||||
|
using BotFramework.Abstractions;
|
||||||
using Kruzya.TelegramBot.Core.Service;
|
using Kruzya.TelegramBot.Core.Service;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Telegram.Bot;
|
||||||
using Telegram.Bot.Exceptions;
|
using Telegram.Bot.Exceptions;
|
||||||
using Telegram.Bot.Types;
|
using Telegram.Bot.Types;
|
||||||
|
|
||||||
@@ -17,7 +19,7 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Service
|
|||||||
protected readonly ConcurrentQueue<UserMessage> _queue;
|
protected readonly ConcurrentQueue<UserMessage> _queue;
|
||||||
protected readonly ConcurrentQueue<UserUnsubscribe> _unsubscribeQueue;
|
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;
|
_unsubscribeQueue = userUnsubscribeQueue;
|
||||||
_queue = userMessageQueue;
|
_queue = userMessageQueue;
|
||||||
|
|||||||
@@ -3,10 +3,12 @@ using System.Collections.Concurrent;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BotFramework;
|
using BotFramework;
|
||||||
|
using BotFramework.Abstractions;
|
||||||
using Kruzya.TelegramBot.Core.Service;
|
using Kruzya.TelegramBot.Core.Service;
|
||||||
using Kruzya.TelegramBot.RichSiteSummary.Data;
|
using Kruzya.TelegramBot.RichSiteSummary.Data;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Telegram.Bot;
|
||||||
using Telegram.Bot.Types;
|
using Telegram.Bot.Types;
|
||||||
|
|
||||||
namespace Kruzya.TelegramBot.RichSiteSummary.Service
|
namespace Kruzya.TelegramBot.RichSiteSummary.Service
|
||||||
@@ -18,7 +20,7 @@ namespace Kruzya.TelegramBot.RichSiteSummary.Service
|
|||||||
|
|
||||||
protected override TimeSpan TimerPeriod => TimeSpan.FromSeconds(1);
|
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;
|
_scopeFactory = scopeFactory;
|
||||||
_queue = queue;
|
_queue = queue;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ using Kruzya.TelegramBot.Core.Cache;
|
|||||||
using Kruzya.TelegramBot.Core.Data;
|
using Kruzya.TelegramBot.Core.Data;
|
||||||
using Kruzya.TelegramBot.Core.Extensions;
|
using Kruzya.TelegramBot.Core.Extensions;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Telegram.Bot;
|
||||||
using Telegram.Bot.Types;
|
using Telegram.Bot.Types;
|
||||||
using Telegram.Bot.Types.Enums;
|
using Telegram.Bot.Types.Enums;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
<TargetFramework>net5.0</TargetFramework>
|
||||||
|
|
||||||
<IsPackable>false</IsPackable>
|
<IsPackable>false</IsPackable>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user