117 lines
3.1 KiB
Markdown
117 lines
3.1 KiB
Markdown
|
|
# FFXIV Backup Restore UI
|
||
|
|
|
||
|
|
A Windows-native PyQt6 GUI for the FFXIV backup restore script.
|
||
|
|
|
||
|
|
## Features
|
||
|
|
|
||
|
|
- **Settings Tab**: Configure Nextcloud credentials and local paths
|
||
|
|
- **Restore Tab**: Select backup and monitor restore progress in real-time
|
||
|
|
- **Single Executable**: Packaged with PyInstaller for easy distribution
|
||
|
|
- **Threading**: Non-blocking UI during restore operations
|
||
|
|
- **Status Output**: Real-time console output display
|
||
|
|
|
||
|
|
## Requirements
|
||
|
|
|
||
|
|
- Python 3.8+
|
||
|
|
- Windows (tested on Windows 11)
|
||
|
|
- 7z command-line tool (for extraction)
|
||
|
|
|
||
|
|
## Installation
|
||
|
|
|
||
|
|
### 1. Install Python Dependencies
|
||
|
|
|
||
|
|
```bash
|
||
|
|
pip install -r requirements.txt
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Verify 7z is installed
|
||
|
|
|
||
|
|
The script requires 7z for extraction. Install it or ensure it's in your PATH.
|
||
|
|
|
||
|
|
## Usage
|
||
|
|
|
||
|
|
### Development (Running from source)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python restore_ui.py
|
||
|
|
```
|
||
|
|
|
||
|
|
### Building Executable
|
||
|
|
|
||
|
|
Run the build script:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
build.bat
|
||
|
|
```
|
||
|
|
|
||
|
|
Or manually with PyInstaller:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
pyinstaller restore_ui.spec
|
||
|
|
```
|
||
|
|
|
||
|
|
The executable will be created in the `dist\` directory.
|
||
|
|
|
||
|
|
## Configuration
|
||
|
|
|
||
|
|
Configuration is loaded from `.env` file in the same directory as the script. The file contains:
|
||
|
|
|
||
|
|
- **NC_URL**: Nextcloud server URL
|
||
|
|
- **NC_USER**: Nextcloud username
|
||
|
|
- **NC_PASS**: Nextcloud password
|
||
|
|
- **NC_TEMP_DOWNLOAD**: Path to store downloaded .7z file
|
||
|
|
- **TEMP_EXTRACT_PATH**: Path to extract backup contents
|
||
|
|
- **TEMP_BACKUP_PATH**: Directory to store local backups
|
||
|
|
- **PLUGIN_CONFIGS_PATH**: XIVLauncher plugin config directory
|
||
|
|
- **FFXIV_CONFIGS_PATH**: FFXIV game config directory
|
||
|
|
|
||
|
|
## Usage Steps
|
||
|
|
|
||
|
|
1. **Configure Settings** (if needed):
|
||
|
|
- Open "Settings" tab
|
||
|
|
- Verify Nextcloud credentials and paths
|
||
|
|
- Click outside tab to save (settings are read from .env on startup)
|
||
|
|
|
||
|
|
2. **Restore Backup**:
|
||
|
|
- Open "Restore" tab
|
||
|
|
- Enter remote archive path (e.g., `Backups/FFXIV/Desktop/backup_file.7z`)
|
||
|
|
- Click "Start Restore"
|
||
|
|
- Monitor progress in output window
|
||
|
|
|
||
|
|
3. **View Results**:
|
||
|
|
- Success/error message appears upon completion
|
||
|
|
- Output can be cleared with "Clear Output" button
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
### Missing Dependencies
|
||
|
|
If you get import errors, run: `pip install -r requirements.txt`
|
||
|
|
|
||
|
|
### 7z not found
|
||
|
|
Ensure 7z is installed and in your system PATH
|
||
|
|
|
||
|
|
### Nextcloud Connection Failed
|
||
|
|
- Verify NC_URL is correct (including https://)
|
||
|
|
- Check username and password are correct
|
||
|
|
- Ensure network connection to Nextcloud server
|
||
|
|
|
||
|
|
### PyInstaller Build Issues
|
||
|
|
If the .spec file fails:
|
||
|
|
- Delete `build/` and `dist/` directories
|
||
|
|
- Rebuild: `pyinstaller restore_ui.spec`
|
||
|
|
|
||
|
|
## Distributing the Executable
|
||
|
|
|
||
|
|
Once built, the executable (`dist\FFXIV-Backup-Restore.exe`) can be:
|
||
|
|
- Copied to any Windows system with .NET Framework (included in Windows)
|
||
|
|
- Distributed as a single file
|
||
|
|
- No Python installation required on target system
|
||
|
|
- Requires `.env` file in same directory as executable
|
||
|
|
|
||
|
|
## Notes
|
||
|
|
|
||
|
|
- The UI runs the original `restore_backup.py` script in a background thread
|
||
|
|
- All output is captured and displayed in the UI
|
||
|
|
- Settings tab is for informational purposes (values are read from `.env` at startup)
|
||
|
|
- To update settings, edit `.env` file directly and restart the application
|