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