Этот проект представляет собой Telegram-бота, который позволяет пользователям преобразовывать MP3-файлы в голосовые сообщения. Бот сохраняет отправленные файлы в базе данных SQLite, предоставляет меню для управления голосовыми сообщениями, а также включает функции логирования и администрирования.
Бот предоставляет следующие возможности:
- Преобразование MP3-файлов в голосовые сообщения Telegram.
- Сохранение информации о голосовых сообщениях в базе данных SQLite (
voice_messages.db). - Просмотр списка сохраненных голосовых сообщений с возможностью их воспроизведения.
- Логирование всех действий пользователей (команды, загрузки файлов, ошибки) в таблицу
chat_logs. - Административные функции: просмотр логов и статистики пользователей (доступно только администратору).
- Интерактивное меню с кнопками для удобного управления.
Для работы бота необходимы:
- Python 3.8 или выше
- Установленный
pipдля управления зависимостями - Токен Telegram-бота, полученный через @BotFather
- SQLite (встроен в Python, дополнительных установок не требуется)
-
Клонируйте репозиторий:
git clone https://github.com/yourusername/telegram-mp3-to-voice-bot.git cd telegram-mp3-to-voice-bot -
Установите зависимости: Установите необходимые библиотеки с помощью
pip. В проекте используются следующие пакеты:pip install python-telegram-bot
Примечание: В коде нет дополнительных зависимостей, таких как
ffmpeg, но если вы планируете расширить функциональность, могут потребоваться другие библиотеки. -
Настройте токен бота и ID администратора: Откройте файл
main.pyи замените значения переменных:TOKEN = "your_telegram_bot_token_here" # Вставьте ваш токен ADMIN_ID = "your_admin_user_id_here" # Вставьте ваш Telegram ID
Примечание: Telegram ID можно узнать через бота @userinfobot.
-
Инициализируйте базу данных: База данных SQLite (
voice_messages.db) создается автоматически при первом запуске бота. Убедитесь, что у вас есть права на запись в директории проекта.
-
Запустите бота: Выполните команду в терминале:
python main.py
-
Команды бота:
/start— Запуск бота и отображение главного меню./help— Показывает инструкции по использованию./logs— Просмотр последних 20 записей логов (только для администратора).
-
Функции меню:
- 🎤 Создать новое голосовое — Отправьте MP3-файл для преобразования.
- 📋 Мои голосовые сообщения — Просмотр списка сохраненных голосовых с возможностью воспроизведения.
- 🔄 Перезапустить бота — Возвращение в главное меню.
- Админ-функции (доступны только администратору):
- 📊 Просмотр логов — Отображение всех логов или только ошибок.
- 👥 Пользователи бота — Список пользователей с их активностью и логами.
-
Отправка MP3: Просто отправьте MP3-файл боту, и он преобразует его в голосовое сообщение, сохранив в базе данных.
-
Таблица
voice_messages:id— Уникальный идентификатор записи.user_id— ID пользователя Telegram.file_id— ID файла в Telegram.original_filename— Оригинальное имя файла.created_at— Время создания записи.file_data— Бинарные данные MP3-файла.
-
Таблица
chat_logs:id— Уникальный идентификатор записи.user_id— ID пользователя Telegram.username— Имя пользователя (если есть).first_name— Имя пользователя.message_type— Тип сообщения (например,command,mp3_upload,error).message_text— Текст сообщения (если применимо).message_data— Дополнительные данные в формате JSON.error_flag— Флаг ошибки (1 — ошибка, 0 — успех).timestamp— Время события.
Все действия пользователей и ошибки записываются в таблицу chat_logs. Логи также выводятся в консоль с уровнем INFO. Администратор может просматривать логи через меню или команду /logs.
Если вы хотите улучшить проект, вот несколько идей:
- Добавить поддержку других аудиоформатов с конвертацией через
ffmpeg. - Реализовать удаление голосовых сообщений из базы данных.
- Добавить пагинацию для списка голосовых сообщений и логов.
- Создать файл
requirements.txtдля удобной установки зависимостей.
Форкните репозиторий, внесите изменения и отправьте pull request.