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>
236 lines
6.0 KiB
Markdown
236 lines
6.0 KiB
Markdown
# Quick Start Guide
|
||
|
||
Быстрый старт для Media Center v2
|
||
|
||
## 1. Установка
|
||
|
||
```bash
|
||
# Клонировать или перейти в директорию проекта
|
||
cd media_center_v2
|
||
|
||
# Установить зависимости
|
||
npm install
|
||
```
|
||
|
||
## 2. Запуск в режиме разработки
|
||
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
Это запустит приложение в режиме разработки с hot reload.
|
||
|
||
## 3. Первый запуск
|
||
|
||
После запуска приложения:
|
||
|
||
1. **Главная страница** откроется автоматически с карточками сайтов
|
||
2. **Прокси** запустится автоматически (если настроен)
|
||
3. **Попробуйте поиск**: введите название фильма в поисковую строку
|
||
|
||
## 4. Тестирование поиска
|
||
|
||
1. В верхней части окна введите "Стражи галактики"
|
||
2. Нажмите "Найти"
|
||
3. Дождитесь результатов со всех сайтов
|
||
4. Кликните на понравившийся результат
|
||
|
||
## 5. Сборка установщика
|
||
|
||
```bash
|
||
# Для 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 сервера, порты и т.д.)
|
||
|
||
### Изменение настроек:
|
||
|
||
**Сервер конфигураций:**
|
||
```typescript
|
||
// src/shared/constants.ts
|
||
export const DEFAULT_CONFIG_SERVER_URL = 'https://your-server.com/api';
|
||
```
|
||
|
||
**Порт прокси:**
|
||
```typescript
|
||
// src/shared/constants.ts
|
||
export const DEFAULT_PROXY_PORT = 10808;
|
||
```
|
||
|
||
**Путь к InvisibleManXRay:**
|
||
```typescript
|
||
// src/shared/constants.ts
|
||
export const INVISIBLE_MAN_CLI_PATH = 'invisibleManXRay';
|
||
```
|
||
|
||
## Добавление нового сайта
|
||
|
||
### Шаг 1: Создать скрипт поиска
|
||
|
||
Скопируйте `search-scripts/SCRIPT_TEMPLATE.js` → `search-scripts/mysite.js`
|
||
|
||
```javascript
|
||
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`:
|
||
|
||
```json
|
||
{
|
||
"id": "mysite",
|
||
"name": "My Site",
|
||
"url": "https://mysite.com",
|
||
"logo": "https://mysite.com/favicon.ico",
|
||
"enabled": true,
|
||
"useProxy": false,
|
||
"searchScript": "mysite.js"
|
||
}
|
||
```
|
||
|
||
### Шаг 3: Перезапустить приложение
|
||
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
## Отладка
|
||
|
||
### Открыть DevTools
|
||
|
||
Нажмите `F12` в приложении
|
||
|
||
### Проверить логи
|
||
|
||
**Main process (терминал):**
|
||
```
|
||
[Proxy STDOUT]: ...
|
||
Found 5 results from Kinogo
|
||
```
|
||
|
||
**Renderer process (DevTools Console):**
|
||
```javascript
|
||
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...`
|
||
|
||
**Решение:**
|
||
```bash
|
||
# Очистить и переустановить зависимости
|
||
rm -rf node_modules
|
||
npm install
|
||
```
|
||
|
||
### 4. Vite не запускается
|
||
|
||
**Проблема:** `Port 3000 is already in use`
|
||
|
||
**Решение:**
|
||
- Остановите другие процессы на порту 3000
|
||
- Или измените порт в `vite.config.ts`:
|
||
```typescript
|
||
server: {
|
||
port: 3001,
|
||
},
|
||
```
|
||
|
||
## Полезные команды
|
||
|
||
```bash
|
||
# Установка зависимостей
|
||
npm install
|
||
|
||
# Разработка
|
||
npm run dev
|
||
|
||
# Сборка
|
||
npm run build
|
||
|
||
# Создание установщика (Windows)
|
||
npm run package:win
|
||
|
||
# Очистка
|
||
rm -rf dist/ release/ node_modules/
|
||
npm install
|
||
```
|
||
|
||
## Следующие шаги
|
||
|
||
1. Прочитайте [README.md](./README.md) для полной документации
|
||
2. Изучите [REQUIREMENTS.md](./REQUIREMENTS.md) для детальных требований
|
||
3. Прочитайте [SEARCH_SCRIPTS.md](./SEARCH_SCRIPTS.md) для создания своих скриптов
|
||
4. Проверьте примеры скриптов в `search-scripts/`
|
||
|
||
## Поддержка
|
||
|
||
Если возникли проблемы:
|
||
|
||
1. Проверьте логи в терминале и DevTools
|
||
2. Прочитайте документацию
|
||
3. Создайте Issue на GitHub с описанием проблемы
|
||
|
||
---
|
||
|
||
**Готово!** Теперь вы можете начать работу с Media Center 🎬
|