как записывать всё, что делает пользователь в телеграм боте (pytelegrambotapi)
пишу бота в телеграм используя библиотеку pytelegrambotapi и столкнулся с такой проблемой:
В определённый момент мне нужно, чтобы бот записывал всё, что пользователь присылает (это может быть как текст, так и файлы) в текстовый файл в формате username_id_<текст или название файла> бот умеет скачивать всё, что ему присылается в папку поэтому название файла можно брать из этой функции
но как получать все сообщения от пользователя и потом записывать их в текстовый файл я так и не разобрался
Ответы (1 шт):
import telebot
from datetime import datetime
bot = telebot.TeleBot('1:A')
print(bot.get_me())
@bot.message_handler(content_types=['text'])
def log(message):
a_log = open(f'log_{message.chat.id}.txt', 'a')
a_log.write(f'{datetime.now()}: {message.text}\n')
bot.polling(none_stop=True, interval=0)
будет записывать в файл log_%chat_id%.txt весь текст который пользователь присылает боту в формате
2022-02-28 15:14:40.097234: /start
2022-02-28 15:15:29.118561: hi
2022-02-28 15:15:32.172062: test
при необходимости можно повесить на другой обработчик (handler).
P.S. не забудьте закрыть файл (a_log.close())