feat(plex): P1 frontend — Plex feed source, browse/search, show drill-down
- PlexBrowse.tsx: self-contained Plex mode (library scope tabs, own search + sort, poster-card grid with watch state + playability tint, paged; show → seasons/episodes drill-down). Playback announces (P2 wires the real player). - Feed source dropdown gains a 'Plex' option (gated on me.plex_enabled); App swaps <Feed> for <PlexBrowse> when librarySource==='plex' so the video-feed hooks don't run in Plex mode. me exposes plex_enabled. - api client (plexLibraries/plexBrowse/plexShow/plexImageUrl) + types; librarySource union + share-URL restore gain 'plex'; new plex i18n namespace en/hu/de. - Verified over HTTP (authed): libraries, browse+FTS, image proxy 200 image/jpeg.
This commit is contained in:
parent
63c6e782c8
commit
62636319b1
12 changed files with 452 additions and 5 deletions
|
|
@ -36,7 +36,8 @@
|
|||
"tip": "Danach filtern, wie Videos hierher kamen: nur deine Abos/Katalog, samt deiner über Live-YouTube-Suche gefundenen Videos, oder nur diese Suchergebnisse.",
|
||||
"organic": "Ohne Suchergebnisse",
|
||||
"all": "Mit Suchergebnissen",
|
||||
"only": "Nur Suchergebnisse"
|
||||
"only": "Nur Suchergebnisse",
|
||||
"plex": "Plex"
|
||||
},
|
||||
"yt": {
|
||||
"searchFor": "Auf YouTube suchen nach „{{query}}”",
|
||||
|
|
|
|||
22
frontend/src/i18n/locales/de/plex.json
Normal file
22
frontend/src/i18n/locales/de/plex.json
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"backToFeed": "YouTube-Feed",
|
||||
"backToLibrary": "Zurück zur Bibliothek",
|
||||
"searchPlaceholder": "Plex durchsuchen…",
|
||||
"sort": {
|
||||
"added": "Kürzlich hinzugefügt",
|
||||
"title": "Titel"
|
||||
},
|
||||
"count": "{{count}} Titel",
|
||||
"searchCount": "{{count}} Treffer",
|
||||
"loading": "Wird geladen…",
|
||||
"empty": "Noch nichts hier. Starte eine Plex-Synchronisierung auf der Admin-Konfigurationsseite.",
|
||||
"loadMore": "Mehr laden",
|
||||
"watched": "Angesehen",
|
||||
"seasons": "{{count}} Staffeln",
|
||||
"playerSoon": "Player kommt bald — „{{title}}“",
|
||||
"playable": {
|
||||
"direct": "Spielt direkt im Browser",
|
||||
"remux": "Braucht ein leichtes Remux (keine Video-Neucodierung)",
|
||||
"transcode": "Braucht Transcoding (aufwendiger)"
|
||||
}
|
||||
}
|
||||
|
|
@ -36,7 +36,8 @@
|
|||
"tip": "Filter by how videos got here: your subscriptions/catalog only, plus videos you found via live YouTube search, or only those search results.",
|
||||
"organic": "Hide search results",
|
||||
"all": "Include search results",
|
||||
"only": "Search results only"
|
||||
"only": "Search results only",
|
||||
"plex": "Plex"
|
||||
},
|
||||
"yt": {
|
||||
"searchFor": "Search YouTube for “{{query}}”",
|
||||
|
|
|
|||
22
frontend/src/i18n/locales/en/plex.json
Normal file
22
frontend/src/i18n/locales/en/plex.json
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"backToFeed": "YouTube feed",
|
||||
"backToLibrary": "Back to library",
|
||||
"searchPlaceholder": "Search Plex…",
|
||||
"sort": {
|
||||
"added": "Recently added",
|
||||
"title": "Title"
|
||||
},
|
||||
"count": "{{count}} titles",
|
||||
"searchCount": "{{count}} matches",
|
||||
"loading": "Loading…",
|
||||
"empty": "Nothing here yet. Run a Plex sync from the admin Config page.",
|
||||
"loadMore": "Load more",
|
||||
"watched": "Watched",
|
||||
"seasons": "{{count}} seasons",
|
||||
"playerSoon": "Player coming soon — “{{title}}”",
|
||||
"playable": {
|
||||
"direct": "Plays directly in the browser",
|
||||
"remux": "Needs a light remux (no video re-encode)",
|
||||
"transcode": "Needs transcoding (heavier)"
|
||||
}
|
||||
}
|
||||
|
|
@ -36,7 +36,8 @@
|
|||
"tip": "Szűrés aszerint, hogyan kerültek be a videók: csak a feliratkozásaid/katalógus, az élő YouTube-keresésből talált videóiddal együtt, vagy csak azok a keresési találatok.",
|
||||
"organic": "Keresés nélkül",
|
||||
"all": "Kereséssel együtt",
|
||||
"only": "Csak keresésből"
|
||||
"only": "Csak keresésből",
|
||||
"plex": "Plex"
|
||||
},
|
||||
"yt": {
|
||||
"searchFor": "Keresés a YouTube-on: „{{query}}”",
|
||||
|
|
|
|||
22
frontend/src/i18n/locales/hu/plex.json
Normal file
22
frontend/src/i18n/locales/hu/plex.json
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"backToFeed": "YouTube feed",
|
||||
"backToLibrary": "Vissza a könyvtárhoz",
|
||||
"searchPlaceholder": "Keresés a Plexben…",
|
||||
"sort": {
|
||||
"added": "Nemrég hozzáadott",
|
||||
"title": "Cím"
|
||||
},
|
||||
"count": "{{count}} cím",
|
||||
"searchCount": "{{count}} találat",
|
||||
"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",
|
||||
"seasons": "{{count}} évad",
|
||||
"playerSoon": "A lejátszó hamarosan jön — „{{title}}”",
|
||||
"playable": {
|
||||
"direct": "Közvetlenül játszható a böngészőben",
|
||||
"remux": "Könnyű remux kell (nincs videó-újrakódolás)",
|
||||
"transcode": "Transcode kell (nehezebb)"
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue