2023-07-29 15:03:45 +03:00
|
|
|
using System.Linq;
|
2022-04-21 17:42:44 +03:00
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using BotFramework;
|
|
|
|
|
using BotFramework.Attributes;
|
|
|
|
|
using BotFramework.Enums;
|
|
|
|
|
using BotFramework.Utils;
|
|
|
|
|
using Kruzya.TelegramBot.Core.Extensions;
|
|
|
|
|
using Telegram.Bot;
|
|
|
|
|
using Telegram.Bot.Types.Enums;
|
|
|
|
|
using West.TelegramBot.ChatManagement.Service;
|
|
|
|
|
|
|
|
|
|
namespace West.TelegramBot.ChatManagement.Handler;
|
|
|
|
|
|
|
|
|
|
public class Greet : BotEventHandler
|
|
|
|
|
{
|
|
|
|
|
private readonly RulesService _rulesService;
|
|
|
|
|
|
|
|
|
|
public Greet(RulesService rulesService)
|
|
|
|
|
{
|
|
|
|
|
_rulesService = rulesService;
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-29 01:50:28 +03:00
|
|
|
[InChat(InChat.Public)]
|
|
|
|
|
[Message(MessageFlag.HasNewChatMembers)]
|
2022-04-21 17:42:44 +03:00
|
|
|
public async Task HandleNewChatMembers()
|
|
|
|
|
{
|
|
|
|
|
var message = RawUpdate.Message!;
|
|
|
|
|
var members = message.NewChatMembers!;
|
|
|
|
|
var reply = new HtmlString();
|
|
|
|
|
string membersHtml;
|
|
|
|
|
if (members.Length > 1)
|
|
|
|
|
{
|
2023-11-03 20:54:52 +02:00
|
|
|
reply.Code("Приветствуем новых участников!");
|
2022-04-21 17:42:44 +03:00
|
|
|
membersHtml = string.Join(", ", members.Select(u => u.ToHtml()));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2023-11-03 20:54:52 +02:00
|
|
|
reply.Code("Приветствуем нового участника!");
|
2022-04-21 17:42:44 +03:00
|
|
|
membersHtml = members.First().ToHtml();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
reply.Br().TextBr("{0}");
|
|
|
|
|
|
|
|
|
|
if (await _rulesService.HasRulesAsync(Chat))
|
|
|
|
|
{
|
|
|
|
|
reply.Text("Пожалуйста, ознакомьтесь с правилами. /rules");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await Bot.SendTextMessageAsync(Chat.Id, string.Format(reply.ToString(), membersHtml),
|
2023-01-02 19:01:03 +02:00
|
|
|
parseMode: ParseMode.Html, replyToMessageId: message.MessageId);
|
2022-04-21 17:42:44 +03:00
|
|
|
}
|
|
|
|
|
}
|