fix: wire settings.json to actually drive runtime behavior
Settings page saved to /config/settings.json but nothing downstream read that file. Schedule changes were silently ignored; max_quality and sleep_interval changes were silently ignored. The "Settings saved successfully" flash was a lie. Fix: - sync.sh reads max_quality + sleep_interval from settings.json on each run (jq -er ... // empty, falling back to env vars on missing/malformed file) - entrypoint.sh reads sync_schedule from settings.json before setting up cron, and writes the crond PID to /var/run/crond.pid so Flask can SIGHUP it - app.py adds apply_schedule(): rewrites /etc/crontabs/root, signals crond via the recorded PID, restarts crond if the PID is stale, drops the crontab when schedule is set to "manual". save_settings_route invokes it only when the schedule actually changed; any failure flashes a warning so the save still succeeds with the user informed - bare `except: pass` in get_settings replaced with explicit exception types + stderr warning so debugging malformed settings is possible - sync.sh: one bad channel no longer aborts the whole loop under set -e - Dockerfile adds jq for the JSON reads in sync.sh / entrypoint.sh - README: two stale github.com URLs fixed to Gitea; new Running Tests section under Building From Source - tests/test_settings.py: 3 pytest cases covering get_settings()'s three branches (missing file, valid file, malformed JSON) Settings hierarchy unchanged: env-var defaults seed the UI; settings.json wins when present and parseable. Timezone (TZ) is not applied live - tzdata is locked in at process start. Same behavior as before; not in scope for this commit.
This commit is contained in:
14
README.md
14
README.md
@@ -175,14 +175,24 @@ YouTube is blocking downloads. Solution: Add cookies.txt (see Configuration sect
|
||||
## Building From Source
|
||||
|
||||
```bash
|
||||
git clone https://github.com/azcomputerguru/youtube-sync-docker
|
||||
git clone https://git.azcomputerguru.com/azcomputerguru/youtube-sync-docker
|
||||
cd youtube-sync-docker
|
||||
docker build -t youtube-sync .
|
||||
```
|
||||
|
||||
### Running Tests
|
||||
|
||||
Tests are dev-only and not bundled into the production image. Install the
|
||||
dev dependencies and run pytest from the repo root:
|
||||
|
||||
```bash
|
||||
pip install -r requirements-dev.txt
|
||||
pytest tests/
|
||||
```
|
||||
|
||||
## Support
|
||||
|
||||
Issues and pull requests: https://github.com/azcomputerguru/youtube-sync-docker
|
||||
Issues and pull requests: https://git.azcomputerguru.com/azcomputerguru/youtube-sync-docker
|
||||
|
||||
## License
|
||||
|
||||
|
||||
Reference in New Issue
Block a user