Добавлены новые методы отправки сообщений
This commit is contained in:
102
BotPages.Core/Abstractions/MessengerAdapterBase.cs
Normal file
102
BotPages.Core/Abstractions/MessengerAdapterBase.cs
Normal file
@@ -0,0 +1,102 @@
|
||||
using BotPages.Core.Context;
|
||||
using BotPages.Core.Messaging;
|
||||
|
||||
namespace BotPages.Core.Abstractions;
|
||||
|
||||
/// <summary>
|
||||
/// Базовый класс для адаптеров мессенджеров.
|
||||
/// </summary>
|
||||
public abstract class MessengerAdapterBase : IMessengerAdapterSetup
|
||||
{
|
||||
/// <summary>
|
||||
/// Уникальный идентификатор адаптера.
|
||||
/// </summary>
|
||||
public string AdapterId { get; internal set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Тип адаптера (Telegram, VK, WhatsApp и т.д.).
|
||||
/// </summary>
|
||||
public abstract string AdapterType { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Название адаптера для отображения.
|
||||
/// </summary>
|
||||
public string DisplayName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Доступные возможности мессенджера.
|
||||
/// </summary>
|
||||
public abstract Capabilities Capabilities { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Универсальный метод отправки с использованием общего описания запроса.
|
||||
/// </summary>
|
||||
public abstract Task<string?> SendAsync(SendRequest request, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Универсальный метод удаления сообщения.
|
||||
/// </summary>
|
||||
public abstract Task DeleteAsync(string chatId, string messageId, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Удалить несколько сообщений за раз.
|
||||
/// </summary>
|
||||
public abstract Task<bool> DeleteMultipleAsync(string chatId, IEnumerable<string> messageIds, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Редактировать только текст сообщения.
|
||||
/// </summary>
|
||||
public abstract Task<string?> EditTextAsync(string chatId, string messageId, string text,
|
||||
MessageFormat? format = null, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Редактировать только клавиатуру сообщения.
|
||||
/// </summary>
|
||||
public abstract Task<string?> EditButtonsAsync(string chatId, string messageId,
|
||||
IEnumerable<IEnumerable<InlineButton>>? inlineButtons = null,
|
||||
CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Закрепить сообщение в чате.
|
||||
/// </summary>
|
||||
public abstract Task<bool> PinMessageAsync(string chatId, string messageId, bool disableNotification = false,
|
||||
CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Открепить сообщение в чате.
|
||||
/// </summary>
|
||||
public abstract Task<bool> UnpinMessageAsync(string chatId, string messageId, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Получить информацию о сообщении.
|
||||
/// </summary>
|
||||
public abstract Task<MessageInfo?> GetMessageInfoAsync(string chatId, string messageId, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Переслать сообщение.
|
||||
/// </summary>
|
||||
public abstract Task<string?> ForwardMessageAsync(string fromChatId, string messageId, string toChatId,
|
||||
bool disableNotification = false, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Копировать сообщение с возможностью редактирования.
|
||||
/// </summary>
|
||||
public abstract Task<string?> CopyMessageAsync(string fromChatId, string messageId, string toChatId,
|
||||
string? caption = null, MessageFormat? captionFormat = null,
|
||||
bool disableNotification = false, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Создать билдер альбома для отправки медиагруппы.
|
||||
/// </summary>
|
||||
public abstract IAlbumBuilder CreateAlbumBuilder(PageContext ctx);
|
||||
|
||||
/// <summary>
|
||||
/// Вызывается при выходе со страницы.
|
||||
/// </summary>
|
||||
public abstract Task OnLeaveAsync(PageContext ctx, CancellationToken ct);
|
||||
|
||||
/// <summary>
|
||||
/// Запуск работы адаптера.
|
||||
/// </summary>
|
||||
public abstract Task StartAdapterAsync(Func<UpdateContext, Task> onUpdate, List<Routing.Command> commands, CancellationToken ct);
|
||||
}
|
||||
Reference in New Issue
Block a user