PRBotBuilder - создание ботов

PRBotBuilder - позволяет гибко создавать новых ботов с использованием fluent build.

Пример создания бота через Builder:

var telegram = new PRBotBuilder("Token")
                    .SetBotId(0)
                    .AddAdmin(1111111)
                    .SetClearUpdatesOnStart(true)
                    .Build();

API:

/// <summary>
/// Сбилдить новый экземпляр класса PRBot.
/// </summary>
/// <returns>Экземпляр класса PRBot.</returns>
public PRBotBase Build()

/// <summary>
/// Сбросить параметры.
/// </summary>
/// <param name="token">Токен.</param>
public void ClearOptions(string token)

/// <summary>
/// Сбросить параметры.
/// </summary>
/// <param name="client">Клиент телеграм бота.</param>
public void ClearOptions(TelegramBotClient client)

/// <summary>
/// Установить обработчик обновлений.
/// </summary>
/// <param name="updateHandler">Обработчик обновлений.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetUpdateHandler(IPRUpdateHandler updateHandler)

/// <summary>
/// Установить регистратор команд.
/// </summary>
/// <param name="registerCommand">Регистратор команд.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetRegisterCommand(IRegisterCommand registerCommand)

/// <summary>
/// Установить обработчик обновлений.
/// </summary>
/// <param name="updateHandler">Обработчик обновлений.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetUpdateHandler(IPRUpdateHandler updateHandler)

/// <summary>
/// Установить менеджер управления администраторами.
/// </summary>
/// <param name="adminManager">Менеджер управления администраторами.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetAdminManager(IUserManager adminManager)

/// <summary>
/// Установить менеджер управления белым списком.
/// </summary>
/// <param name="whiteListManager">Менеджер управления белым списком.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetWhiteListManager(IUserManager whiteListManager)

/// <summary>
/// Установить новые настройки для белого списка.
/// </summary>
/// <param name="settings">Настройки для белого списка.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetWhiteListSettings(WhiteListSettings settings)

/// <summary>
/// Добавить промежуточный обработчик.
/// </summary>
/// <param name="middleware">Промежуточный обработчик.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddMiddlewares(MiddlewareBase middleware)

/// <summary>
/// Добавить промежуточные обработчики.
/// </summary>
/// <param name="middlewares">Промежуточные обработчики.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddMiddlewares(params MiddlewareBase[] middlewares)

/// <summary>
/// Установить регистратор команд.
/// </summary>
/// <param name="registerCommand">Регистратор команд.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetRegisterCommand(IRegisterCommand registerCommand)

/// <summary>
/// Добавить чекер перед выполнением команд.
/// </summary>
/// <param name="checker">Чекер.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddCommandChecker(InternalChecker checker)

/// <summary>
/// Добавить чекеры перед выполнением команд.
/// </summary>
/// <param name="checkers">Чекеры.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddCommandChecker(List<InternalChecker> checkers)

/// <summary>
/// Установить токен в билдере.
/// </summary>
/// <param name="token">Токен.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetToken(string token)

/// <summary>
/// Установить идентификатор бота.
/// </summary>
/// <param name="botId">Идентификатор бота.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetBotId(long botId)

/// <summary>
/// Сбрасывать все обновление при запуске бота.
/// </summary>
/// <param name="flag">True - да, False - нет.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetClearUpdatesOnStart(bool flag)

/// <summary>
/// Добавить динамическую команду.
/// </summary>
/// <param name="key">Ключ.</param>
/// <param name="value">Значение.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddReplyDynamicCommand(string key, string value)

/// <summary>
/// Добавить динамические команды.
/// </summary>
/// <param name="dynamicCommands">Коллекция динамических команд.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddReplyDynamicCommands(Dictionary<string, string> dynamicCommands)

/// <summary>
/// Добавить администратора бота.
/// </summary>
/// <param name="telegramId">Идентификатор пользователя.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddAdmin(long telegramId)

/// <summary>
/// Добавить администраторов бота.
/// </summary>
/// <param name="telegramIds">Коллекция идентификаторов пользователей.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddAdmins(List<long> telegramIds)

/// <summary>
/// Добавить пользователя в белый список.
/// </summary>
/// <param name="telegramId">Идентификатор пользователя.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddUserWhiteList(long telegramId)

/// <summary>
/// Добавить пользователей в белый список.
/// </summary>
/// <param name="telegramIds">Коллекция идентификаторов пользователей.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddUsersWhiteList(List<long> telegramIds)

/// <summary>
/// Добавить путь до конфигурационного файла.
/// </summary>
/// <param name="key">Ключ.</param>
/// <param name="path">Путь.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddConfigPath(string key, string path)

/// <summary>
/// Добавить путь до конфигурационных файлов.
/// </summary>
/// <param name="configPaths">Коллекция путей.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddConfigPaths(Dictionary<string, string> configPaths)

/// <summary>
/// Добавить сервис провайдер в бот.
/// </summary>
/// <param name="serviceProvider">Сервис провайдер для DI.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetServiceProvider(IServiceProvider serviceProvider)

/// <summary>
/// Добавить параметры приемника.
/// </summary>
/// <param name="recevierOptions">параметры приемника.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddRecevingOptions(ReceiverOptions recevierOptions)

/// <summary>
/// Использовать фабрику для создания бота.
/// </summary>
/// <param name="factory">Фабрика.</param>
/// <returns>Builder.</returns>
public PRBotBuilder UseFactory(PRBotFactoryBase factory)

/// <summary>
/// Установить URL для вебхука.
/// </summary>
/// <param name="url">URL вебхука.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetUrlWebHook(string url)

/// <summary>
/// Установить секретный токен для вебхука.
/// </summary>
/// <param name="secretToken">Секретный токен.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetSecretTokenWebHook(string secretToken)

/// <summary>
/// Установить IP-адрес для вебхука.
/// </summary>
/// <param name="ipAddres">IP-адрес.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetIpAddresWebHook(string ipAddres)

/// <summary>
/// Установить флаг сброса отложенных обновлений для вебхука.
/// </summary>
/// <param name="flag">Флаг сброса отложенных обновлений.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetDropPendingUpdates(bool flag)

/// <summary>
/// Установить максимальное количество подключений для вебхука.
/// </summary>
/// <param name="maxConnections">Максимальное количество подключений.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetMaxConnectionsWebHook(int maxConnections)

/// <summary>
/// Установить клиент Telegram.
/// </summary>
/// <param name="client">Клиент Telegram.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetTelegramClient(TelegramBotClient client)

/// <summary>
///  Установить сертификат для вебхука.
/// </summary>
/// <param name="certificate">Сертификат.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetCertificateWebHook(InputFileStream certificate)

/// <summary>
/// Добавить новый обработчик команд для callbackQuery (inline).
/// </summary>
/// <param name="handler">Обработчик.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddCallbackQueryCommandHandlers(params ICallbackQueryCommandHandler[] handlers)

/// <summary>
/// Добавить новые обработчики команд для callbackQuery (inline).
/// </summary>
/// <param name="handlers">Обработчик.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddCallbackQueryCommandHandlers(List<ICallbackQueryCommandHandler> handlers)
		
/// <summary>
/// Добавить новый обработчик команд для message.
/// </summary>
/// <param name="handler">Обработчик.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddMessageCommandHandlers(params IMessageCommandHandler[] handlers)

/// <summary>
/// Добавить новые обработчики команд для message.
/// </summary>
/// <param name="handlers">Обработчик.</param>
/// <returns>Builder.</returns>
public PRBotBuilder AddMessageCommandHandlers(List<IMessageCommandHandler> handlers)

/// <summary>
/// Конструктор.
/// </summary>
/// <param name="token">Токен.</param>
public PRBotBuilder(string token)

/// <summary>
/// Конструктор.
/// </summary>
/// <param name="client">Клиент.</param>
public PRBotBuilder(TelegramBotClient client)

/// <summary>
/// Установить параметр ограничения спама в логах ошибок.
/// </summary>
/// <param name="minute">Количество минут.</param>
/// <returns>Builder.</returns>
public PRBotBuilder SetAntiSpamErrorMinute(int minute)
{
    this.options.AntiSpamErrorMinute = minute;
    return this;
}

Last updated