Блог веб-студии
TMH by TCSE
1.0.0 (Stable)"Telegram Music Hub — share, stream, discover"
/plugins/tcse/mymusic/├── bot.php ← Основной бот (логика, команды, добавление треков)├── music_db.json ← База данных всех треков (авто-обновляемая)├── user_states.json ← Временное состояние при добавлении трека├── set_webhook.php ← Активация вебхука для Telegram (разовое использование)├── cleanup.php ← Скрипт валидации и обновления ссылок на файлы├── update_play.php ← Увеличение счётчика прослушиваний из Web App│└── player/ ├── index.html ← Web App: красивый адаптивный плеер (Telegram Mini App) ├── proxy.php ← Безопасный доступ к music_db.json из плеера └── (assets) ← Стили, иконки, шрифты (встроены в index.html)
| Файл | Назначение | Запуск |
|---|---|---|
bot.php |
Главный скрипт бота. Обрабатывает: • Добавление аудио • Ввод метаданных (название, исполнитель, жанр) • Команды: /start, /my_tracks, /top, /top_users, /top_genre • Интеграция с Web App |
Через Telegram (вебхук) |
music_db.json |
Основная база данных треков. Хранит: • file_id, url, photo_url • Название, исполнитель, жанр, плейлист • user_uploader, username • count_play, count_downloads |
Авто-обновляется при действиях |
user_states.json |
Временное состояние пользователя при добавлении трека: • Текущий шаг ( title, performer, genre, awaiting_photo) • file_id, duration, file_size • Временные данные до завершения |
Авто-управление ботом |
set_webhook.php |
Устанавливает вебхук Telegram на bot.php: setWebhook?url=https://.../bot.php → Нужен один раз после развертывания |
Вручную в браузере |
cleanup.php |
Очистка и обновление: • Проверяет валидность file_id и photo_file_id • Обновляет url и photo_url по актуальным file_path • Удаляет "битые" треки • Работает в CLI и веб-режиме |
По крону или вручную в браузере |
update_play.php |
Принимает file_id от плеера и увеличивает count_play в music_db.json → Синхронизирует статистику между ботом и Web App |
Вызов из player/index.html |
player/index.html |
Telegram Mini App — красивый адаптивный плеер: • Альбомный режим (ПК) • Портретный режим (телефон) • Вкладки: Треклист, Жанры, Пользователи, Мои треки • Автовоспроизведение, перемешивание, повтор |
Через кнопку в боте |
player/proxy.php |
Безопасный API-прокси для плеера: • Читает music_db.json • Возвращает треки + обложки • Поддерживает CORS и кэширование |
Вызов из index.html |
| Функция | Описание |
|---|---|
| ✅ Добавление треков | Через Telegram: отправь аудио → введи метаданные → добавь обложку |
| ✅ Команды | /my_tracks, /top, /top_users, /top_genre, /cancel, /skipstep, /skipphoto |
| ✅ Web App (плеер) | Красивый плеер с фильтрами, работает в Telegram |
| ✅ Автоматические фильтры | Жанры, пользователи, мои треки — в двух режимах |
| ✅ Счётчики | count_play увеличивается и в боте, и в плеере |
| ✅ Безопасность | Не хранит копии файлов — использует file_id Telegram |
| ✅ Самоочистка | cleanup.php по крону поддерживает актуальность ссылок |
# Каждые 2 часа — обновление ссылок
0 */2 * * * /usr/bin/php /путь/до/plugins/tcse/mymusic/cleanup.php > /dev/null 2>&1
# Раз в день — резервная копия базы (опционально)
0 2 * * * cp /путь/до/music_db.json /резерв/music_db_$(date +\%Y\%m\%d).json
proxy.php и update_play.php — защищены от прямого доступаcleanup.php — автоматически удаляет недоступные треки| Фича | Описание |
|---|---|
✅ /stats |
Общая статистика: треки, прослушивания, пользователи |
| ✅ Поиск в плеере | /search jazz или в интерфейсе |
| ✅ Избранное | Добавить трек в "Мои треки" из любого места |
| ✅ Скачивания | count_downloads++ при открытии прямой ссылки |
| ✅ Админ-панель | Удаление треков, модерация |
Ты создал уникальный, легковесный, безопасный музыкальный хаб:
Сервис-помогатор позволяет преобразовать ссылки с Youtube в команды для утилиты yt-dlp которая умеет скачивать видео....
ПодробнееВаш сайт устарел и работает медленно? Мы проведем комплексную модернизацию: проанализируем текущее состояние, перенесем...
ПодробнееМы выбираем фреймворк Webasyst для разработки лендингов, потому что это современное и гибкое решение, которое...
Подробнее
💬 Комментарии
В связи с новыми требованиями законодательства РФ (ФЗ-152, ФЗ «О рекламе») и ужесточением контроля со стороны РКН, мы отключили систему комментариев на сайте.
🔒 Важно Теперь мы не собираем и не храним ваши персональные данные — даже если очень захотим.
💡 Хотите обсудить материал?
Присоединяйтесь к нашему Telegram-каналу:
https://t.me/tcsecmsНажмите кнопку ниже — и вы сразу попадёте в чат с комментариями