quota_events had no retention: one row per API spend plus a zero-unit row per live search, kept forever. The daily history cleanup (audit_gc) now also prunes it past quota_retention_days (a new Quota setting, default 365 so the admin usage view's longest window stays whole; 0 = forever). The floor of two days keeps today's rows, which the per-user search cap counts.
324 lines
18 KiB
JSON
324 lines
18 KiB
JSON
{
|
||
"intro": "Az adatbázisban tárolt működési beállítások — felülírják a fájl/env alapértékeket, és újratelepítés nélkül lépnek életbe. Hagyd üresen (vagy állítsd vissza) a mezőt az alapértékhez való visszatéréshez.",
|
||
"loading": "Konfiguráció betöltése…",
|
||
"sections": {
|
||
"access": "Hozzáférés",
|
||
"youtube": "YouTube",
|
||
"media": "Média",
|
||
"system": "Rendszer"
|
||
},
|
||
"groups": {
|
||
"access": "Regisztráció",
|
||
"email": "E-mail / SMTP",
|
||
"youtube": "YouTube API",
|
||
"google": "Google bejelentkezés",
|
||
"quota": "Kvóta",
|
||
"backfill": "Videók behúzása",
|
||
"shorts": "Shorts-vizsgálat",
|
||
"batch": "Kötegméretek",
|
||
"maintenance": "Karbantartás",
|
||
"explore": "Csatorna-felfedezés",
|
||
"downloads": "Letöltések",
|
||
"plex": "Plex",
|
||
"tmdb": "TMDB",
|
||
"audit": "Eseménynapló",
|
||
"diagnostics": "Diagnosztika",
|
||
"issues": "Hibajegyek"
|
||
},
|
||
"fields": {
|
||
"smtp_host": {
|
||
"label": "SMTP-kiszolgáló",
|
||
"hint": "pl. smtp.gmail.com"
|
||
},
|
||
"smtp_port": {
|
||
"label": "SMTP-port",
|
||
"hint": "Általában 587 (STARTTLS)."
|
||
},
|
||
"smtp_user": {
|
||
"label": "SMTP-felhasználónév",
|
||
"hint": "A küldő fiók / bejelentkezés."
|
||
},
|
||
"smtp_from": {
|
||
"label": "Feladó cím",
|
||
"hint": "pl. Siftlode <addr@gmail.com>. Alapból a felhasználónév."
|
||
},
|
||
"smtp_password": {
|
||
"label": "SMTP-jelszó",
|
||
"hint": "Alkalmazásjelszó. Titkosítva tárolva; csak írható — soha nem jelenik meg újra."
|
||
},
|
||
"quota_daily_budget": {
|
||
"label": "Napi kvótakeret",
|
||
"hint": "Naponta elkölthető YouTube Data API-egységek (az ingyenes keret 10 000). Az alap 9000 tartalékot hagy."
|
||
},
|
||
"backfill_quota_reserve": {
|
||
"label": "Behúzási kvótatartalék",
|
||
"hint": "Tartalékban tartott egységek, hogy az ütemezett behúzás ne éheztesse ki az interaktív szinkront / dúsítást."
|
||
},
|
||
"search_daily_limit_per_user": {
|
||
"label": "Élő keresés — napi limit / felhasználó",
|
||
"hint": "Maximális élő YouTube-keresés felhasználónként naponta. Az API-forrásnál egy keresés 100 egységbe kerül (így a közös büdzséből összesen csak ~80-90 fér bele naponta); a scrape-forrásnál ez tiszta visszaélés-elleni limit. 0 = élő keresés kikapcsolva."
|
||
},
|
||
"search_source": {
|
||
"label": "Élő keresés forrása",
|
||
"hint": "Honnan jönnek az élő YouTube-keresés találatai. A „Weboldal” a YouTube saját keresővégpontját olvassa, és nem fogyaszt API-kvótát (ajánlott). A „Hivatalos API” a search.list-et használja (100 egység/oldal) — válts rá, ha a weboldalas forrás elromlik vagy letiltják."
|
||
},
|
||
"quota_retention_days": {
|
||
"label": "Kvótaelőzmények megőrzése (nap)",
|
||
"hint": "Meddig marad meg a YouTube-kvóta tételes előzménye (ki mit fogyasztott), mielőtt az előzmény-takarító feladat törli. 0 = örökre. Alapérték 365, így a használati nézet leghosszabb ablaka is teljes marad."
|
||
},
|
||
"backfill_recent_max_videos": {
|
||
"label": "Friss behúzás — max videó",
|
||
"hint": "Csatornánként az első körben behúzott legújabb videók száma."
|
||
},
|
||
"backfill_recent_max_days": {
|
||
"label": "Friss behúzás — max kor (nap)",
|
||
"hint": "Az első kör csatornánként meddig nyúl vissza."
|
||
},
|
||
"rss_fallback_hours": {
|
||
"label": "Feed-pótlás ennyi óra után",
|
||
"hint": "Ha egy csatorna RSS-feedje ennyi órája nem válaszol, a legújabb feltöltéseit az API-n keresztül olvassuk be (1 egység), csatornánként legfeljebb ennyi óránként egyszer. 0 = kikapcsolva."
|
||
},
|
||
"shorts_probe_max_seconds": {
|
||
"label": "Shorts-vizsgálat — max hossz (mp)",
|
||
"hint": "Csak az ennél nem hosszabb videókat vizsgáljuk lehetséges Shortsként."
|
||
},
|
||
"shorts_probe_batch": {
|
||
"label": "Shorts-vizsgálat — kötegméret",
|
||
"hint": "Futásonként ennyi videót osztályozunk."
|
||
},
|
||
"enrich_batch_size": {
|
||
"label": "Dúsítási kötegméret",
|
||
"hint": "videos.list azonosítók hívásonként (a YouTube 50-ben maximálja)."
|
||
},
|
||
"autotag_title_sample": {
|
||
"label": "Automatikus címkézés: címmintavétel",
|
||
"hint": "Csatornánként ennyi friss videócímet mintázunk a nyelvfelismeréshez."
|
||
},
|
||
"maintenance_revalidate_batch": {
|
||
"label": "Futásonként újraellenőrzött videók",
|
||
"hint": "Hány, legrégebben ellenőrzött videót ellenőriz újra a karbantartó feladat futásonként (50 videónként 1 API-egység). Magasabb = gyorsabb teljes ciklus, de több kvóta. Az Ütemező oldalon is állítható."
|
||
},
|
||
"youtube_api_key": {
|
||
"label": "YouTube API-kulcs",
|
||
"hint": "Opcionális. Publikus olvasásokhoz (csatornák/videók), hogy a megosztott behúzás ne függjön egy felhasználó OAuth-jától. Titkosítva tárolva; csak írható."
|
||
},
|
||
"youtube_api_proxy": {
|
||
"label": "YouTube API kimenő proxy",
|
||
"hint": "Opcionális. HTTP(S) proxy URL a kimenő YouTube API-hívásokhoz — fix IP-jű hoston átengedve egy IP-korlátozott kulcs dinamikus IP-jű szerverről is működik. Üresen = közvetlen."
|
||
},
|
||
"google_client_id": {
|
||
"label": "Google kliens-azonosító",
|
||
"hint": "OAuth 2.0 kliens-azonosító a Google-bejelentkezéshez. Titkosítva tárolva; csak írható. Hagyd üresen mindkét Google-mezőt a Google-bejelentkezés kikapcsolásához (az e-mail+jelszó továbbra is működik)."
|
||
},
|
||
"google_client_secret": {
|
||
"label": "Google kliens-titok",
|
||
"hint": "OAuth 2.0 kliens-titok. Titkosítva tárolva; csak írható."
|
||
},
|
||
"allow_registration": {
|
||
"label": "Regisztráció engedélyezése",
|
||
"hint": "Bekapcsolva bárki beküldhet e-mail + jelszó regisztrációt. Belépéshez továbbra is e-mail-megerősítés és admin-jóváhagyás szükséges."
|
||
},
|
||
"explore_grace_days": {
|
||
"label": "Felfedezés — türelmi idő (nap)",
|
||
"hint": "Meddig marad meg egy felfedezett, de nem feliratkozott csatorna (és efemer videói), mielőtt a takarító feladat törli. A feliratkozás véglegesen megtartja."
|
||
},
|
||
"search_grace_days": {
|
||
"label": "Keresési találatok — türelmi idő (nap)",
|
||
"hint": "Meddig marad meg egy meg nem tartott YouTube-keresési találat (amit senki nem nézett meg / mentett el / iratkozott fel rá), mielőtt a felfedezés-takarító feladat törli."
|
||
},
|
||
"download_total_max_bytes": {
|
||
"label": "Teljes gyorsítótár-korlát (bájt)",
|
||
"hint": "Az összes felhasználó letöltéseinek maximális együttes mérete. 0 = korlátlan (a lemez a határ); túllépéskor a takarító a legrégebben használt fájlokat üríti."
|
||
},
|
||
"download_default_max_bytes": {
|
||
"label": "Alapértelmezett felhasználói kvóta (bájt)",
|
||
"hint": "Mennyi tárhelyet tarthat egy felhasználó, mielőtt az új letöltések tiltásra kerülnek. A felhasználónkénti felülírás elsőbbséget élvez. Alapérték 5 GiB."
|
||
},
|
||
"download_default_max_concurrent": {
|
||
"label": "Alap. párhuzamos letöltés / felhasználó",
|
||
"hint": "Hány letöltést futtathat egy felhasználó egyszerre."
|
||
},
|
||
"download_default_max_jobs": {
|
||
"label": "Alap. feladatkorlát / felhasználó",
|
||
"hint": "Legfeljebb hány letöltést tarthat meg egy felhasználó a könyvtárában."
|
||
},
|
||
"download_upload_max_bytes": {
|
||
"label": "Feltöltési méretkorlát fájlonként (bájt)",
|
||
"hint": "A Letöltésekbe feltölthető legnagyobb egyedi fájl. Legalább 1, így a korlát mindig él; a felhasználó teljes tárhelyét továbbra is a kvótája korlátozza. Alapérték 500 MiB."
|
||
},
|
||
"download_retention_days": {
|
||
"label": "Megőrzés (nap)",
|
||
"hint": "Egy letöltés az utolsó hozzáféréstől számítva ennyi nap múlva jár le; a takarító feladat ezután (ha semmi nem hivatkozik rá) a türelmi idő letelte után törli."
|
||
},
|
||
"download_gc_grace_days": {
|
||
"label": "Takarítási türelmi idő (nap)",
|
||
"hint": "Hány további napig marad meg egy lejárt letöltés a törlés előtt."
|
||
},
|
||
"download_layout": {
|
||
"label": "Lemezes elrendezés",
|
||
"hint": "„Plex” = Csatorna/Évad ÉÉÉÉ/… fastruktúra .nfo + poszter fájlokkal (Plexben indexelhető); „Egy mappa” = minden egyetlen mappában."
|
||
},
|
||
"download_worker_concurrency": {
|
||
"label": "Párhuzamos letöltések",
|
||
"hint": "Hány letöltést dolgoz fel egyszerre a letöltő folyamat."
|
||
},
|
||
"sponsorblock_default": {
|
||
"label": "SponsorBlock alapból",
|
||
"hint": "SponsorBlock (szponzorszakaszok átugrása) bekapcsolása az újonnan létrehozott egyéni letöltési profilokhoz."
|
||
},
|
||
"audit_retention_days": {
|
||
"label": "Megőrzés (nap)",
|
||
"hint": "Meddig maradnak meg az admin-naplóbejegyzések, mielőtt az eseménynapló-takarító feladat törli őket. 0 = örökre. Alapérték 180."
|
||
},
|
||
"log_level": {
|
||
"label": "Naplózási szint",
|
||
"hint": "Mennyit naplózzon a szerver. Az INFO a szokásos; a DEBUG és a TRACE hibakereséshez való, sokkal részletesebb. Azonnal érvénybe lép, újraindítás nélkül."
|
||
},
|
||
"log_retention_days": {
|
||
"label": "Naplómegőrzés (nap)",
|
||
"hint": "Meddig maradnak meg a tárolt naplóesemények, mielőtt a naplótakarító feladat törli őket. Fiókhoz kötött kéréstörténetet is tartalmaznak, ezért nincs „örökre” lehetőség. Alapérték 7."
|
||
},
|
||
"plex_enabled": {
|
||
"label": "Plex engedélyezése",
|
||
"hint": "A Plex-könyvtár megjelenítése forrásként, gazdag lejátszóval. Ehhez a Plex-szervernek elérhetőnek kell lennie erről a gépről, a média pedig helyi mounton (lásd az útvonal-leképezést)."
|
||
},
|
||
"plex_server_url": {
|
||
"label": "Plex-szerver URL",
|
||
"hint": "Erről a gépről elérhető alap-URL, pl. http://192.168.1.100:32400."
|
||
},
|
||
"plex_server_token": {
|
||
"label": "Plex-szerver token",
|
||
"hint": "A szerver admin X-Plex-Tokenje. Csak szerveroldalon használjuk (metaadat + képek); soha nem kerül a böngészőbe. Titkosítva tárolva; csak írható."
|
||
},
|
||
"plex_path_map": {
|
||
"label": "Média-útvonal leképezés",
|
||
"hint": "A Plex lemezes útvonalait képezi le erre a gépre, hogy a Siftlode lejátszhassa a fizikai fájlt. Új sorral/vesszővel elválasztott plexPrefix=localPrefix párok, pl. /data=/plex-media. Üres = mindkét oldalon azonos."
|
||
},
|
||
"plex_libraries": {
|
||
"label": "Megjelenített könyvtárak",
|
||
"hint": "Vesszővel elválasztott Plex-szekciókulcsok. Üres = minden szekció. Kapcsolat-teszt után használd az alábbi könyvtár-választót."
|
||
},
|
||
"plex_overlay_map": {
|
||
"label": "Magyar metaadat-átfedés",
|
||
"hint": "Egy magyar Plex-könyvtárat párosít az angol ikerpárjával, hogy a címek magyar metaadattal jelenjenek meg: vesszővel elválasztott huSectionKey:enSectionKey párok, pl. 3:4,5:1. A magyar könyvtár önmagában nem böngészhető; a címeit azonosító alapján párosítjuk az angolokhoz. Üres = nincs átfedés."
|
||
},
|
||
"plex_max_transcodes": {
|
||
"label": "Max. párhuzamos átkódolás",
|
||
"hint": "A nem-H.264 fájlok egyidejű átkódolási munkameneteinek felső korlátja. A közvetlen közvetítés munkamenetei csak az összesített munkamenet-korlátba számítanak bele; a közvetlenül játszható fájlokra nincs korlát."
|
||
},
|
||
"plex_max_sessions": {
|
||
"label": "Max párhuzamos lejátszási munkamenet",
|
||
"hint": "Az összes egyidejű lejátszási munkamenet felső korlátja, a közvetlen közvetítést is beleértve — mindegyik a film teljes, szegmentált másolatát írja a munkakötetre. Egy fiók legfeljebb kettőt tarthat. A közvetlenül játszható fájlok nem munkamenetek, rájuk nincs korlát."
|
||
},
|
||
"plex_transcode_hw": {
|
||
"label": "Hardveres átkódolás",
|
||
"hint": "GPU-s (VAAPI) kódolási házirend. Az Automatikus a GPU-t használja, ha elérhető és dekódolni tudja a forrást, különben szoftvert; a GPU kikényszeríti; a Szoftver sosem használja."
|
||
},
|
||
"plex_transcode_preset": {
|
||
"label": "Szoftveres preset",
|
||
"hint": "libx264 preset a szoftveres tartalékhoz, a leggyorsabbtól a leglassabbig. A lassabb preset kisebb adatfolyamot ad, de több CPU-t eszik. A GPU-úton figyelmen kívül marad."
|
||
},
|
||
"plex_transcode_crf": {
|
||
"label": "Szoftveres minőség (CRF)",
|
||
"hint": "libx264 CRF a szoftveres tartalékhoz (0–51; alacsonyabb = jobb minőség, nagyobb méret). A 20 jó alapérték. A GPU-úton figyelmen kívül marad."
|
||
},
|
||
"plex_transcode_max_height": {
|
||
"label": "Szoftveres max. magasság",
|
||
"hint": "A szoftveres átkódolás kimeneti magasságának korlátja képpontban (pl. 1080; 0 = forrás megtartása), hogy egy magas forrás újrakódolása megfizethető maradjon. A GPU-út a forrásfelbontást tartja."
|
||
},
|
||
"plex_audio_loudnorm": {
|
||
"label": "Hangerő normalizálása",
|
||
"hint": "A sztereó lekeverés EBU R128 szerinti hangerő-normalizálása — azokhoz a filmekhez, ahol a párbeszéd suttogás, az akció meg fülsiketítő. Csak közvetlen közvetítésnél vagy átkódolásnál él (a közvetlenül játszott fájl érintetlen marad). Egy 5.1-es filmen mérve: −27,6 → −16,6 LUFS, szűkebb halk/hangos különbséggel — minden kb. 11 dB-lel hangosabb lesz, szóval bekapcsolás után vedd lejjebb a hangerőt. A következő lejátszástól érvényes."
|
||
},
|
||
"tmdb_api_key": {
|
||
"label": "TMDB API-kulcs",
|
||
"hint": "Opcionális. TMDB v3 API-kulcs a Plex-címek dúsításához (kulcsszavak, stáb, költségvetés, TMDb-pontszám, ajánlások, artwork). Csak szerveroldalon használjuk; az adatokat az app saját adatbázisából szolgáljuk ki. Üres = a dúsító feladat nem csinál semmit. Titkosítva tárolva; csak írható."
|
||
},
|
||
"tmdb_language": {
|
||
"label": "TMDB metaadat-nyelv",
|
||
"hint": "A TMDB-ből lekért adatok (kulcsszavak, leírások) nyelve, TMDB nyelvkóddal, pl. en-US vagy hu-HU. Alapérték en-US."
|
||
},
|
||
"issues_gitea_url": {
|
||
"label": "Gitea címe",
|
||
"hint": "A Gitea-példány címe, pl. https://git.example.com. Üresen hagyva a hibajegyek csak zipként tölthetők le."
|
||
},
|
||
"issues_gitea_repo": {
|
||
"label": "Tárhely",
|
||
"hint": "tulajdonos/tárhely alakban. PRIVÁT tárhely legyen: a hibajegy a bejelentő naplóját viszi, és nyilvános tárhelyre nem küldünk."
|
||
},
|
||
"issues_gitea_token": {
|
||
"label": "Token",
|
||
"hint": "Gitea hozzáférési token write:issue és read:repository jogosultsággal. Titkosítva tárolva; csak írható."
|
||
}
|
||
},
|
||
"choices": {
|
||
"search_source": {
|
||
"scrape": "Weboldal",
|
||
"api": "Hivatalos API"
|
||
},
|
||
"download_layout": {
|
||
"plex": "Plex",
|
||
"flat": "Egy mappa"
|
||
},
|
||
"log_level": {
|
||
"TRACE": "TRACE",
|
||
"DEBUG": "DEBUG",
|
||
"INFO": "INFO",
|
||
"WARNING": "WARNING",
|
||
"ERROR": "ERROR"
|
||
},
|
||
"plex_transcode_hw": {
|
||
"auto": "Automatikus",
|
||
"on": "GPU",
|
||
"off": "Szoftver"
|
||
},
|
||
"plex_transcode_preset": {
|
||
"ultrafast": "ultrafast",
|
||
"superfast": "superfast",
|
||
"veryfast": "veryfast",
|
||
"faster": "faster",
|
||
"fast": "fast",
|
||
"medium": "medium",
|
||
"slow": "slow",
|
||
"slower": "slower",
|
||
"veryslow": "veryslow"
|
||
}
|
||
},
|
||
"save": "Mentés",
|
||
"saving": "Mentés…",
|
||
"saved": "Elmentve",
|
||
"saveFailed": "Nem sikerült menteni",
|
||
"unsaved": "Nem mentett változások",
|
||
"discard": "Elvetés",
|
||
"willReset": "mentéskor visszaáll alapértékre",
|
||
"reset": "Visszaállítás",
|
||
"resetHint": "Eltávolítja ezt a felülírást, és visszatér a fájl/env alapértékhez.",
|
||
"usingDefault": "alapérték használatban",
|
||
"overridden": "felülírva az adatbázisban",
|
||
"secretSet": "•••••••• tárolva",
|
||
"secretEnv": "env-érték használatban",
|
||
"secretUnset": "nincs beállítva",
|
||
"secretsDisabled": "Állítsd be a TOKEN_ENCRYPTION_KEY-t a titkok adatbázisban tárolásához.",
|
||
"testEmail": "Teszt e-mail küldése",
|
||
"testEmailHint": "Teszt e-mail küldése a saját címedre a fenti beállításokkal, hogy ellenőrizd, működnek-e.",
|
||
"testSent": "Teszt e-mail elküldve ide: {{to}}",
|
||
"testFailed": "Nem sikerült elküldeni a teszt e-mailt — ellenőrizd a beállításokat",
|
||
"plexTest": "Kapcsolat tesztelése",
|
||
"plexTestHint": "Ellenőrzi a Plex-szerver URL-t és tokent, és betölti a könyvtárlistát. Előbb mentsd a módosításokat.",
|
||
"testDirty": "Mentsd a változásokat a tesztelés előtt.",
|
||
"plexTestOk": "Kapcsolódva: {{name}}",
|
||
"plexTestFailed": "Nem sikerült csatlakozni a Plexhez — ellenőrizd az URL-t és a tokent",
|
||
"plexConnected": "Kapcsolódva: {{name}} {{version}}",
|
||
"plexMediaOk": "A media-mount rendben — egy mintafájl megtalálható a lemezen.",
|
||
"plexMediaMissing": "A média nem olvasható itt: {{path}} — ellenőrizd, hogy a Plex média be van-e mountolva a konténerbe, és hogy helyes-e az útvonal-leképezés. A lejátszás addig nem fog működni, amíg ez nincs javítva.",
|
||
"plexPickLibraries": "Megjelenítendő könyvtárak:",
|
||
"plexPickHint": "Ha egyiket sem jelölöd be, az az összes könyvtár megjelenítésével egyenértékű. Ne feledj menteni.",
|
||
"plexMovies": "Filmek",
|
||
"plexShows": "Sorozatok",
|
||
"emailOff": "Az e-mail-küldés nincs beállítva — a Siftlode némán kihagy minden üzenetet: megerősítő linkeket, jelszó-visszaállításokat és hozzáférési kérelmekről szóló értesítőket. Töltsd ki a fenti mezőket, majd küldj tesztet.",
|
||
"issuesTest": "Kapcsolat tesztelése",
|
||
"issuesTestHint": "Megnézi, hogy a tárhely elérhető, privát, és fogad hibajegyet. Előbb mentsd a módosításokat.",
|
||
"issuesTestOk": "Rendben: {{repo}} (privát)",
|
||
"issuesTestFailed": "Nem sikerült ellenőrizni a hibajegy-kezelőt"
|
||
}
|