init: media-center v2
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>
This commit is contained in:
235
QUICKSTART.md
Normal file
235
QUICKSTART.md
Normal file
@@ -0,0 +1,235 @@
|
||||
# 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 🎬
|
||||
Reference in New Issue
Block a user