# Sinc Brasil v5

Sincronizador VOD/Series/Channels com cache sob demanda e integração com XUI Admin API.

## O que mudou na v5

- **Botão "Parar sincronização"**: aparece ao lado da barra de progresso enquanto a sincronização roda. Ao clicar, o sincronizador finaliza o item atual e encerra (não continua processando os próximos). Útil para interromper uma sincronização grande sem precisar reiniciar nada.
- Ao parar, o resumo indica "sincronização parada pelo usuário" e uma nova sincronização pode ser iniciada logo em seguida.

## O que mudou na v4

- **IMDB/TMDB**: filmes e episódios enviados com `tmdb_id`/`imdb_id` (lidos do atributo `imdb-id`/`tmdb-id` da M3U ou do código `tt…` no título), para o XUI puxar pôster e metadados.
- **Categorias**: cada item usa o `group-title` da M3U como categoria no XUI (criada automaticamente se não existir).
- **Bouquets**: campos novos nas configurações (`Bouquets para filmes` e `Bouquets para séries`, separados por `;`). Todo item enviado é adicionado automaticamente aos bouquets (criados se não existirem).
- **URL da fonte**: no XUI, `stream_source` vira `[URL original da M3U, URL do espelho local]`. Quando o cliente abre um filme, se ele já estiver baixado no HD o Sinc serve do HD (mais rápido); caso contrário reproduz direto da origem enquanto grava no HD.
- **Barra de progresso**: o painel mostra progresso em tempo real durante a sincronização (via `/api/sync-progress`).
- **Sincronização idempotente**: itens já existentes no XUI são apenas atualizados (aponta para o espelho), não duplicados.

## O que mudou na v3 (revisão anterior)

- Correção da validação de resposta da API do XUI.one (reconhece `success` e `STATUS_xxx`).
- Correção do crash no sincronizador VOD (`movies+=1`).
- Sincronização resistente a erros: itens com falha são logados e o resumo reporta quantos falharam.
- Teste de conexão XUI em etapas com mensagens de diagnóstico claras (painel, access code, API key).
- Correção do método HTTP do endpoint de teste XUI (POST).
- Trava contra sincronização dupla, retry automático e log de erros em `data/sync.log`.
- Mensagens de erro de M3U em português.

## Instalação

Ubuntu 20.04/22.04/24.04:

```bash
sudo bash install.sh
```

Ou instalar em um HD específico:

```bash
sudo bash install.sh /filmes/sincbrasil
```

Painel:

`http://IP_DO_SERVIDOR:8090`

Login inicial:

`admin / admin`

Altere a senha depois do primeiro acesso.

## Configuração XUI

No XUI.ONE, crie um **Access Code** com tipo **Admin API** para o grupo de administradores e gere a **API Key** no perfil do administrador (Management > Access Control > Access Codes / perfil do usuário).

No Sinc Brasil:
1. URL do XUI: `http://IP:PORTA` (porta do painel, ex.: 25000/8000 — não a porta 8090 deste app)
2. Código de Acesso: o código criado no XUI
3. Chave API: a chave do perfil
4. URL pública do Sinc Brasil: `http://IP_ACESSIVEL:8090` — o painel XUI precisa alcançar este endereço para servir os vídeos
5. Salve e use **Testar conexão com XUI**

Não altera o banco de dados do XUI diretamente; usa a API administrativa.
