Skip to content

NeedHash/mp3_tg_bot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram MP3 to Voice Bot

Этот проект представляет собой Telegram-бота, который позволяет пользователям преобразовывать MP3-файлы в голосовые сообщения. Бот сохраняет отправленные файлы в базе данных SQLite, предоставляет меню для управления голосовыми сообщениями, а также включает функции логирования и администрирования.

Описание

Бот предоставляет следующие возможности:

  • Преобразование MP3-файлов в голосовые сообщения Telegram.
  • Сохранение информации о голосовых сообщениях в базе данных SQLite (voice_messages.db).
  • Просмотр списка сохраненных голосовых сообщений с возможностью их воспроизведения.
  • Логирование всех действий пользователей (команды, загрузки файлов, ошибки) в таблицу chat_logs.
  • Административные функции: просмотр логов и статистики пользователей (доступно только администратору).
  • Интерактивное меню с кнопками для удобного управления.

Требования

Для работы бота необходимы:

  • Python 3.8 или выше
  • Установленный pip для управления зависимостями
  • Токен Telegram-бота, полученный через @BotFather
  • SQLite (встроен в Python, дополнительных установок не требуется)

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/yourusername/telegram-mp3-to-voice-bot.git
    cd telegram-mp3-to-voice-bot
  2. Установите зависимости: Установите необходимые библиотеки с помощью pip. В проекте используются следующие пакеты:

    pip install python-telegram-bot

    Примечание: В коде нет дополнительных зависимостей, таких как ffmpeg, но если вы планируете расширить функциональность, могут потребоваться другие библиотеки.

  3. Настройте токен бота и ID администратора: Откройте файл main.py и замените значения переменных:

    TOKEN = "your_telegram_bot_token_here"  # Вставьте ваш токен
    ADMIN_ID = "your_admin_user_id_here"    # Вставьте ваш Telegram ID

    Примечание: Telegram ID можно узнать через бота @userinfobot.

  4. Инициализируйте базу данных: База данных SQLite (voice_messages.db) создается автоматически при первом запуске бота. Убедитесь, что у вас есть права на запись в директории проекта.

Использование

  1. Запустите бота: Выполните команду в терминале:

    python main.py
  2. Команды бота:

    • /start — Запуск бота и отображение главного меню.
    • /help — Показывает инструкции по использованию.
    • /logs — Просмотр последних 20 записей логов (только для администратора).
  3. Функции меню:

    • 🎤 Создать новое голосовое — Отправьте MP3-файл для преобразования.
    • 📋 Мои голосовые сообщения — Просмотр списка сохраненных голосовых с возможностью воспроизведения.
    • 🔄 Перезапустить бота — Возвращение в главное меню.
    • Админ-функции (доступны только администратору):
      • 📊 Просмотр логов — Отображение всех логов или только ошибок.
      • 👥 Пользователи бота — Список пользователей с их активностью и логами.
  4. Отправка 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%