Notifications, and automatic cleanup of empty folders
Settings → Notifications sends a message to Discord, Pushover, ntfy, Gotify or a JSON webhook when a scan finds songs that newly need review, when auto-link replaced identical files, and when an automatic cleanup ran. Each event can be turned off and each service tested; an optional Playlink address adds a link back to the right page. A new per-pair option removes empty slave folders after each scan. Only folders with no file at all inside are removed (into the quarantine, recorded in History); folders holding any file wait in Cleanup, folders changed within the settle time are skipped, and dry run removes nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
590b8abe08
commit
faebc5dfb0
17 files changed
+1086
-26
No files matched your search
@@ -98,6 +98,15 @@ not. **Remove** asks for confirmation (and an extra acknowledgement when the fol
|
||||
right before touching it, and moves it into the quarantine instead of deleting it: it can be restored from History until the retention
|
||||
period purges it. The library root, the quarantine and hidden folders are never listed, and dry run applies.
|
||||
|
||||
**Automatic cleanup** (per pair, off by default) runs the same search on the slave library after every scan and removes only folders
|
||||
with nothing at all inside them. A folder holding any file, even a cover or a `.DS_Store`, is left for you in Cleanup, and folders
|
||||
changed within the settle time are skipped. Removals go to the quarantine and History like manual ones; in dry run nothing is removed.
|
||||
|
||||
**Notifications** (Settings → Notifications) send a message to Discord, Pushover, ntfy, Gotify or any JSON webhook when a scan finds
|
||||
songs that newly need review, when automatic linking replaced identical files, and when an automatic cleanup removed empty folders.
|
||||
Each event can be turned off, and each service has a **Test** button. Set the optional Playlink address to get a link back to the
|
||||
right page in every message.
|
||||
|
||||
**Backups** (Settings → Backups), similar to Sonarr. A backup is a zip of Playlink's database (settings, library pairs, scan results and
|
||||
history, not music files) taken safely while the app runs. Choose a folder (default `/config/backups`), a schedule (off, every 1, 3, 7
|
||||
or 14 days) and a retention period for scheduled backups; **Back up now** makes a manual one (kept until deleted). Backups can be
|
||||
@@ -132,7 +141,8 @@ Playlink is built so that no user data is ever lost, even if it crashes or loses
|
||||
replaced, `..` is rejected, and master and slave may not overlap.
|
||||
- **Mutations are serialized.** Only one filesystem mutation runs at a time, and only one job runs per pair.
|
||||
- **Auto-link is conservative.** It only acts on files with the *exact* same path, and it skips files modified within the settle time
|
||||
(default 10 minutes) so it never touches a download in progress.
|
||||
(default 10 minutes) so it never touches a download in progress. Automatic cleanup likewise only removes slave folders that are
|
||||
completely empty and unchanged for the settle time, and never touches the master library.
|
||||
- **Interrupted operations are cleaned up.** Operations cut short by a crash are marked *interrupted* on startup, and their staging
|
||||
files are removed.
|
||||
- **The web UI requires login.** Passwords are hashed with bcrypt, sessions use `SameSite=Strict` HttpOnly cookies, and state-changing
|
||||
@@ -194,8 +204,8 @@ Run a scan, check the Review tab, and turn off dry run once the planned actions
|
||||
pick up quarantined songs; new quarantine folders get it automatically. Turning it off removes the file again, but only if Playlink
|
||||
created it.
|
||||
|
||||
Per-pair settings (in the UI) are file extensions, auto-link, approximate matching and its threshold, scan interval, quarantine folder,
|
||||
retention and settle time.
|
||||
Per-pair settings (in the UI) are file extensions, auto-link, automatic cleanup, approximate matching and its threshold, scan interval,
|
||||
quarantine folder, retention and settle time.
|
||||
|
||||
## Development
|
||||
|
||||
|
||||
Reference in new issue
Block a user