Andrey Kondratev 3dee6021fc fixes
2025-08-28 17:49:08 +05:00
2025-08-28 17:42:49 +05:00
2025-08-28 17:42:49 +05:00
2025-08-28 17:49:08 +05:00
2025-08-28 17:49:08 +05:00
2025-08-28 16:37:59 +05:00
2025-08-28 17:07:32 +05:00
2025-08-28 17:07:32 +05:00
2025-08-27 18:37:44 +05:00
2025-08-28 17:07:32 +05:00
2025-08-28 17:42:49 +05:00
fix
2025-08-28 17:15:41 +05:00
2025-08-28 17:42:49 +05:00
fix
2025-08-28 17:15:41 +05:00
ci
2025-08-28 16:50:32 +05:00
2025-08-28 16:37:59 +05:00
ts
2025-08-27 18:57:09 +05:00
ts
2025-08-27 18:57:09 +05:00
fix
2025-08-28 17:15:41 +05:00
2025-08-28 17:07:32 +05:00

🎵 Quixotic - Music Search Telegram MiniApp

Telegram miniapp для поиска и скачивания музыки (в разработке).

⚠️ Current Status: UNDER DEVELOPMENT

The app is currently non-functional due to the following issues:

  • YouTube integration abandoned - Bot detection blocks all anonymous access
  • SoundCloud integration failed - API restrictions and ID mismatch between frontend/backend
  • 🔄 TypeScript migration completed - All code converted from JavaScript to TypeScript
  • 🔄 Alternative sources being evaluated - Archive.org, Jamendo, Bandcamp under consideration

What Works:

  • Telegram Bot setup and Web App integration
  • Frontend interface (search/UI)
  • SQLite database functionality
  • Docker deployment setup with Traefik SSL
  • Full TypeScript support with proper typing

What's Broken:

  • Music search (no working backend service)
  • MP3 conversion (depends on working search)
  • Download functionality

Планируемые возможности

  • 🔍 Поиск музыки (источник определяется)
  • 🎵 Конвертация в MP3 с помощью FFmpeg
  • 📱 Telegram Web App интерфейс ( готов)
  • 💾 SQLite база данных ( готова)
  • 📊 История поиска ( готова)
  • 🤖 Telegram Bot интеграция ( готова)

Установка

1. Клонирование и установка зависимостей

git clone <repository-url>
cd quixotic
yarn install

2. Сборка TypeScript проекта

# Сборка всего проекта (backend + frontend)
yarn build

# Или раздельно:
yarn build:backend    # компилирует src/*.ts в dist/
yarn build:frontend   # компилирует public/script.ts в public/dist/

3. Установка FFmpeg

macOS:

brew install ffmpeg

Ubuntu/Debian:

sudo apt update
sudo apt install ffmpeg

Windows: Скачайте с ffmpeg.org

4. Создание Telegram бота

  1. Напишите @BotFather в Telegram
  2. Создайте нового бота: /newbot
  3. Получите токен бота
  4. Настройте Web App: /newapp

5. Настройка окружения

cp .env.example .env

Отредактируйте .env:

TELEGRAM_BOT_TOKEN=your_bot_token_here
WEB_APP_URL=https://your-domain.com
PORT=3000

Запуск

⚠️ Внимание: Приложение сейчас не работает из-за проблем с интеграцией музыкальных сервисов

Разработка

# TypeScript разработка с hot reload
yarn dev

# Ручная сборка при необходимости
yarn build

Продакшн

# Сборка проекта
yarn build

# Запуск скомпилированного кода
yarn start

Docker (рекомендуется)

# С Traefik и SSL
docker-compose --env-file .env.docker up -d

# Простой запуск
docker-compose up -d

Структура проекта

quixotic/
├── src/                     # TypeScript исходники
│   ├── server.ts           # Express сервер (главный)
│   ├── bot.ts              # Telegram бот
│   ├── soundcloud.ts       # SoundCloud API (не работает)
│   └── database.ts         # SQLite база данных
├── dist/                   # Скомпилированный JavaScript
│   ├── server.js           # Готовый к запуску сервер
│   └── ...
├── public/
│   ├── index.html          # Web App интерфейс
│   ├── style.css           # Стили
│   ├── script.ts           # TypeScript исходник
│   └── dist/
│       ├── script.js       # Скомпилированный frontend
│       └── script.js.map
├── database/               # SQLite файлы
├── .serena/memories/       # AI память проекта  
├── tsconfig.json           # TypeScript конфиг (backend)
├── tsconfig.frontend.json  # TypeScript конфиг (frontend)
└── package.json

API Endpoints

  • POST /api/search - Поиск видео
  • POST /api/convert - Конвертация в MP3
  • GET /downloads/:filename - Скачивание файлов
  • GET /health - Проверка здоровья

База данных

SQLite с таблицами:

  • users - пользователи Telegram
  • search_history - история поиска
  • downloads - загруженные файлы

Деплой

Heroku

  1. Установите Heroku CLI
  2. Создайте приложение:
heroku create quixotic-app
  1. Установите buildpacks:
heroku buildpacks:add --index 1 https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git
heroku buildpacks:add --index 2 heroku/nodejs
  1. Настройте переменные:
heroku config:set TELEGRAM_BOT_TOKEN=your_token
heroku config:set WEB_APP_URL=https://quixotic-app.herokuapp.com
  1. Деплой:
git push heroku main

VPS (Ubuntu)

# Обновление системы
sudo apt update && sudo apt upgrade -y

# Установка Node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

# Установка FFmpeg
sudo apt install ffmpeg -y

# Клонирование проекта
git clone <repository-url>
cd quixotic
yarn install

# Настройка PM2
sudo npm install -g pm2
pm2 start src/server.js --name quixotic
pm2 startup
pm2 save

# Nginx (опционально)
sudo apt install nginx -y
# Настройте reverse proxy на порт 3000

Мониторинг

# Логи сервера
pm2 logs quixotic

# Статус
pm2 status

# Перезапуск
pm2 restart quixotic

Лицензия

MIT License

Description
No description provided
Readme 612 KiB
Languages
TypeScript 65.8%
CSS 13.9%
HTML 13.3%
JavaScript 5.2%
Dockerfile 1.1%
Other 0.7%