Rewrite of ESH-Media v1 with separated main/renderer/shared architecture (vite-plugin-electron, React 18, react-router-dom). Includes NeDB storage, electron-store config, proxy manager with FoxyProxy/uBlock extensions, custom server-checked updater, NSIS installer. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6.0 KiB
6.0 KiB
Quick Start Guide
Быстрый старт для Media Center v2
1. Установка
# Клонировать или перейти в директорию проекта
cd media_center_v2
# Установить зависимости
npm install
2. Запуск в режиме разработки
npm run dev
Это запустит приложение в режиме разработки с hot reload.
3. Первый запуск
После запуска приложения:
- Главная страница откроется автоматически с карточками сайтов
- Прокси запустится автоматически (если настроен)
- Попробуйте поиск: введите название фильма в поисковую строку
4. Тестирование поиска
- В верхней части окна введите "Стражи галактики"
- Нажмите "Найти"
- Дождитесь результатов со всех сайтов
- Кликните на понравившийся результат
5. Сборка установщика
# Для Windows
npm run package:win
# Для macOS
npm run package:mac
# Для Linux
npm run package:linux
Установщик будет в папке release/.
Структура файлов
Важные файлы для начала:
config/sites.json- настройки сайтовsearch-scripts/- скрипты поиска для каждого сайтаsrc/shared/types.ts- TypeScript типыsrc/shared/constants.ts- константы (URL сервера, порты и т.д.)
Изменение настроек:
Сервер конфигураций:
// src/shared/constants.ts
export const DEFAULT_CONFIG_SERVER_URL = 'https://your-server.com/api';
Порт прокси:
// src/shared/constants.ts
export const DEFAULT_PROXY_PORT = 10808;
Путь к InvisibleManXRay:
// src/shared/constants.ts
export const INVISIBLE_MAN_CLI_PATH = 'invisibleManXRay';
Добавление нового сайта
Шаг 1: Создать скрипт поиска
Скопируйте search-scripts/SCRIPT_TEMPLATE.js → search-scripts/mysite.js
async function search(query, siteUrl, useProxy, axios, cheerio, proxyConfig) {
const response = await axios.get(`${siteUrl}/search?q=${query}`);
const $ = cheerio.load(response.data);
const results = [];
$('.movie').each((i, el) => {
results.push({
name: $(el).find('.title').text(),
url: siteUrl + $(el).find('a').attr('href'),
image: $(el).find('img').attr('src')
});
});
return results;
}
Шаг 2: Добавить в конфигурацию
Отредактируйте config/sites.json:
{
"id": "mysite",
"name": "My Site",
"url": "https://mysite.com",
"logo": "https://mysite.com/favicon.ico",
"enabled": true,
"useProxy": false,
"searchScript": "mysite.js"
}
Шаг 3: Перезапустить приложение
npm run dev
Отладка
Открыть DevTools
Нажмите F12 в приложении
Проверить логи
Main process (терминал):
[Proxy STDOUT]: ...
Found 5 results from Kinogo
Renderer process (DevTools Console):
console.log('Search results:', results);
Проверить ошибки скриптов
После выполнения поиска проверьте консоль на наличие сообщений вида:
Error searching Kinogo: timeout
Частые проблемы
1. Прокси не запускается
Проблема: Proxy failed to start
Решение:
- Убедитесь, что InvisibleManXRay установлен
- Проверьте путь в
src/shared/constants.ts - Запустите вручную в терминале:
invisibleManXRay run
2. Поиск не возвращает результаты
Проблема: No results found
Решение:
- Проверьте доступность сайта в браузере
- Откройте DevTools и проверьте ошибки в консоли
- Убедитесь, что скрипт поиска корректен
3. Ошибка компиляции TypeScript
Проблема: TS2345: Argument of type...
Решение:
# Очистить и переустановить зависимости
rm -rf node_modules
npm install
4. Vite не запускается
Проблема: Port 3000 is already in use
Решение:
- Остановите другие процессы на порту 3000
- Или измените порт в
vite.config.ts:
server: {
port: 3001,
},
Полезные команды
# Установка зависимостей
npm install
# Разработка
npm run dev
# Сборка
npm run build
# Создание установщика (Windows)
npm run package:win
# Очистка
rm -rf dist/ release/ node_modules/
npm install
Следующие шаги
- Прочитайте README.md для полной документации
- Изучите REQUIREMENTS.md для детальных требований
- Прочитайте SEARCH_SCRIPTS.md для создания своих скриптов
- Проверьте примеры скриптов в
search-scripts/
Поддержка
Если возникли проблемы:
- Проверьте логи в терминале и DevTools
- Прочитайте документацию
- Создайте Issue на GitHub с описанием проблемы
Готово! Теперь вы можете начать работу с Media Center 🎬