Skip to content

Commit dadf9aa

Browse files
committed
upd
1 parent 666f87f commit dadf9aa

File tree

12 files changed

+737
-327
lines changed

12 files changed

+737
-327
lines changed

README.md

Lines changed: 173 additions & 120 deletions
Large diffs are not rendered by default.

examples/demo/demo.ino

Lines changed: 16 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,31 +9,24 @@
99
#define BOT_TOKEN "2654326546:asjhAsfAsfkllgUsaOuiz_axfkj_AsfkjhB"
1010
#define CHAT_ID "574578754"
1111

12-
#include <ESP8266WiFi.h>
13-
#include "FastBot.h"
12+
#include <FastBot.h>
1413
FastBot bot(BOT_TOKEN);
1514

16-
//FastBot bot(токен, лимит, порог, период);
17-
// токен - уникальный код бота, берётся у BotFather
18-
// лимит - количество сообщений, получаемое из одного запроса (по умолч. 10)
19-
// порог - количество символов, при котором API запрос будет считаться слишком большим и будет пропущен (по умолч. 10000)
20-
// период - период автоматического опроса бота в мс (по умолч. 1000)
21-
2215
void setup() {
2316
connectWiFi();
24-
17+
2518
// можно сменить токен
2619
//bot.setToken(BOT_TOKEN);
27-
20+
2821
// можно сменить размер буфера на (приём, отправку), по умолч. 512, 512
2922
//bot.setBufferSizes(1024, 512);
30-
23+
3124
// установить ID чата, чтобы принимать сообщения только из него
3225
// узнать ID можно из ручного запроса в браузере
3326
bot.setChatID(CHAT_ID); // передай "" (пустую строку) чтобы отключить проверку
3427

3528
// можно указать несколько ID через запятую
36-
//bot.setChatID("123456,7891011,12131415");
29+
//bot.setChatID("123456,7891011,12131415");
3730

3831
// подключаем функцию-обработчик
3932
bot.attach(newMsg);
@@ -45,8 +38,8 @@ void setup() {
4538
//bot.sendMessage("Hello, World! External ID", "123456,7891011,12131415");
4639

4740
// показать юзер меню (\t - горизонтальное разделение кнопок, \n - вертикальное
48-
bot.showMenu("Menu1 \t Menu2 \t Menu3 \n Menu4");
49-
41+
//bot.showMenu("Menu1 \t Menu2 \t Menu3 \n Menu4");
42+
5043
// аналогично в указанный конкретно ЗДЕСЬ чат/чаты
5144
//bot.showMenu("Menu1 \t Menu2 \t Menu3 \n Menu4", "123456,7891011,12131415");
5245

@@ -57,32 +50,32 @@ void setup() {
5750

5851
// отправить инлайн меню (\t - горизонтальное разделение кнопок, \n - вертикальное
5952
// (текст сообщения, кнопки)
60-
bot.inlineMenu("Choose wisely", "Answer 1 \t Answer 2 \t Answer 3 \n Answer 4");
53+
//bot.inlineMenu("Choose wisely", "Answer 1 \t Answer 2 \t Answer 3 \n Answer 4");
6154

62-
// аналогично в указанный конкретно чат/чаты
63-
//bot.inlineMenu("Choose wisely", "Answer 1 \t Answer 2 \t Answer 3 \n Answer 4", "123456,7891011,12131415");
55+
// инлайн меню с коллбэком
56+
String menu1 = F("Menu 1 \t Menu 2 \t Menu 3 \n Back");
57+
String cback1 = F("action1,action2,action3,back");
58+
bot.inlineMenuCallback("Menu 1", menu1, cback1);
6459
}
6560

6661
// обработчик сообщений
67-
// создать свою функцию вида имя(FB_msg& сообщение)
6862
void newMsg(FB_msg& msg) {
6963
// выводим ID чата, имя юзера и текст сообщения
70-
Serial.print(msg.chatID); // ID чата
64+
Serial.print(msg.chatID); // ID чата
7165
Serial.print(", ");
7266
Serial.print(msg.username); // логин
7367
Serial.print(", ");
7468
Serial.print(msg.first_name); // имя
7569
Serial.print(", ");
70+
Serial.print(msg.usrID); // ID юзера
71+
Serial.print(", ");
7672
Serial.print(msg.ID); // ID сообщения
7773
Serial.print(", ");
7874
Serial.println(msg.text); // текст
7975
}
8076

81-
// можно вручную дёргать по одному сообщению при помощи tickManual
82-
// тогда "лимит" при инициализации поставить 1
8377
void loop() {
84-
// тикаем в луп
85-
bot.tick();
78+
bot.tick(); // тикаем в луп
8679
}
8780

8881
void connectWiFi() {
@@ -98,13 +91,3 @@ void connectWiFi() {
9891
}
9992
Serial.println("Connected");
10093
}
101-
102-
103-
/*
104-
Статусы tick:
105-
0 - ожидание
106-
1 - ОК
107-
2 - Переполнен по ovf
108-
3 - Ошибка телеграм
109-
4 - Ошибка подключения
110-
*/

examples/echoBot/echoBot.ino

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
#define BOT_TOKEN "2654326546:asjhAsfAsfkllgUsaOuiz_axfkj_AsfkjhB"
66
#define CHAT_ID "574578754"
77

8-
#include <ESP8266WiFi.h>
9-
#include "FastBot.h"
8+
#include <FastBot.h>
109
FastBot bot;
1110

1211
void setup() {
@@ -23,10 +22,6 @@ void newMsg(FB_msg& msg) {
2322
Serial.print(", ");
2423
Serial.print(msg.username); // логин
2524
Serial.print(", ");
26-
Serial.print(msg.first_name); // имя
27-
Serial.print(", ");
28-
Serial.print(msg.ID); // ID сообщения
29-
Serial.print(", ");
3025
Serial.println(msg.text); // текст
3126

3227
// отправить сообщение обратно

examples/editBot/editBot.ino

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// бот меняет своё сообщение на отправленное в чат
2+
#define WIFI_SSID "login"
3+
#define WIFI_PASS "pass"
4+
#define BOT_TOKEN "2654326546:asjhAsfAsfkllgUsaOuiz_axfkj_AsfkjhB"
5+
#define CHAT_ID "574578754"
6+
7+
#include <FastBot.h>
8+
FastBot bot;
9+
10+
void setup() {
11+
connectWiFi();
12+
13+
bot.setToken(BOT_TOKEN);
14+
bot.attach(newMsg);
15+
bot.setChatID(CHAT_ID);
16+
bot.sendMessage("Edit me!");
17+
}
18+
19+
void newMsg(FB_msg& msg) {
20+
// выводим ID чата, имя юзера и текст сообщения
21+
Serial.print(msg.chatID); // ID чата
22+
Serial.print(", ");
23+
Serial.print(msg.username); // логин
24+
Serial.print(", ");
25+
Serial.println(msg.text); // текст
26+
27+
bot.editMessageID(bot.lastBotMsg(), msg.text, msg.chatID);
28+
}
29+
30+
void loop() {
31+
bot.tick();
32+
}
33+
34+
void connectWiFi() {
35+
delay(2000);
36+
Serial.begin(115200);
37+
Serial.println();
38+
39+
WiFi.begin(WIFI_SSID, WIFI_PASS);
40+
while (WiFi.status() != WL_CONNECTED) {
41+
delay(500);
42+
Serial.print(".");
43+
if (millis() > 15000) ESP.restart();
44+
}
45+
Serial.println("Connected");
46+
}

examples/menuTest/menuTest.ino

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
#define BOT_TOKEN "2654326546:asjhAsfAsfkllgUsaOuiz_axfkj_AsfkjhB"
77
#define CHAT_ID "574578754"
88

9-
#include <ESP8266WiFi.h>
10-
#include "FastBot.h"
9+
#include <FastBot.h>
1110
FastBot bot(BOT_TOKEN);
1211

1312
String menu1 = "Menu 1 \t Menu 2 \t Menu 3 \n Back";
@@ -19,34 +18,33 @@ byte depth = 0;
1918
void setup() {
2019
connectWiFi();
2120

22-
bot.setPeriod(200);
2321
bot.setChatID(CHAT_ID); // передай "" (пустую строку) чтобы отключить проверку
24-
bot.attach(parseHandler); // подключаем функцию-обработчик
22+
bot.attach(newMsg); // подключаем функцию-обработчик
2523
bot.inlineMenu("Menu 0", menu1);
2624
}
2725

2826
// создать свою функцию вида имя(String& ник, String& сообщение)
29-
void parseHandler(String& name, String& msg) {
27+
void newMsg(String& name, String& msg) {
3028
Serial.println(msg);
3129
bot.deleteMessage(0);
32-
if (msg.indexOf("Menu 1") >= 0) {
30+
if (msg == "Menu 1") {
3331
bot.inlineMenu("Menu 1", menu2);
3432
depth = 1;
3533
}
36-
if (msg.indexOf("Menu 2") >= 0) {
34+
if (msg == "Menu 2") {
3735
bot.inlineMenu("Menu 2", menu3);
3836
depth = 1;
3937
}
40-
if (msg.indexOf("Menu 3") >= 0) {
38+
if (msg == "Menu 3") {
4139
bot.inlineMenu("Menu 3", menu4);
4240
depth = 1;
4341
}
44-
if (msg.indexOf("Back") >= 0 && depth == 1) {
42+
if (msg == "Back" && depth == 1) {
4543
bot.inlineMenu("Menu 0", menu1);
4644
depth = 0;
4745
}
4846

49-
if (msg.indexOf("Show menu") >= 0) {
47+
if (msg == "Show menu") {
5048
bot.inlineMenu("Menu 0", menu1);
5149
}
5250
}

examples/menuTest2/menuTest2.ino

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
// тест инлайн меню с изменением сообщения
2+
// отправь Show menu для открытия меню
3+
4+
#define WIFI_SSID "login"
5+
#define WIFI_PASS "pass"
6+
#define BOT_TOKEN "2654326546:asjhAsfAsfkllgUsaOuiz_axfkj_AsfkjhB"
7+
#define CHAT_ID "574578754"
8+
9+
#include <FastBot.h>
10+
FastBot bot(BOT_TOKEN);
11+
12+
String menu1 = "Menu 1 \t Menu 2 \t Menu 3 \n Back";
13+
String menu2 = "Answer 1.1 \t Answer 1.2 \t Answer 1.3 \n Back";
14+
String menu3 = "Answer 2.1 \t Answer 2.2 \t Answer 2.3 \n Back";
15+
String menu4 = "Answer 3.1 \t Answer 3.2 \t Answer 3.3 \n Back";
16+
byte depth = 0;
17+
18+
void setup() {
19+
connectWiFi();
20+
21+
bot.setChatID(CHAT_ID); // передай "" (пустую строку) чтобы отключить проверку
22+
bot.attach(newMsg); // подключаем функцию-обработчик
23+
bot.inlineMenu("Menu 0", menu1);
24+
}
25+
26+
// создать свою функцию вида имя(String& ник, String& сообщение)
27+
void newMsg(FB_msg& msg) {
28+
Serial.println(msg.text);
29+
30+
if (msg.text == "Menu 1") {
31+
bot.editMenuID(bot.lastBotMsg(), menu2, "", msg.chatID);
32+
depth = 1;
33+
}
34+
if (msg.text == "Menu 2") {
35+
bot.editMenuID(bot.lastBotMsg(), menu3, "", msg.chatID);
36+
depth = 1;
37+
}
38+
if (msg.text == "Menu 3") {
39+
bot.editMenuID(bot.lastBotMsg(), menu4, "", msg.chatID);
40+
depth = 1;
41+
}
42+
if (msg.text == "Back" && depth == 1) {
43+
bot.editMenuID(bot.lastBotMsg(), menu1, "", msg.chatID);
44+
depth = 0;
45+
}
46+
47+
if (msg.text == "Show menu") {
48+
bot.inlineMenu("Menu 0", menu1);
49+
}
50+
}
51+
52+
void loop() {
53+
bot.tick();
54+
}
55+
56+
void connectWiFi() {
57+
delay(2000);
58+
Serial.begin(115200);
59+
Serial.println();
60+
61+
WiFi.begin(WIFI_SSID, WIFI_PASS);
62+
while (WiFi.status() != WL_CONNECTED) {
63+
delay(500);
64+
Serial.print(".");
65+
if (millis() > 15000) ESP.restart();
66+
}
67+
Serial.println("Connected");
68+
}

examples/query/query.ino

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// ответ на коллбэк
2+
3+
#define WIFI_SSID "login"
4+
#define WIFI_PASS "pass"
5+
#define BOT_TOKEN "2654326546:asjhAsfAsfkllgUsaOuiz_axfkj_AsfkjhB"
6+
#define CHAT_ID "574578754"
7+
8+
#include <FastBot.h>
9+
FastBot bot(BOT_TOKEN);
10+
11+
void setup() {
12+
connectWiFi();
13+
14+
bot.setChatID(CHAT_ID); // передай "" (пустую строку) чтобы отключить проверку
15+
bot.attach(newMsg); // подключаем функцию-обработчик
16+
String menu1 = "Menu 1 \t Menu 2 \t Menu 3 \n Back";
17+
bot.inlineMenu("Menu 0", menu1);
18+
}
19+
20+
void newMsg(FB_msg& msg) {
21+
if (msg.query) bot.answer("Hello!", true);
22+
}
23+
24+
void loop() {
25+
bot.tick();
26+
}
27+
28+
void connectWiFi() {
29+
delay(2000);
30+
Serial.begin(115200);
31+
Serial.println();
32+
33+
WiFi.begin(WIFI_SSID, WIFI_PASS);
34+
while (WiFi.status() != WL_CONNECTED) {
35+
delay(500);
36+
Serial.print(".");
37+
if (millis() > 15000) ESP.restart();
38+
}
39+
Serial.println("Connected");
40+
}

keywords.txt

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,36 @@ tickManual KEYWORD2
2121
tick KEYWORD2
2222
sendMessage KEYWORD2
2323
deleteMessage KEYWORD2
24+
editMessageID KEYWORD2
25+
editMessage KEYWORD2
26+
editMenuID KEYWORD2
2427
showMenu KEYWORD2
2528
showMenuText KEYWORD2
2629
closeMenu KEYWORD2
2730
closeMenuText KEYWORD2
2831
inlineMenu KEYWORD2
32+
inlineMenuCallback KEYWORD2
2933
sendRequest KEYWORD2
3034
autoIncrement KEYWORD2
3135
incrementID KEYWORD2
3236
chatIDs KEYWORD2
3337
setToken KEYWORD2
3438
setBufferSizes KEYWORD2
39+
answer KEYWORD2
40+
lastBotMsg KEYWORD2
41+
lastUsrMsg KEYWORD2
3542

36-
chatID KEYWORD2
37-
name KEYWORD2
38-
username KEYWORD2
43+
ID KEYWORD2
44+
usrID KEYWORD2
3945
first_name KEYWORD2
46+
username KEYWORD2
47+
chatID KEYWORD2
4048
text KEYWORD2
41-
ID KEYWORD2
49+
query KEYWORD2
50+
51+
FB_unicode KEYWORD2
4252

4353
#######################################
4454
# Constants (LITERAL1)
4555
#######################################
46-
FB_DYNAMIC_HTTP LITERAL1
56+
FB_NO_UNICODE LITERAL1

library.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name=FastBot
2-
version=1.7
2+
version=2.0
33
author=AlexGyver <[email protected]>
44
maintainer=AlexGyver <[email protected]>
55
sentence=Simple library for Telegram bot (messages and menus)
66
paragraph=Simple library for Telegram bot (messages and menus)
77
category=Communication
88
url=https://github.com/GyverLibs/FastBot
9-
architectures=esp8266
9+
architectures=esp8266, esp32

0 commit comments

Comments
 (0)