Skip to content

Commit 666f87f

Browse files
committed
upd
1 parent b94d454 commit 666f87f

File tree

5 files changed

+165
-127
lines changed

5 files changed

+165
-127
lines changed

README.md

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[![Foo](https://img.shields.io/badge/Version-1.6-brightgreen.svg?style=flat-square)](#versions)
1+
[![Foo](https://img.shields.io/badge/Version-1.7-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

@@ -48,11 +48,7 @@ FastBot bot(токен, лимит, порог, период);
4848
// токен - уникальный код бота, берётся у BotFather
4949
// лимит - количество сообщений, получаемое из одного запроса (по умолч. 10)
5050
// порог - количество символов, при котором API запрос будет считаться слишком большим и будет пропущен (по умолч. 10000)
51-
// период - период автоматического опроса бота в мс (по умолч. 1000)
52-
53-
// ДЕФАЙНЫ НАСТРОЕК
54-
// дефайнить перед подключением библиотеки
55-
#define FB_DYNAMIC_HTTP // создавать WiFiClientSecure динамически при вызове tick (экономит статик оперативку)
51+
// период - период автоматического опроса бота в мс (по умолч. 3200) Не чаще 3200 мс! См. ниже
5652
```
5753
5854
<a id="usage"></a>
@@ -62,9 +58,10 @@ FastBot bot(токен, лимит, порог, период);
6258
void setChatID(String chatID); // установка ID чата для парсинга сообщений. Можно указать несколько через запятую
6359
void setLimit(int limit); // макс кол-во сообщений на запрос
6460
void setOvf(int ovf); // макс символов
65-
void setPeriod(int period); // период опроса
61+
void setPeriod(int period); // период опроса. Не чаще 3200 мс! См. ниже
6662
void setToken(String token); // изменить/задать токен
67-
63+
void setBufferSizes(uint16_t rx, uint16_t tx); // установить размеры буфера на приём и отправку, по умолч. 512 и 512 байт
64+
6865
// парсинг
6966
void attach(void (*handler)(String&, String&)); // подключение обработчика сообщений
7067
void attach(void (*FB_msg)(msg&)); // подключение обработчика сообщений
@@ -122,6 +119,10 @@ String chatIDs; // указанная в setChat
122119
// 6 - множественная отправка, статус неизвестен
123120
```
124121

122+
Примечания:
123+
- Опрос сообщений *(активный вызов tick() по встроенному таймеру или вызов tickManual())* занимает ~70 миллисекунд
124+
- Период опроса (setPeriod()) нет смысла ставить меньше 3200мс, так как Телеграм не позволяет запрашивать данные чаще и программа повиснет на 3 секунды в ожидании ответа сервера!
125+
125126
<a id="example"></a>
126127
## Особенности парсинга сообщений
127128
Сообщения автоматически читаются в `tick()`, при поступлении нового сообщения вызывается указанная функция-обработчик. Но тут есть варианты:
@@ -133,11 +134,11 @@ String chatIDs; // указанная в setChat
133134
- Вызываем `attach(функция)`
134135
- Эта функция будет автоматически вызвана при входящем сообщении, если ID чата совпадают или не настроены
135136
- Внутри этой функции можно пользоваться переданной переменной `сообщение`, которая имеет тип `FB_msg` (структура) и содержит в себе:
136-
- `chatID` - id чата
137-
- `username` - логин пользователя
138-
- `first_name` - имя пользователя
139-
- `text` - текст сообщения
140-
- `ID` - ID сообщения
137+
- `chatID` - id чата
138+
- `username` - логин пользователя
139+
- `first_name` - имя пользователя
140+
- `text` - текст сообщения
141+
- `ID` - ID сообщения
141142

142143
Минимальный пример:
143144
```cpp
@@ -247,8 +248,15 @@ void loop() {
247248
- v1.5 - оптимизация, возможность смены токена, новый парсинг сообщений (id, имя, текст)
248249
- v1.5.1 - получаем также ID сообщения
249250
- v1.6 - добавлен режим FB_DYNAMIC_HTTP, чтение имени пользователя
251+
- v1.7:
252+
- Убрал динамический режим FB_DYNAMIC_HTTP, работает слишком медленно
253+
- Исправил warningи
254+
- Починил работу бота в "группах" (отрицательный ID чата)
255+
- Оптимизация памяти
256+
- Ускорил работу
257+
- Пофиксил работу через раз в сценарии "эхо"
250258

251259
<a id="feedback"></a>
252260
## Баги и обратная связь
253261
При нахождении багов создавайте **Issue**, а лучше сразу пишите на почту [[email protected]](mailto:[email protected])
254-
Библиотека открыта для доработки и ваших **Pull Request**'ов!
262+
Библиотека открыта для доработки и ваших **Pull Request**'ов!

examples/demo/demo.ino

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ void setup() {
2424

2525
// можно сменить токен
2626
//bot.setToken(BOT_TOKEN);
27-
27+
28+
// можно сменить размер буфера на (приём, отправку), по умолч. 512, 512
29+
//bot.setBufferSizes(1024, 512);
30+
2831
// установить ID чата, чтобы принимать сообщения только из него
2932
// узнать ID можно из ручного запроса в браузере
3033
bot.setChatID(CHAT_ID); // передай "" (пустую строку) чтобы отключить проверку

keywords.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ autoIncrement KEYWORD2
3131
incrementID KEYWORD2
3232
chatIDs KEYWORD2
3333
setToken KEYWORD2
34+
setBufferSizes KEYWORD2
3435

3536
chatID KEYWORD2
3637
name KEYWORD2

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=FastBot
2-
version=1.6
2+
version=1.7
33
author=AlexGyver <[email protected]>
44
maintainer=AlexGyver <[email protected]>
55
sentence=Simple library for Telegram bot (messages and menus)

0 commit comments

Comments
 (0)