feat: add managed Emby library publishing - #1362
Conversation
Integrate current upstream/dev (b8b4164) into the feature branch. No conflicts. Preserves the fail-closed remediation for unresolved managed Emby library mappings.
|
Hi @sparkison, this PR is ready for maintainer review. It adds managed Emby library publishing and includes the fail-closed remediation for the delayed Emby library-listing case. The current head has passing focused tests plus green Code Quality, Security Scan, Tests, and Docker Build Validation checks. Please take a look when you have time. |
|
looking forward to seeing this. Excellent work this weekend brother |
|
Noticed a lot of Dispatcharr callouts still (thinking those should be m3u editor now?) in the plugin: https://github.com/Serph91P/m3u-editor-for-emby also missing the manifests, e.g. https://github.com/Serph91P/m3u-editor-for-emby#installation thinking we'll want the Emby plugin tightened up a bit before merging this. We'll probably also want a callout somewhere that the plugin is required for this functionality (a callout section with a link maybe?) |
@sparkison I didn't merge so the main branch of the plugin does not break until this is merged 😉 That's why I send you the develop branch: The dispatcher call outs are optional for those using dipatcharr but can remove them if you want. M3u editor is automatically detected and you don't even need to choose it. |
sorry about that! I'll take another look 👀 |
Scope to Auth to prevent cross-contamination of users recorded content. Resolves m3ue#1398
|
...forget that last commit, meant to push to dev 🙄 |
Resolves the conflict in tests/Feature/GuestDvrRecordingResourceTest.php
by keeping both PR and dev test additions. Also fixes a guest-DVR data
leak that survived the merge: getEloquentQuery() in
GuestDvrRecordingResource, GuestDvrRuleResource, and
GuestScheduledSeriesWidget passed a null $currentAuth?->id straight into
->where('playlist_auth_id', ...), which Laravel converts to
whereNull() — exposing the playlist owner's recordings/rules to a guest
whose session fails to resolve to a PlaylistAuth. Now guarded with the
isOwnerAuth() check dev already introduced elsewhere in this trait, plus
a regression test.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Summary
Verification
Notes