work on commands

This commit is contained in:
2024-05-29 01:48:45 +03:00
parent 56296843f3
commit db5cd93977
9 changed files with 170 additions and 0 deletions
@@ -0,0 +1,17 @@
using Newtonsoft.Json;
using Telegram.Bot.Types.Enums;
namespace Kruzya.TelegramBot.CustomChatAddOns.Data.WebhookCommand
{
public abstract class BaseReplyMessage
{
[JsonProperty("content")]
public string Content { get; set; }
[JsonProperty("parse_mode")]
public ParseMode? ParseMode { get; set; }
[JsonProperty("disable_notification")]
public bool? DisableNotification { get; set; }
}
}
@@ -0,0 +1,10 @@
using Telegram.Bot;
using Telegram.Bot.Types;
namespace Kruzya.TelegramBot.CustomChatAddOns.Data.WebhookCommand
{
public interface IWebhookCommand
{
public Task Execute(ITelegramBotClient botClient, Message message);
}
}
@@ -0,0 +1,20 @@
using Kruzya.TelegramBot.CustomChatAddOns.Data.InputFile;
using Newtonsoft.Json;
using Telegram.Bot;
using Telegram.Bot.Types;
namespace Kruzya.TelegramBot.CustomChatAddOns.Data.WebhookCommand
{
public class PhotoReplyMessage : BaseReplyMessage, IWebhookCommand
{
[JsonProperty("photo")]
public ICustomInputFile Photo { get; set; }
public async Task Execute(ITelegramBotClient botClient, Message message)
{
await botClient.SendPhotoAsync(message.Chat.Id, Photo.Convert(),
caption: Content, parseMode: ParseMode,
disableNotification: DisableNotification);
}
}
}
@@ -0,0 +1,21 @@
using Kruzya.TelegramBot.Core.Attributes;
using Newtonsoft.Json;
using Telegram.Bot;
using Telegram.Bot.Types;
namespace Kruzya.TelegramBot.CustomChatAddOns.Data.WebhookCommand
{
[AllowedSerializableType("text_reply_message")]
public class TextReplyMessage : BaseReplyMessage, IWebhookCommand
{
[JsonProperty("disable_web_page_preview")]
public bool? DisableWebPagePreview { get; set; }
public async Task Execute(ITelegramBotClient botClient, Message message)
{
await botClient.SendTextMessageAsync(message.Chat.Id, Content,
parseMode: ParseMode, disableNotification: DisableNotification,
disableWebPagePreview: DisableWebPagePreview);
}
}
}