как записывать всё, что делает пользователь в телеграм боте (pytelegrambotapi)

пишу бота в телеграм используя библиотеку pytelegrambotapi и столкнулся с такой проблемой:

В определённый момент мне нужно, чтобы бот записывал всё, что пользователь присылает (это может быть как текст, так и файлы) в текстовый файл в формате username_id_<текст или название файла> бот умеет скачивать всё, что ему присылается в папку поэтому название файла можно брать из этой функции

но как получать все сообщения от пользователя и потом записывать их в текстовый файл я так и не разобрался


Ответы (1 шт):

Автор решения: Violet
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())

→ Ссылка