Add a setting to hide the quarantine from Plex
Settings -> Media servers -> "Hide quarantine from Plex" writes a .plexignore into every pair's quarantine folder (.playlink-trash by default), with patterns for every folder depth quarantined files live at. Quarantine folders opened later get the file automatically. The file carries a marker line: turning the option off removes only playlink's own file, and an existing .plexignore written by someone else is never overwritten or deleted (reported instead). Writes go through a temporary file and a rename. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
42161e4287
commit
1da0132d5e
7 files changed
+238
-2
No files matched your search
@@ -229,6 +229,13 @@ func (e *Engine) open(p store.Pair) (*libs, error) {
|
||||
if err := os.MkdirAll(q, 0o775); err != nil {
|
||||
return nil, fmt.Errorf("quarantine directory: %w", err)
|
||||
}
|
||||
// Keep the quarantine hidden from Plex when enabled, including quarantine
|
||||
// folders created after the setting was turned on. Never fatal.
|
||||
if e.plexIgnoreEnabled() {
|
||||
if err := syncPlexIgnore(q, true); err != nil && !errors.Is(err, ErrForeignIgnore) {
|
||||
e.log.Warn(".plexignore not written", "err", plexIgnoreError(q, err))
|
||||
}
|
||||
}
|
||||
if rq, err := filepath.EvalSymlinks(q); err != nil || (rq != q && !e.withinAllowed(rq)) {
|
||||
return nil, errors.New("quarantine directory resolves outside the allowed roots")
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user