Queue and UI fixes
This commit is contained in:
1 parent
23acea4773
commit
e3d890c071
103 files changed
+11400
-2010
No files matched your search
@@ -0,0 +1,79 @@
|
||||
<!doctype html><html lang=de class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Halbautomatische Disc-Ripping-Plattform für DVDs & Blu-rays mit HandBrake-Encoding"><meta name=author content=Michael><link href=https://mboehmlaender.github.io/ripster/api/settings/ rel=canonical><link href=../pipeline/ rel=prev><link href=../history/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Settings API - Ripster</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../stylesheets/extra.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=deep-purple data-md-color-accent=purple> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#settings-api class=md-skip> Zum Inhalt </a> </div> <div data-md-component=announce> </div> <div data-md-color-scheme=default data-md-component=outdated hidden> </div> <header class="md-header md-header--shadow md-header--lifted" data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Kopfzeile> <a href=../.. title=Ripster class="md-header__button md-logo" aria-label=Ripster data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 14a2 2 0 0 1-2-2c0-1.11.89-2 2-2s2 .89 2 2a2 2 0 0 1-2 2m0-10a8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0-8-8"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> Ripster </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Settings API </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=deep-purple data-md-color-accent=purple aria-label="Dunkelmodus aktivieren" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Dunkelmodus aktivieren" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=deep-purple data-md-color-accent=purple aria-label="Hellmodus aktivieren" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Hellmodus aktivieren" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.Line truncated
|
||||
</span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a><span class=w> </span><span class=nt>"paths"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
|
||||
</span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=w> </span><span class=nt>"raw_dir"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
|
||||
</span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=w> </span><span class=nt>"value"</span><span class=p>:</span><span class=w> </span><span class=s2>"/mnt/nas/raw"</span><span class=p>,</span>
|
||||
</span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a><span class=w> </span><span class=nt>"schema"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
|
||||
</span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a><span class=w> </span><span class=nt>"type"</span><span class=p>:</span><span class=w> </span><span class=s2>"string"</span><span class=p>,</span>
|
||||
</span><span id=__span-0-7><a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a><span class=w> </span><span class=nt>"label"</span><span class=p>:</span><span class=w> </span><span class=s2>"Raw-Verzeichnis"</span><span class=p>,</span>
|
||||
</span><span id=__span-0-8><a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a><span class=w> </span><span class=nt>"description"</span><span class=p>:</span><span class=w> </span><span class=s2>"Speicherort für rohe MKV-Dateien"</span><span class=p>,</span>
|
||||
</span><span id=__span-0-9><a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a><span class=w> </span><span class=nt>"required"</span><span class=p>:</span><span class=w> </span><span class=kc>true</span>
|
||||
</span><span id=__span-0-10><a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a><span class=w> </span><span class=p>}</span>
|
||||
</span><span id=__span-0-11><a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a><span class=w> </span><span class=p>},</span>
|
||||
</span><span id=__span-0-12><a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a><span class=w> </span><span class=nt>"movie_dir"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
|
||||
</span><span id=__span-0-13><a id=__codelineno-0-13 name=__codelineno-0-13 href=#__codelineno-0-13></a><span class=w> </span><span class=nt>"value"</span><span class=p>:</span><span class=w> </span><span class=s2>"/mnt/nas/movies"</span><span class=p>,</span>
|
||||
</span><span id=__span-0-14><a id=__codelineno-0-14 name=__codelineno-0-14 href=#__codelineno-0-14></a><span class=w> </span><span class=nt>"schema"</span><span class=p>:</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=err>...</span><span class=w> </span><span class=p>}</span>
|
||||
</span><span id=__span-0-15><a id=__codelineno-0-15 name=__codelineno-0-15 href=#__codelineno-0-15></a><span class=w> </span><span class=p>}</span>
|
||||
</span><span id=__span-0-16><a id=__codelineno-0-16 name=__codelineno-0-16 href=#__codelineno-0-16></a><span class=w> </span><span class=p>},</span>
|
||||
</span><span id=__span-0-17><a id=__codelineno-0-17 name=__codelineno-0-17 href=#__codelineno-0-17></a><span class=w> </span><span class=nt>"tools"</span><span class=p>:</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=err>...</span><span class=w> </span><span class=p>},</span>
|
||||
</span><span id=__span-0-18><a id=__codelineno-0-18 name=__codelineno-0-18 href=#__codelineno-0-18></a><span class=w> </span><span class=nt>"encoding"</span><span class=p>:</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=err>...</span><span class=w> </span><span class=p>},</span>
|
||||
</span><span id=__span-0-19><a id=__codelineno-0-19 name=__codelineno-0-19 href=#__codelineno-0-19></a><span class=w> </span><span class=nt>"drive"</span><span class=p>:</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=err>...</span><span class=w> </span><span class=p>},</span>
|
||||
</span><span id=__span-0-20><a id=__codelineno-0-20 name=__codelineno-0-20 href=#__codelineno-0-20></a><span class=w> </span><span class=nt>"makemkv"</span><span class=p>:</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=err>...</span><span class=w> </span><span class=p>},</span>
|
||||
</span><span id=__span-0-21><a id=__codelineno-0-21 name=__codelineno-0-21 href=#__codelineno-0-21></a><span class=w> </span><span class=nt>"omdb"</span><span class=p>:</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=err>...</span><span class=w> </span><span class=p>},</span>
|
||||
</span><span id=__span-0-22><a id=__codelineno-0-22 name=__codelineno-0-22 href=#__codelineno-0-22></a><span class=w> </span><span class=nt>"notifications"</span><span class=p>:</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=err>...</span><span class=w> </span><span class=p>}</span>
|
||||
</span><span id=__span-0-23><a id=__codelineno-0-23 name=__codelineno-0-23 href=#__codelineno-0-23></a><span class=p>}</span>
|
||||
</span></code></pre></div> <hr> <h2 id=put-apisettingskey>PUT /api/settings/:key<a class=headerlink href=#put-apisettingskey title="Permanent link">¶</a></h2> <p>Aktualisiert eine einzelne Einstellung.</p> <p><strong>URL-Parameter:</strong> <code>key</code> – Einstellungs-Schlüssel</p> <p><strong>Request:</strong></p> <div class="language-json highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=p>{</span>
|
||||
</span><span id=__span-1-2><a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a><span class=w> </span><span class=nt>"value"</span><span class=p>:</span><span class=w> </span><span class=s2>"/mnt/storage/raw"</span>
|
||||
</span><span id=__span-1-3><a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a><span class=p>}</span>
|
||||
</span></code></pre></div> <p><strong>Response:</strong></p> <div class="language-json highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=p>{</span><span class=w> </span><span class=nt>"ok"</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span><span class=w> </span><span class=nt>"key"</span><span class=p>:</span><span class=w> </span><span class=s2>"raw_dir"</span><span class=p>,</span><span class=w> </span><span class=nt>"value"</span><span class=p>:</span><span class=w> </span><span class=s2>"/mnt/storage/raw"</span><span class=w> </span><span class=p>}</span>
|
||||
</span></code></pre></div> <p><strong>Fehlerfälle:</strong> - <code>400</code> – Ungültiger Wert (Validierungsfehler) - <code>404</code> – Einstellung nicht gefunden</p> <div class="admonition note"> <p class=admonition-title>Encode-Review-Refresh</p> <p>Wenn eine encoding-relevante Einstellung geändert wird (z.B. <code>handbrake_preset</code>), wird der Encode-Plan für den aktuell wartenden Job automatisch neu berechnet.</p> </div> <hr> <h2 id=put-apisettings>PUT /api/settings<a class=headerlink href=#put-apisettings title="Permanent link">¶</a></h2> <p>Aktualisiert mehrere Einstellungen auf einmal.</p> <p><strong>Request:</strong></p> <div class="language-json highlight"><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a><span class=p>{</span>
|
||||
</span><span id=__span-3-2><a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a><span class=w> </span><span class=nt>"raw_dir"</span><span class=p>:</span><span class=w> </span><span class=s2>"/mnt/storage/raw"</span><span class=p>,</span>
|
||||
</span><span id=__span-3-3><a id=__codelineno-3-3 name=__codelineno-3-3 href=#__codelineno-3-3></a><span class=w> </span><span class=nt>"movie_dir"</span><span class=p>:</span><span class=w> </span><span class=s2>"/mnt/storage/movies"</span><span class=p>,</span>
|
||||
</span><span id=__span-3-4><a id=__codelineno-3-4 name=__codelineno-3-4 href=#__codelineno-3-4></a><span class=w> </span><span class=nt>"handbrake_preset"</span><span class=p>:</span><span class=w> </span><span class=s2>"H.265 MKV 720p30"</span>
|
||||
</span><span id=__span-3-5><a id=__codelineno-3-5 name=__codelineno-3-5 href=#__codelineno-3-5></a><span class=p>}</span>
|
||||
</span></code></pre></div> <p><strong>Response:</strong></p> <div class="language-json highlight"><pre><span></span><code><span id=__span-4-1><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a><span class=p>{</span>
|
||||
</span><span id=__span-4-2><a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a><span class=w> </span><span class=nt>"ok"</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
|
||||
</span><span id=__span-4-3><a id=__codelineno-4-3 name=__codelineno-4-3 href=#__codelineno-4-3></a><span class=w> </span><span class=nt>"updated"</span><span class=p>:</span><span class=w> </span><span class=p>[</span><span class=s2>"raw_dir"</span><span class=p>,</span><span class=w> </span><span class=s2>"movie_dir"</span><span class=p>,</span><span class=w> </span><span class=s2>"handbrake_preset"</span><span class=p>],</span>
|
||||
</span><span id=__span-4-4><a id=__codelineno-4-4 name=__codelineno-4-4 href=#__codelineno-4-4></a><span class=w> </span><span class=nt>"errors"</span><span class=p>:</span><span class=w> </span><span class=p>[]</span>
|
||||
</span><span id=__span-4-5><a id=__codelineno-4-5 name=__codelineno-4-5 href=#__codelineno-4-5></a><span class=p>}</span>
|
||||
</span></code></pre></div> <hr> <h2 id=post-apisettingspushovertest>POST /api/settings/pushover/test<a class=headerlink href=#post-apisettingspushovertest title="Permanent link">¶</a></h2> <p>Sendet eine Test-Benachrichtigung über PushOver.</p> <p><strong>Request:</strong> Kein Body erforderlich (verwendet gespeicherte Zugangsdaten)</p> <p><strong>Response (Erfolg):</strong></p> <div class="language-json highlight"><pre><span></span><code><span id=__span-5-1><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a><span class=p>{</span><span class=w> </span><span class=nt>"ok"</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span><span class=w> </span><span class=nt>"message"</span><span class=p>:</span><span class=w> </span><span class=s2>"Test-Benachrichtigung gesendet"</span><span class=w> </span><span class=p>}</span>
|
||||
</span></code></pre></div> <p><strong>Response (Fehler):</strong></p> <div class="language-json highlight"><pre><span></span><code><span id=__span-6-1><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a><span class=p>{</span><span class=w> </span><span class=nt>"ok"</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span><span class=w> </span><span class=nt>"error"</span><span class=p>:</span><span class=w> </span><span class=s2>"Ungültiger API-Token"</span><span class=w> </span><span class=p>}</span>
|
||||
</span></code></pre></div> <hr> <h2 id=skript-verwaltung>Skript-Verwaltung<a class=headerlink href=#skript-verwaltung title="Permanent link">¶</a></h2> <p>Post-Encode-Skripte werden über eigene Endpunkte unter <code>/api/settings/scripts</code> verwaltet.</p> <h3 id=get-apisettingsscripts>GET /api/settings/scripts<a class=headerlink href=#get-apisettingsscripts title="Permanent link">¶</a></h3> <p>Gibt alle konfigurierten Skripte zurück.</p> <p><strong>Response:</strong></p> <div class="language-json highlight"><pre><span></span><code><span id=__span-7-1><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a><span class=p>{</span>
|
||||
</span><span id=__span-7-2><a id=__codelineno-7-2 name=__codelineno-7-2 href=#__codelineno-7-2></a><span class=w> </span><span class=nt>"scripts"</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
|
||||
</span><span id=__span-7-3><a id=__codelineno-7-3 name=__codelineno-7-3 href=#__codelineno-7-3></a><span class=w> </span><span class=p>{</span>
|
||||
</span><span id=__span-7-4><a id=__codelineno-7-4 name=__codelineno-7-4 href=#__codelineno-7-4></a><span class=w> </span><span class=nt>"id"</span><span class=p>:</span><span class=w> </span><span class=s2>"script-abc123"</span><span class=p>,</span>
|
||||
</span><span id=__span-7-5><a id=__codelineno-7-5 name=__codelineno-7-5 href=#__codelineno-7-5></a><span class=w> </span><span class=nt>"name"</span><span class=p>:</span><span class=w> </span><span class=s2>"Zu Plex verschieben"</span><span class=p>,</span>
|
||||
</span><span id=__span-7-6><a id=__codelineno-7-6 name=__codelineno-7-6 href=#__codelineno-7-6></a><span class=w> </span><span class=nt>"command"</span><span class=p>:</span><span class=w> </span><span class=s2>"/home/michael/scripts/move-to-plex.sh"</span><span class=p>,</span>
|
||||
</span><span id=__span-7-7><a id=__codelineno-7-7 name=__codelineno-7-7 href=#__codelineno-7-7></a><span class=w> </span><span class=nt>"description"</span><span class=p>:</span><span class=w> </span><span class=s2>"Verschiebt die fertige Datei ins Plex-Verzeichnis"</span><span class=p>,</span>
|
||||
</span><span id=__span-7-8><a id=__codelineno-7-8 name=__codelineno-7-8 href=#__codelineno-7-8></a><span class=w> </span><span class=nt>"createdAt"</span><span class=p>:</span><span class=w> </span><span class=s2>"2024-01-15T10:00:00.000Z"</span>
|
||||
</span><span id=__span-7-9><a id=__codelineno-7-9 name=__codelineno-7-9 href=#__codelineno-7-9></a><span class=w> </span><span class=p>}</span>
|
||||
</span><span id=__span-7-10><a id=__codelineno-7-10 name=__codelineno-7-10 href=#__codelineno-7-10></a><span class=w> </span><span class=p>]</span>
|
||||
</span><span id=__span-7-11><a id=__codelineno-7-11 name=__codelineno-7-11 href=#__codelineno-7-11></a><span class=p>}</span>
|
||||
</span></code></pre></div> <hr> <h3 id=post-apisettingsscripts>POST /api/settings/scripts<a class=headerlink href=#post-apisettingsscripts title="Permanent link">¶</a></h3> <p>Legt ein neues Post-Encode-Skript an.</p> <p><strong>Request:</strong></p> <div class="language-json highlight"><pre><span></span><code><span id=__span-8-1><a id=__codelineno-8-1 name=__codelineno-8-1 href=#__codelineno-8-1></a><span class=p>{</span>
|
||||
</span><span id=__span-8-2><a id=__codelineno-8-2 name=__codelineno-8-2 href=#__codelineno-8-2></a><span class=w> </span><span class=nt>"name"</span><span class=p>:</span><span class=w> </span><span class=s2>"Zu Plex verschieben"</span><span class=p>,</span>
|
||||
</span><span id=__span-8-3><a id=__codelineno-8-3 name=__codelineno-8-3 href=#__codelineno-8-3></a><span class=w> </span><span class=nt>"command"</span><span class=p>:</span><span class=w> </span><span class=s2>"/home/michael/scripts/move-to-plex.sh"</span><span class=p>,</span>
|
||||
</span><span id=__span-8-4><a id=__codelineno-8-4 name=__codelineno-8-4 href=#__codelineno-8-4></a><span class=w> </span><span class=nt>"description"</span><span class=p>:</span><span class=w> </span><span class=s2>"Verschiebt die fertige Datei ins Plex-Verzeichnis"</span>
|
||||
</span><span id=__span-8-5><a id=__codelineno-8-5 name=__codelineno-8-5 href=#__codelineno-8-5></a><span class=p>}</span>
|
||||
</span></code></pre></div> <table> <thead> <tr> <th>Feld</th> <th>Typ</th> <th>Pflicht</th> <th>Beschreibung</th> </tr> </thead> <tbody> <tr> <td><code>name</code></td> <td>string</td> <td>✅</td> <td>Anzeigename</td> </tr> <tr> <td><code>command</code></td> <td>string</td> <td>✅</td> <td>Shell-Befehl oder absoluter Skriptpfad</td> </tr> <tr> <td><code>description</code></td> <td>string</td> <td>—</td> <td>Optionale Beschreibung</td> </tr> </tbody> </table> <p><strong>Response:</strong></p> <div class="language-json highlight"><pre><span></span><code><span id=__span-9-1><a id=__codelineno-9-1 name=__codelineno-9-1 href=#__codelineno-9-1></a><span class=p>{</span>
|
||||
</span><span id=__span-9-2><a id=__codelineno-9-2 name=__codelineno-9-2 href=#__codelineno-9-2></a><span class=w> </span><span class=nt>"ok"</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
|
||||
</span><span id=__span-9-3><a id=__codelineno-9-3 name=__codelineno-9-3 href=#__codelineno-9-3></a><span class=w> </span><span class=nt>"script"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
|
||||
</span><span id=__span-9-4><a id=__codelineno-9-4 name=__codelineno-9-4 href=#__codelineno-9-4></a><span class=w> </span><span class=nt>"id"</span><span class=p>:</span><span class=w> </span><span class=s2>"script-abc123"</span><span class=p>,</span>
|
||||
</span><span id=__span-9-5><a id=__codelineno-9-5 name=__codelineno-9-5 href=#__codelineno-9-5></a><span class=w> </span><span class=nt>"name"</span><span class=p>:</span><span class=w> </span><span class=s2>"Zu Plex verschieben"</span><span class=p>,</span>
|
||||
</span><span id=__span-9-6><a id=__codelineno-9-6 name=__codelineno-9-6 href=#__codelineno-9-6></a><span class=w> </span><span class=nt>"command"</span><span class=p>:</span><span class=w> </span><span class=s2>"/home/michael/scripts/move-to-plex.sh"</span>
|
||||
</span><span id=__span-9-7><a id=__codelineno-9-7 name=__codelineno-9-7 href=#__codelineno-9-7></a><span class=w> </span><span class=p>}</span>
|
||||
</span><span id=__span-9-8><a id=__codelineno-9-8 name=__codelineno-9-8 href=#__codelineno-9-8></a><span class=p>}</span>
|
||||
</span></code></pre></div> <hr> <h3 id=put-apisettingsscriptsscriptid>PUT /api/settings/scripts/:scriptId<a class=headerlink href=#put-apisettingsscriptsscriptid title="Permanent link">¶</a></h3> <p>Aktualisiert ein vorhandenes Skript.</p> <p><strong>URL-Parameter:</strong> <code>scriptId</code></p> <p><strong>Request:</strong> Gleiche Felder wie beim Anlegen (alle optional).</p> <div class="language-json highlight"><pre><span></span><code><span id=__span-10-1><a id=__codelineno-10-1 name=__codelineno-10-1 href=#__codelineno-10-1></a><span class=p>{</span><span class=w> </span><span class=nt>"name"</span><span class=p>:</span><span class=w> </span><span class=s2>"Zu Jellyfin verschieben"</span><span class=p>,</span><span class=w> </span><span class=nt>"command"</span><span class=p>:</span><span class=w> </span><span class=s2>"/home/michael/scripts/move-to-jellyfin.sh"</span><span class=w> </span><span class=p>}</span>
|
||||
</span></code></pre></div> <p><strong>Response:</strong> <code>{ "ok": true }</code></p> <hr> <h3 id=delete-apisettingsscriptsscriptid>DELETE /api/settings/scripts/:scriptId<a class=headerlink href=#delete-apisettingsscriptsscriptid title="Permanent link">¶</a></h3> <p>Löscht ein Skript.</p> <p><strong>URL-Parameter:</strong> <code>scriptId</code></p> <p><strong>Response:</strong> <code>{ "ok": true }</code></p> <div class="admonition warning"> <p class=admonition-title>Referenzen in Jobs</p> <p>Wenn das Skript in laufenden oder abgeschlossenen Jobs referenziert wird, wird es trotzdem gelöscht. In zukünftigen Encode-Reviews erscheint es nicht mehr.</p> </div> <hr> <h3 id=post-apisettingsscriptsscriptidtest>POST /api/settings/scripts/:scriptId/test<a class=headerlink href=#post-apisettingsscriptsscriptidtest title="Permanent link">¶</a></h3> <p>Führt ein Skript mit Platzhalter-Umgebungsvariablen aus (Testlauf).</p> <p><strong>URL-Parameter:</strong> <code>scriptId</code></p> <p><strong>Response (Erfolg):</strong></p> <div class="language-json highlight"><pre><span></span><code><span id=__span-11-1><a id=__codelineno-11-1 name=__codelineno-11-1 href=#__codelineno-11-1></a><span class=p>{</span>
|
||||
</span><span id=__span-11-2><a id=__codelineno-11-2 name=__codelineno-11-2 href=#__codelineno-11-2></a><span class=w> </span><span class=nt>"ok"</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
|
||||
</span><span id=__span-11-3><a id=__codelineno-11-3 name=__codelineno-11-3 href=#__codelineno-11-3></a><span class=w> </span><span class=nt>"exitCode"</span><span class=p>:</span><span class=w> </span><span class=mi>0</span><span class=p>,</span>
|
||||
</span><span id=__span-11-4><a id=__codelineno-11-4 name=__codelineno-11-4 href=#__codelineno-11-4></a><span class=w> </span><span class=nt>"stdout"</span><span class=p>:</span><span class=w> </span><span class=s2>"Testausgabe des Skripts"</span><span class=p>,</span>
|
||||
</span><span id=__span-11-5><a id=__codelineno-11-5 name=__codelineno-11-5 href=#__codelineno-11-5></a><span class=w> </span><span class=nt>"stderr"</span><span class=p>:</span><span class=w> </span><span class=s2>""</span><span class=p>,</span>
|
||||
</span><span id=__span-11-6><a id=__codelineno-11-6 name=__codelineno-11-6 href=#__codelineno-11-6></a><span class=w> </span><span class=nt>"durationMs"</span><span class=p>:</span><span class=w> </span><span class=mi>245</span>
|
||||
</span><span id=__span-11-7><a id=__codelineno-11-7 name=__codelineno-11-7 href=#__codelineno-11-7></a><span class=p>}</span>
|
||||
</span></code></pre></div> <p><strong>Response (Fehler):</strong></p> <div class="language-json highlight"><pre><span></span><code><span id=__span-12-1><a id=__codelineno-12-1 name=__codelineno-12-1 href=#__codelineno-12-1></a><span class=p>{</span>
|
||||
</span><span id=__span-12-2><a id=__codelineno-12-2 name=__codelineno-12-2 href=#__codelineno-12-2></a><span class=w> </span><span class=nt>"ok"</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
|
||||
</span><span id=__span-12-3><a id=__codelineno-12-3 name=__codelineno-12-3 href=#__codelineno-12-3></a><span class=w> </span><span class=nt>"exitCode"</span><span class=p>:</span><span class=w> </span><span class=mi>1</span><span class=p>,</span>
|
||||
</span><span id=__span-12-4><a id=__codelineno-12-4 name=__codelineno-12-4 href=#__codelineno-12-4></a><span class=w> </span><span class=nt>"stdout"</span><span class=p>:</span><span class=w> </span><span class=s2>""</span><span class=p>,</span>
|
||||
</span><span id=__span-12-5><a id=__codelineno-12-5 name=__codelineno-12-5 href=#__codelineno-12-5></a><span class=w> </span><span class=nt>"stderr"</span><span class=p>:</span><span class=w> </span><span class=s2>"Datei nicht gefunden: /home/michael/scripts/move-to-plex.sh"</span><span class=p>,</span>
|
||||
</span><span id=__span-12-6><a id=__codelineno-12-6 name=__codelineno-12-6 href=#__codelineno-12-6></a><span class=w> </span><span class=nt>"durationMs"</span><span class=p>:</span><span class=w> </span><span class=mi>12</span>
|
||||
</span><span id=__span-12-7><a id=__codelineno-12-7 name=__codelineno-12-7 href=#__codelineno-12-7></a><span class=p>}</span>
|
||||
</span></code></pre></div> <p><strong>Platzhalter-Werte beim Testlauf:</strong></p> <table> <thead> <tr> <th>Variable</th> <th>Testwert</th> </tr> </thead> <tbody> <tr> <td><code>RIPSTER_OUTPUT_PATH</code></td> <td><code>/tmp/ripster-test-output.mkv</code></td> </tr> <tr> <td><code>RIPSTER_JOB_ID</code></td> <td><code>0</code></td> </tr> <tr> <td><code>RIPSTER_TITLE</code></td> <td><code>Test Film</code></td> </tr> <tr> <td><code>RIPSTER_YEAR</code></td> <td><code>2024</code></td> </tr> <tr> <td><code>RIPSTER_IMDB_ID</code></td> <td><code>tt0000000</code></td> </tr> <tr> <td><code>RIPSTER_RAW_PATH</code></td> <td><code>/tmp/ripster-test-raw.mkv</code></td> </tr> </tbody> </table> <hr> <h2 id=einstellungs-schlussel-referenz>Einstellungs-Schlüssel Referenz<a class=headerlink href=#einstellungs-schlussel-referenz title="Permanent link">¶</a></h2> <p>Eine vollständige Liste aller Einstellungs-Schlüssel:</p> <table> <thead> <tr> <th>Schlüssel</th> <th>Kategorie</th> <th>Typ</th> <th>Beschreibung</th> </tr> </thead> <tbody> <tr> <td><code>raw_dir</code></td> <td>paths</td> <td>string</td> <td>Raw-MKV Verzeichnis</td> </tr> <tr> <td><code>movie_dir</code></td> <td>paths</td> <td>string</td> <td>Ausgabe-Verzeichnis</td> </tr> <tr> <td><code>log_dir</code></td> <td>paths</td> <td>string</td> <td>Log-Verzeichnis</td> </tr> <tr> <td><code>makemkv_command</code></td> <td>tools</td> <td>string</td> <td>MakeMKV-Befehl</td> </tr> <tr> <td><code>handbrake_command</code></td> <td>tools</td> <td>string</td> <td>HandBrake-Befehl</td> </tr> <tr> <td><code>mediainfo_command</code></td> <td>tools</td> <td>string</td> <td>MediaInfo-Befehl</td> </tr> <tr> <td><code>handbrake_preset</code></td> <td>encoding</td> <td>string</td> <td>HandBrake-Preset-Name</td> </tr> <tr> <td><code>handbrake_extra_args</code></td> <td>encoding</td> <td>string</td> <td>Zusatz-Argumente</td> </tr> <tr> <td><code>output_extension</code></td> <td>encoding</td> <td>string</td> <td>Dateiendung (z.B. <code>mkv</code>)</td> </tr> <tr> <td><code>filename_template</code></td> <td>encoding</td> <td>string</td> <td>Dateiname-Template</td> </tr> <tr> <td><code>drive_mode</code></td> <td>drive</td> <td>select</td> <td><code>auto</code> oder <code>explicit</code></td> </tr> <tr> <td><code>drive_device</code></td> <td>drive</td> <td>string</td> <td>Geräte-Pfad</td> </tr> <tr> <td><code>disc_poll_interval_ms</code></td> <td>drive</td> <td>number</td> <td>Polling-Intervall (ms)</td> </tr> <tr> <td><code>makemkv_min_length_minutes</code></td> <td>makemkv</td> <td>number</td> <td>Min. Titellänge (Minuten)</td> </tr> <tr> <td><code>makemkv_backup_mode</code></td> <td>makemkv</td> <td>boolean</td> <td>Backup-Modus aktivieren</td> </tr> <tr> <td><code>omdb_api_key</code></td> <td>omdb</td> <td>string</td> <td>OMDb API-Key</td> </tr> <tr> <td><code>omdb_default_type</code></td> <td>omdb</td> <td>select</td> <td>Standard-Suchtyp</td> </tr> <tr> <td><code>pushover_user_key</code></td> <td>notifications</td> <td>string</td> <td>PushOver User-Key</td> </tr> <tr> <td><code>pushover_api_token</code></td> <td>notifications</td> <td>string</td> <td>PushOver API-Token</td> </tr> </tbody> </table> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Zurück zum Seitenanfang </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/YOUR_GITHUB_USERNAME/ripster target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 23Line truncated
|
||||
Reference in new issue
Block a user