Files
telegram-bot/modules/ChatManagement/Handler/Greet.cs
T
2023-01-02 20:13:41 +02:00

52 lines
1.6 KiB
C#

using System;
using System.Linq;
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;
}
[Message(InChat.Public, MessageFlag.HasNewChatMembers)]
public async Task HandleNewChatMembers()
{
var message = RawUpdate.Message!;
var members = message.NewChatMembers!;
var reply = new HtmlString();
string membersHtml;
if (members.Length > 1)
{
reply.Pre("Приветствуем новых участников!");
membersHtml = string.Join(", ", members.Select(u => u.ToHtml()));
}
else
{
reply.Pre("Приветствуем нового участника!");
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),
parseMode: ParseMode.Html, replyToMessageId: message.MessageId);
}
}