Files
pocketsync/README.md
T
2026-02-21 19:53:38 +01:00

87 lines
2.6 KiB
Markdown

# PocketSync
Herramienta de escritorio para sincronizar archivos de emulación retro (ES-DE y ROMs) hacia almacenamiento externo. Soporta múltiples perfiles (uno por consola o dispositivo).
## Requisitos
- Windows 10 / 11
- `robocopy` (incluido en Windows por defecto)
- Para ejecutar desde código fuente: Python 3.6+
## Uso rápido (ejecutable)
Descarga `PocketSync.exe` y ejecútalo directamente. No requiere Python instalado.
## Uso desde código fuente
```bash
python pocketsync.py
```
## Configurar y usar la app
1. **Selecciona o crea un perfil** en el desplegable superior (New / Rename / Delete).
2. **Configura las 4 rutas:**
- ES-DE origen → carpeta local de ES-DE
- ES-DE destino → carpeta en el almacenamiento externo
- ROMs origen → carpeta local de ROMs
- ROMs destino → carpeta en el almacenamiento externo
3. **Selecciona los sistemas** a sincronizar (Select All / None para selección rápida).
4. Pulsa **Sync Now**.
La configuración se guarda automáticamente en `config.json` al cerrar.
## Generar el ejecutable
### 1. Crear el entorno virtual e instalar dependencias
```bash
py -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
```
### 2. Añadir icono (opcional)
Coloca un archivo `pocketsync.ico` en la carpeta `assets\`. Sin él, el ejecutable usará el icono genérico de Windows.
### 3. Empaquetar
```bash
.venv\Scripts\activate
pyinstaller pocketsync.spec
```
El resultado queda en `dist\PocketSync.exe`.
## Estructura del proyecto
```
pocketsync.py # Entry point
pocketsync.spec # Configuración de PyInstaller
requirements.txt # Solo pyinstaller>=6.0
config.json # Perfiles guardados (se crea al primer uso)
assets/
pocketsync.ico # Icono del .exe (añadir manualmente)
core/
config.py # Gestión de perfiles y persistencia
sync_engine.py # Interfaz abstracta de sincronización
robocopy_engine.py # Implementación con Robocopy
ui/
app.py # Ventana principal y lógica de sync
profile_bar.py # Selector de perfiles
path_panel.py # Selectores de ruta
system_list.py # Lista de sistemas
status_bar.py # Barra de estado
summary_panel.py # Resumen de la última sincronización
styles.py # Colores y fuentes
```
## Notas
- La sincronización usa `robocopy /MIR`, que replica exactamente el origen en el destino (borra archivos en destino que no estén en origen).
- Cada perfil guarda sus 4 rutas y la selección de sistemas de forma independiente.
- El proceso de sync corre en un hilo separado para no bloquear la interfaz.