chore(plex): drop dead _enabled guard, dedup watch-toggle, remove dead i18n

- plex.py: delete the no-op _enabled() (never wired as a Depends/called; the real
  gate is sysconfig plex_enabled).
- PlexBrowse.tsx: collapse toggleEpisodeWatched into toggleWatched — they were
  byte-identical (both take a PlexCard).
- Delete 6 dead plex.json keys (loadMore, playerSoon, filter.library,
  playlist.up/down/remove) from en/hu/de — verified 0 refs (the live
  playlist.removeShow/removeSeason keys are kept).

Behavior-neutral. tsc green, ruff clean on touched files, localdev boots, Plex renders.
This commit is contained in:
npeter83 2026-07-11 21:53:24 +02:00
parent 3c7a8c7a14
commit f17bad9870
5 changed files with 1 additions and 31 deletions

View file

@ -197,12 +197,6 @@ def watch_import_now(
# --- Read: libraries / browse / show / image --------------------------------------------------
def _enabled() -> None:
"""Guard read endpoints when the module is off (avoids leaking a stale mirror)."""
# Read endpoints stay usable as long as a mirror exists; the toggle only gates sync + UI.
return None
@router.get("/libraries")
def list_libraries(user: User = Depends(current_user), db: Session = Depends(get_db)) -> dict:
"""The mirrored libraries the user can browse (drives the Plex scope selector)."""

View file

@ -211,12 +211,6 @@ export default function PlexBrowse({
await api.plexSetState(card.id, next).catch(() => {});
qc.invalidateQueries({ queryKey: ["plex-library"] });
}
async function toggleEpisodeWatched(ep: PlexCard) {
const next = ep.status === "watched" ? "new" : "watched";
optimisticStatus(ep.id, next);
await api.plexSetState(ep.id, next).catch(() => {});
qc.invalidateQueries({ queryKey: ["plex-library"] });
}
// Apply a metadata filter (clicked on an info page / show hero / cast) then show the unified grid.
// Array filters (genres/people/studios) UNION with what's set; scalars replace. Clicking a person
// (cast/crew) widens to the 'both' scope so their movies AND shows show up together (mixed feed).
@ -348,7 +342,7 @@ export default function PlexBrowse({
ep={ep}
withShowTitle
onPlay={() => onCard(ep)}
onToggleWatched={() => toggleEpisodeWatched(ep)}
onToggleWatched={() => toggleWatched(ep)}
/>
))}
</div>

View file

@ -12,7 +12,6 @@
"release": "Erscheinungsdatum"
},
"filter": {
"library": "Bibliothek",
"scope": "Bibliothek",
"scopeOpt": {
"both": "Alle",
@ -67,7 +66,6 @@
"noMatchesFiltered_other": "Keine Treffer — {{count}} Filter schränken die Ergebnisse zusätzlich ein.",
"loading": "Wird geladen…",
"empty": "Noch nichts hier. Starte eine Plex-Synchronisierung auf der Admin-Konfigurationsseite.",
"loadMore": "Mehr laden",
"watched": "Angesehen",
"inProgress": "Läuft",
"play": "Abspielen",
@ -92,7 +90,6 @@
"markSeasonUnwatched": "Staffel als ungesehen",
"addShowCollection": "Zur Sammlung"
},
"playerSoon": "Player kommt bald — „{{title}}“",
"collEditor": {
"manage": "Sammlungen",
"title": "Sammlungen — {{title}}",
@ -218,9 +215,6 @@
"playAll": "Alle abspielen",
"delete": "Playlist löschen",
"empty": "Diese Playlist ist leer. Füge Titel über deren Infoseite hinzu.",
"up": "Nach oben",
"down": "Nach unten",
"remove": "Entfernen",
"layoutAccordion": "Akkordeon-Ansicht",
"layoutTree": "Baum-Ansicht",
"removeShow": "Ganze Serie entfernen",

View file

@ -12,7 +12,6 @@
"release": "Release date"
},
"filter": {
"library": "Library",
"scope": "Library",
"scopeOpt": {
"both": "All",
@ -67,7 +66,6 @@
"noMatchesFiltered_other": "No matches — {{count}} filters are also narrowing the results.",
"loading": "Loading…",
"empty": "Nothing here yet. Run a Plex sync from the admin Config page.",
"loadMore": "Load more",
"watched": "Watched",
"inProgress": "In progress",
"play": "Play",
@ -92,7 +90,6 @@
"markSeasonUnwatched": "Mark season unwatched",
"addShowCollection": "Add to collection"
},
"playerSoon": "Player coming soon — “{{title}}”",
"collEditor": {
"manage": "Collections",
"title": "Collections — {{title}}",
@ -218,9 +215,6 @@
"playAll": "Play all",
"delete": "Delete playlist",
"empty": "This playlist is empty. Add titles from their info page.",
"up": "Move up",
"down": "Move down",
"remove": "Remove",
"layoutAccordion": "Accordion view",
"layoutTree": "Tree view",
"removeShow": "Remove whole show",

View file

@ -12,7 +12,6 @@
"release": "Megjelenés dátuma"
},
"filter": {
"library": "Könyvtár",
"scope": "Könyvtár",
"scopeOpt": {
"both": "Mind",
@ -67,7 +66,6 @@
"noMatchesFiltered_other": "Nincs találat — {{count}} szűrő is szűkíti az eredményt.",
"loading": "Betöltés…",
"empty": "Még nincs itt semmi. Futtass egy Plex-szinkront az admin Konfiguráció oldalról.",
"loadMore": "Több betöltése",
"watched": "Megnézve",
"inProgress": "Folyamatban",
"play": "Lejátszás",
@ -92,7 +90,6 @@
"markSeasonUnwatched": "Évad jelölés visszavonása",
"addShowCollection": "Kollekcióhoz adás"
},
"playerSoon": "A lejátszó hamarosan jön — „{{title}}”",
"collEditor": {
"manage": "Kollekciók",
"title": "Kollekciók — {{title}}",
@ -218,9 +215,6 @@
"playAll": "Összes lejátszása",
"delete": "Lista törlése",
"empty": "Ez a lista üres. Adj hozzá címeket az info-oldalukról.",
"up": "Fel",
"down": "Le",
"remove": "Eltávolítás",
"layoutAccordion": "Harmonika nézet",
"layoutTree": "Fa nézet",
"removeShow": "Egész sorozat eltávolítása",