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 )
2
2
[ ![ Foo] ( https://img.shields.io/badge/Website-AlexGyver.ru-blue.svg?style=flat-square )] ( https://alexgyver.ru/ )
3
3
[ ![ 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/ )
4
4
5
5
# FastBot
6
- Очень простая и быстрая библиотека для телеграм бота
7
- - Оптимизирована для большой нагрузки (спокойно принимает 50 сообщ в секунду)
6
+ Очень простая и быстрая библиотека для телеграм бота на esp8266/esp32
7
+ - Работает на стандартных библиотеках
8
+ - Работает без SSL
9
+ - Оптимизирована для большой нагрузки
8
10
- Опциональная установка ID чата для общения с ботом
9
11
- Проверка обновлений вручную или по таймеру
10
- - Сообщения приходят в функцию-обработчик
11
- - Отправка сообщений в чат
12
+ - Отправка/редактирование/ответ на сообщения
12
13
- Вывод меню вместо клавиатуры
13
14
- Вывод инлайн меню в сообщении
14
- - Возможность включить ручной инкремент новых сообщений
15
- - Работает без SSL
16
15
- Поддержка Unicode (другие языки + эмодзи)
17
- - Работает на стандартных библиотеках
18
16
19
17
### Совместимость
20
18
ESP8266, ESP32
@@ -59,17 +57,17 @@ FastBot bot(токен, лимит, порог, период);
59
57
## Документация
60
58
```cpp
61
59
// ============== НАСТРОЙКИ ==============
62
- void setLimit(int limit); // макс кол-во сообщений на запрос
63
- void setOvf(int ovf); // макс кол-во символов
64
- void setPeriod(int period); // период опроса в мс (по умолч. 1000)
65
60
void 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); // макс кол-во символов на запрос (защита от флуда)
66
65
void setBufferSizes(uint16_t rx, uint16_t tx); // установить размеры буфера на приём и отправку, по умолч. 512 и 512 байт (только для esp8266)
67
- void setChatID(String chatID); // установка ID чата для парсинга сообщений. Можно несколько через запятую ("id1,id2,id3")
68
-
66
+
69
67
70
68
// =============== ПАРСИНГ ===============
71
- void attach(void (*handler)(String&, String&)); // подключение обработчика сообщений
72
69
void attach(void (*FB_msg)(msg&)); // подключение обработчика сообщений
70
+ void attach(void (*handler)(String&, String&)); // подключение обработчика сообщений (устаревший)
73
71
void detach(); // отключение ВСЕХ ОБРАБОТЧИКОВ СООБЩЕНИЙ
74
72
75
73
@@ -79,87 +77,78 @@ uint8_t tick(); // проверка обновл
79
77
80
78
81
79
// ============== СООБЩЕНИЯ ===============
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
+
82
90
int32_t lastBotMsg(); // ID последнего отправленного ботом сообщения
83
91
int32_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
+
89
93
// ============== УДАЛИТЬ ===============
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) в указанном чате
94
98
95
99
96
100
// ============ РЕДАКТИРОВАТЬ =============
97
- // редактировать сообщение со смещением offset в указанном в setChatID чате
101
+ // редактировать сообщение со смещением ( offset) в указанном в setChatID чате
98
102
uint8_t editMessage(int32_t offset, String text);
99
103
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 чата
105
105
uint8_t editMessageID(int32_t msgid, String text);
106
-
107
- // редактировать сообщение id в указанном чате
108
106
uint8_t editMessageID(int32_t msgid, String text, String id);
109
- uint8_t editMessageID(int32_t msgid, String text, int32_t id);
110
107
111
108
112
109
// ============= ОБЫЧНОЕ МЕНЮ =============
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);
117
113
114
+ // скрыть меню в указанном в setChatID чате/чатах ИЛИ передать id чата/чатов
115
+ uint8_t closeMenu();
116
+ uint8_t closeMenu(String id);
118
117
119
- // ======== ОБЫЧНОЕ МЕНЮ С ТЕКСТОМ =========
120
- // показать меню (str) в указанном в setChatID чате + сообщение (msg)
121
- uint8_t showMenuText(String msg, String str);
122
118
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);
125
123
126
- // скрыть меню в указанном в setChatID чате + сообщение (msg)
124
+ // сообщение (msg) + скрыть меню в указанном в setChatID чате/чатах ИЛИ передать id чата/чатов
127
125
uint8_t closeMenuText(String msg);
128
-
129
- // скрыть меню в указанном здесь чате/чатах (через запятую) + сообщение (msg)
130
126
uint8_t closeMenuText(String msg, String id);
131
127
132
128
133
129
// ============= ИНЛАЙН МЕНЮ =============
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);
139
133
140
134
141
135
// ======= ИНЛАЙН МЕНЮ С КОЛЛБЭКОМ =======
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);
147
139
148
140
149
141
// ======= РЕДАКТИРОВАТЬ ИНЛАЙН МЕНЮ С КОЛЛБЭКОМ =======
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);
156
145
157
146
158
147
// ================ СЕРВИС ===============
148
+ uint8_t sendRequest(String& req); // отправить запрос (начиная с /, например /sendMessage?...)
159
149
void autoIncrement(boolean incr); // авто инкремент сообщений (по умолч включен)
160
150
void incrementID(uint8_t val); // вручную инкрементировать ID на val
161
151
String chatIDs; // указанная в setChatID строка, для отладки и редактирования списка
162
- uint8_t sendRequest(String& req); // отправить запрос
163
152
164
153
165
154
// =============== СТАТУС ================
@@ -193,10 +182,10 @@ uint8_t sendRequest(String& req); // отправить запро
193
182
- Эта функция будет автоматически вызвана при входящем сообщении, если ID чата совпадают или не настроены
194
183
- Внутри этой функции можно пользоваться переданной переменной ` сообщение ` , которая имеет тип ` FB_msg ` (структура) и содержит в себе:
195
184
- ` int32_t ID ` - ID сообщения
196
- - ` int32_t usrID` - ID юзера
185
+ - ` String usrID` - ID юзера
197
186
- ` String first_name ` - имя юзера
198
187
- ` String username ` - ник юзера
199
- - ` int32_t chatID` - ID чата
188
+ - ` String chatID` - ID чата
200
189
- ` String text ` - текст сообщения
201
190
- ` bool query ` - флаг запроса
202
191
@@ -309,6 +298,11 @@ void newMsg(FB_msg& msg) {
309
298
- Добавил ID юзера
310
299
- Добавил редактирование сообщений и кучу всего
311
300
301
+ - v2.1:
302
+ - Ещё оптимизация
303
+ - Добавил форматирование текста (markdown, html)
304
+ - Добавил ответ на сообщение
305
+
312
306
<a id =" feedback " ></a >
313
307
## Баги и обратная связь
314
308
При нахождении багов создавайте
** Issue
** , а лучше сразу пишите на почту
[ [email protected] ] ( mailto:[email protected] )
0 commit comments