📦 Урок 7: Структура повідомлення + пам’ять бота
💡 Telegram передає не текст, а об’єкт з даними користувача, чату і повідомлення.
🔹 Крок 1: Інспектор повідомлення + RAW
from bendbandbot import SimpleBot
# 🔑 читаємо токен
with open("token.key", "r", encoding="utf-8") as f:
token = f.read().strip()
# 🤖 створюємо бота
bot = SimpleBot(token)
def debug(update):
user = update.message.from_user
text = update.message.text
# 📩 показ тексту
bot.send(update, "📩 ТЕКСТ:\n" + text)
# 👤 дані користувача
bot.send(update,
"👤 КОРИСТУВАЧ:\n"
"ID: " + str(user.id) + "\n"
"Ім'я: " + user.first_name + "\n"
"Username: @" + str(user.username)
)
# 🔥 RAW UPDATE
bot.send(update,
"🔥 RAW UPDATE:\n" + str(update)
)
bot.on_message(debug)
bot.start()
🔹 Крок 2: Пам’ять бота (users.txt + лічильник)
from bendbandbot import SimpleBot
with open("token.key", "r", encoding="utf-8") as f:
token = f.read().strip()
bot = SimpleBot(token)
def remember(update):
user = update.message.from_user
user_id = str(user.id)
name = user.first_name
file_name = "users.txt"
# 📂 читаємо файл
try:
with open(file_name, "r", encoding="utf-8") as f:
lines = f.readlines()
except FileNotFoundError:
lines = []
found = False
new_lines = []
count = 0
# 🔍 перевірка користувача
for line in lines:
parts = line.strip().split("|")
# 🛡 захист старого формату
if len(parts) < 3:
parts.append("1")
if parts[0].strip() == user_id:
found = True
count = int(parts[2]) + 1
new_lines.append(parts[0] + " | " + parts[1] + " | " + str(count) + "\n")
else:
new_lines.append(line)
# 🆕 новий користувач
if not found:
count = 1
new_lines.append(user_id + " | " + name + " | 1\n")
bot.send(update, "🧠 Я тебе запам’ятав, " + name + "!")
else:
bot.send(update,
"👀 Я тебе пам’ятаю, " + name + "!\n"
"Ти вже написав " + str(count) + " повідомлень"
)
# 💾 запис у файл
with open(file_name, "w", encoding="utf-8") as f:
f.writelines(new_lines)
bot.on_message(remember)
bot.start()
📂 users.txt формат
123 | Alex | 5
456 | Maria | 2
789 | Ivan | 10
✔ update = об’єкт, не текст
✔ RAW UPDATE показує всю структуру
✔ бот зберігає стан у файлі
✔ бот рахує повідомлення
✔ перша “пам’ять” системи