Щоб створити текстовий файл на сервері та записувати до нього повідомлення, які надходять до бота, можна використовувати мову програмування Python та бібліотеку для роботи з Telegram API – python-telegram-bot.
Ось приклад коду Python, який можна використовувати для створення текстового файлу та запису до нього повідомлень, які надходять до бота:
import telegram
import datetime
TOKEN = 'your_bot_token'
# Задаємо назву файлу, до якого будемо записувати повідомлення
FILE_NAME = 'messages.txt'
# Функція, яка буде викликатись при надходженні нового повідомлення
def new_message(update, context):
# Отримуємо зміст повідомлення та id користувача, який його відправив
text = update.message.text
user_id = update.message.from_user.id
# Отримуємо ім'я користувача, який надіслав повідомлення
user_name = update.message.from_user.full_name
# Отримуємо поточну дату та час
current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# Записуємо повідомлення до файлу, додаючи інформацію про автора та дату та час надходження повідомлення
with open(FILE_NAME, 'a') as f:
f.write(f'{user_name} ({user_id}) - {current_time}: {text}\n')
# Створюємо об'єкт бота з заданим токеном
bot = telegram.Bot(TOKEN)
# Створюємо об'єкт для обробки повідомлень бота
updater = telegram.ext.Updater(bot=bot)
# Реєструємо функцію new_message як обробник повідомлень
updater.dispatcher.add_handler(telegram.ext.MessageHandler(telegram.ext.Filters.text, new_message))
# Запускаємо бота
updater.start_polling()
updater.idle()
Цей код створює обробник повідомлень, який записує текстові повідомлення, які надходять до бота, до файлу messages.txt
. Кожне повідомлення записується у вигляді Ім'я користувача (user_id) - дата і час: текст повідомлення
.
Інший варіант.
Отже, для реалізації такого бота нам потрібно встановити Python на сервері і використати бібліотеку Telebot.
Ось код, який додає повідомлення до текстового файлу з додаванням дати та часу та імені користувача:
import telebot
import datetime
# зчитуємо токен бота з файлу
with open('token.txt', 'r') as file:
TOKEN = file.read().replace('\n', '')
bot = telebot.TeleBot(TOKEN)
# функція, яка буде викликатися при отриманні повідомлення
@bot.message_handler(func=lambda message: True)
def echo_all(message):
# отримуємо дату та час
current_time = datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S")
# формуємо рядок для запису в файл
log_entry = f"{current_time} - {message.from_user.first_name} {message.from_user.last_name}: {message.text}"
# записуємо рядок в файл
with open("log.txt", "a") as f:
f.write(log_entry + "\n")
# відправляємо відповідь користувачу
bot.reply_to(message, "Записано в журнал")
# запускаємо бота
bot.polling()
Після запуску цього скрипту, бот буде очікувати повідомлень та додавати їх до текстового файлу “log.txt” у наступному форматі:
дата-час - ім'я користувача: текст повідомлення
Ви можете запустити цей скрипт на своєму сервері, встановивши Python та бібліотеку Telebot. Переконайтеся, що у вас є дозвіл на запис до директорії, де ви збираєтеся зберігати журнал. Також не забудьте вказати токен свого бота в файлі “token.txt”.