1- [ ![ Foo] ( https://img.shields.io/badge/Version-2.0 -brightgreen.svg?style=flat-square )] ( #versions )
1+ [ ![ Foo] ( https://img.shields.io/badge/Version-2.1 -brightgreen.svg?style=flat-square )] ( #versions )
22[ ![ Foo] ( https://img.shields.io/badge/Website-AlexGyver.ru-blue.svg?style=flat-square )] ( https://alexgyver.ru/ )
33[ ![ Foo] ( https://img.shields.io/badge/%E2%82%BD$%E2%82%AC%20%D0%9D%D0%B0%20%D0%BF%D0%B8%D0%B2%D0%BE-%D1%81%20%D1%80%D1%8B%D0%B1%D0%BA%D0%BE%D0%B9-orange.svg?style=flat-square )] ( https://alexgyver.ru/support_alex/ )
44
55# FastBot
6- Очень простая и быстрая библиотека для телеграм бота
7- - Оптимизирована для большой нагрузки (спокойно принимает 50 сообщ в секунду)
6+ Очень простая и быстрая библиотека для телеграм бота на esp8266/esp32
7+ - Работает на стандартных библиотеках
8+ - Работает без SSL
9+ - Оптимизирована для большой нагрузки
810- Опциональная установка ID чата для общения с ботом
911- Проверка обновлений вручную или по таймеру
10- - Сообщения приходят в функцию-обработчик
11- - Отправка сообщений в чат
12+ - Отправка/редактирование/ответ на сообщения
1213- Вывод меню вместо клавиатуры
1314- Вывод инлайн меню в сообщении
14- - Возможность включить ручной инкремент новых сообщений
15- - Работает без SSL
1615- Поддержка Unicode (другие языки + эмодзи)
17- - Работает на стандартных библиотеках
1816
1917### Совместимость
2018ESP8266, ESP32
@@ -59,17 +57,17 @@ FastBot bot(токен, лимит, порог, период);
5957## Документация
6058```cpp
6159// ============== НАСТРОЙКИ ==============
62- void setLimit(int limit); // макс кол-во сообщений на запрос
63- void setOvf(int ovf); // макс кол-во символов
64- void setPeriod(int period); // период опроса в мс (по умолч. 1000)
6560void setToken(String token); // изменить/задать токен бота
61+ void setChatID(String chatID); // установка ID чата. Можно несколько через запятую ("id1,id2,id3")
62+ void setPeriod(int period); // период опроса в мс (по умолч. 1000)
63+ void setLimit(int limit); // макс кол-во сообщений на запрос
64+ void setOvf(int ovf); // макс кол-во символов на запрос (защита от флуда)
6665void setBufferSizes(uint16_t rx, uint16_t tx); // установить размеры буфера на приём и отправку, по умолч. 512 и 512 байт (только для esp8266)
67- void setChatID(String chatID); // установка ID чата для парсинга сообщений. Можно несколько через запятую ("id1,id2,id3")
68-
66+
6967
7068// =============== ПАРСИНГ ===============
71- void attach(void (*handler)(String&, String&)); // подключение обработчика сообщений
7269void attach(void (*FB_msg)(msg&)); // подключение обработчика сообщений
70+ void attach(void (*handler)(String&, String&)); // подключение обработчика сообщений (устаревший)
7371void detach(); // отключение ВСЕХ ОБРАБОТЧИКОВ СООБЩЕНИЙ
7472
7573
@@ -79,87 +77,78 @@ uint8_t tick(); // проверка обновл
7977
8078
8179// ============== СООБЩЕНИЯ ===============
80+ uint8_t sendMessage(String msg); // отправить сообщение в указанный в setChatID чат/чаты
81+ uint8_t sendMessage(String msg, String id); // отправить сообщение в указанный здесь чат/чаты
82+
83+ // ответить на сообщение с id (replyID) в указанный в setChatID чат ИЛИ указать чат
84+ uint8_t replyMessage(String msg, int32_t replyID);
85+ uint8_t replyMessage(String msg, int32_t replyID, String id);
86+
87+ void answer(String text, bool alert = false); // ответить на callback текстом (text) и режимом (alert) (true - предупреждение)
88+ void setTextMode(uint8_t mode); // режим обработки текста: FB_TEXT, FB_MARKDOWN, FB_HTML
89+
8290int32_t lastBotMsg(); // ID последнего отправленного ботом сообщения
8391int32_t lastUsrMsg(); // ID последнего отправленного юзером сообщения
84- uint8_t sendMessage(String msg); // отправить сообщение в указанный в setChatID чат/чаты
85- uint8_t sendMessage(String msg, String id); // отправить сообщение в указанный здесь чат/чаты (через запятую)
86- void answer(String text, bool alert = false); // ответить на callback текстом и true - предупреждением
87-
88-
92+
8993// ============== УДАЛИТЬ ===============
90- uint8_t deleteMessage(int offset); // удалить сообщение со смещением offset в указанном в setChatID чате
91- uint8_t deleteMessage(int offset, String id); // удалить сообщение со смещением offset в указанном здесь чате
92- uint8_t deleteMessageID(int32_t msgid); // удалить сообщение id в указанном в setChatID чате
93- uint8_t deleteMessageID(int32_t msgid, String id); // удалить сообщение id в указанном чате
94+ uint8_t deleteMessage(int32_t offset); // удалить сообщение со смещением ( offset) в указанном в setChatID чате
95+ uint8_t deleteMessage(int32_t offset, String id); // удалить сообщение со смещением ( offset) в указанном здесь чате
96+ uint8_t deleteMessageID(int32_t msgid); // удалить сообщение (msgid) в указанном в setChatID чате
97+ uint8_t deleteMessageID(int32_t msgid, String id); // удалить сообщение (msgid) в указанном чате
9498
9599
96100// ============ РЕДАКТИРОВАТЬ =============
97- // редактировать сообщение со смещением offset в указанном в setChatID чате
101+ // редактировать сообщение со смещением ( offset) в указанном в setChatID чате
98102uint8_t editMessage(int32_t offset, String text);
99103
100- // редактировать сообщение со смещением offset в указанном чате
101- uint8_t editMessage(int32_t offset, String text, String id);
102- uint8_t editMessage(int32_t offset, String text, int32_t id);
103-
104- // редактировать сообщение id в указанном в setChatID чате
104+ // редактировать сообщение (msgid) в указанном в setChatID чате ИЛИ передать id чата
105105uint8_t editMessageID(int32_t msgid, String text);
106-
107- // редактировать сообщение id в указанном чате
108106uint8_t editMessageID(int32_t msgid, String text, String id);
109- uint8_t editMessageID(int32_t msgid, String text, int32_t id);
110107
111108
112109// ============= ОБЫЧНОЕ МЕНЮ =============
113- uint8_t showMenu(String str); // показать меню (str) в указанном в setChatID чате
114- uint8_t showMenu(String str, String id); // показать меню в указанном здесь чате/чатах (через запятую)
115- uint8_t closeMenu(); // скрыть меню в указанном в setChatID чате
116- uint8_t closeMenu(String id); // скрыть меню в указанном здесь чате/чатах (через запятую)
110+ // показать меню (menu) в указанном в setChatID чате/чатах ИЛИ передать id чата/чатов
111+ uint8_t showMenu(String menu);
112+ uint8_t showMenu(String menu, String id);
117113
114+ // скрыть меню в указанном в setChatID чате/чатах ИЛИ передать id чата/чатов
115+ uint8_t closeMenu();
116+ uint8_t closeMenu(String id);
118117
119- // ======== ОБЫЧНОЕ МЕНЮ С ТЕКСТОМ =========
120- // показать меню (str) в указанном в setChatID чате + сообщение (msg)
121- uint8_t showMenuText(String msg, String str);
122118
123- // показать меню (str) в указанном здесь чате/чатах (через запятую) + сообщение (msg)
124- uint8_t showMenuText(String msg, String str, String id);
119+ // ======== ОБЫЧНОЕ МЕНЮ С ТЕКСТОМ =========
120+ // сообщение (msg) + показать меню (menu) в указанном в setChatID чате/чатах ИЛИ передать id чата/чатов
121+ uint8_t showMenuText(String msg, String menu);
122+ uint8_t showMenuText(String msg, String menu, String id);
125123
126- // скрыть меню в указанном в setChatID чате + сообщение (msg)
124+ // сообщение (msg) + скрыть меню в указанном в setChatID чате/чатах ИЛИ передать id чата/чатов
127125uint8_t closeMenuText(String msg);
128-
129- // скрыть меню в указанном здесь чате/чатах (через запятую) + сообщение (msg)
130126uint8_t closeMenuText(String msg, String id);
131127
132128
133129// ============= ИНЛАЙН МЕНЮ =============
134- // показать инлайн меню (str) в указанном в setChatID чате + сообщение (msg)
135- uint8_t inlineMenu(String msg, String str);
136-
137- // показать инлайн меню (str) в указанном здесь чате/чатах (через запятую) + сообщение (msg)
138- uint8_t inlineMenu(String msg, String str, String id);
130+ // сообщение (msg) с инлайн меню (menu) в указанном в setChatID чате/чатах ИЛИ передать id чата/чатов
131+ uint8_t inlineMenu(String msg, String menu);
132+ uint8_t inlineMenu(String msg, String menu, String id);
139133
140134
141135// ======= ИНЛАЙН МЕНЮ С КОЛЛБЭКОМ =======
142- // показать инлайн меню (str) с коллбэком (cbck) в указанном в setChatID чате + сообщение (msg)
143- uint8_t inlineMenuCallback(String msg, String str, String cbck);
144-
145- // показать инлайн меню (str) с коллбэком (cbck) в указанном здесь чате/чатах (через запятую) + сообщение (msg)
146- uint8_t inlineMenuCallback(String msg, String str, String cbck, String id);
136+ // сообщение (msg) с инлайн меню (menu) и коллбэком (cbck) в указанном в setChatID чате/чатах ИЛИ передать id чата/чатов
137+ uint8_t inlineMenuCallback(String msg, String menu, String cbck);
138+ uint8_t inlineMenuCallback(String msg, String menu, String cbck, String id);
147139
148140
149141// ======= РЕДАКТИРОВАТЬ ИНЛАЙН МЕНЮ С КОЛЛБЭКОМ =======
150- // редактировать меню id в указанном в setChatID чате
151- uint8_t editMenuID(int32_t msgid, String text, String cback);
152-
153- // редактировать меню id в указанном чате
154- uint8_t editMenuID(int32_t msgid, String text, String cback, String id);
155- uint8_t editMenuID(int32_t msgid, String text, String cback, int32_t id);
142+ // редактировать меню (msgid) текстом (menu) в указанном в setChatID чате ИЛИ передать id чата
143+ uint8_t editMenuID(int32_t msgid, String menu, String cback);
144+ uint8_t editMenuID(int32_t msgid, String menu, String cback, String id);
156145
157146
158147// ================ СЕРВИС ===============
148+ uint8_t sendRequest(String& req); // отправить запрос (начиная с /, например /sendMessage?...)
159149void autoIncrement(boolean incr); // авто инкремент сообщений (по умолч включен)
160150void incrementID(uint8_t val); // вручную инкрементировать ID на val
161151String chatIDs; // указанная в setChatID строка, для отладки и редактирования списка
162- uint8_t sendRequest(String& req); // отправить запрос
163152
164153
165154// =============== СТАТУС ================
@@ -193,10 +182,10 @@ uint8_t sendRequest(String& req); // отправить запро
193182- Эта функция будет автоматически вызвана при входящем сообщении, если ID чата совпадают или не настроены
194183- Внутри этой функции можно пользоваться переданной переменной ` сообщение ` , которая имеет тип ` FB_msg ` (структура) и содержит в себе:
195184 - ` int32_t ID ` - ID сообщения
196- - ` int32_t usrID` - ID юзера
185+ - ` String usrID` - ID юзера
197186 - ` String first_name ` - имя юзера
198187 - ` String username ` - ник юзера
199- - ` int32_t chatID` - ID чата
188+ - ` String chatID` - ID чата
200189 - ` String text ` - текст сообщения
201190 - ` bool query ` - флаг запроса
202191
@@ -309,6 +298,11 @@ void newMsg(FB_msg& msg) {
309298 - Добавил ID юзера
310299 - Добавил редактирование сообщений и кучу всего
311300
301+ - v2.1:
302+ - Ещё оптимизация
303+ - Добавил форматирование текста (markdown, html)
304+ - Добавил ответ на сообщение
305+
312306<a id =" feedback " ></a >
313307## Баги и обратная связь
314308При нахождении багов создавайте
** Issue
** , а лучше сразу пишите на почту
[ [email protected] ] ( mailto:[email protected] )
0 commit comments