docs: publish site from 5fede123
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Every request this app makes identifies the same device, so the device id alone cannot tell two transcodes of the same item apart — see `begin_video_play_session`."><title>DEVICE_ID in jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc constant"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">DEVICE_ID</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>online</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a>::<wbr><a href="index.html">online</a></div><h1>Constant <span class="constant">DEVICE_<wbr>ID</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#50">Source</a> </span></div><pre class="rust item-decl"><code>const DEVICE_ID: &<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a> = "jellytau-tauri";</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Every request this app makes identifies the same device, so the device id
|
||||
alone cannot tell two transcodes of the same item apart — see
|
||||
<a href="fn.begin_video_play_session.html" title="fn jellytau_lib::repository::online::begin_video_play_session"><code>begin_video_play_session</code></a>.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Take ownership of a transcode this process did not build a URL for, returning the session it replaces."><title>adopt_video_play_session in jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">adopt_video_play_session</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>online</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a>::<wbr><a href="index.html">online</a></div><h1>Function <span class="fn">adopt_<wbr>video_<wbr>play_<wbr>session</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#90-92">Source</a> </span></div><pre class="rust item-decl"><code>pub fn adopt_video_play_session(session_id: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Take ownership of a transcode this process did not build a URL for, returning
|
||||
the session it replaces.</p>
|
||||
<p>When <code>PlaybackInfo</code> answers with a <code>TranscodingUrl</code> the server has already
|
||||
started the job and named the session; that id is the only handle on it we
|
||||
will ever have. Without adopting it, the first re-open of that stream has no
|
||||
previous session to stop and collides with the very job that was playing.</p>
|
||||
<p>TRACES: UR-074 | DR-177 | UT-173</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Claim a transcode identity for a stream about to be opened, returning the new `PlaySessionId` and the one it replaces (if any)."><title>begin_video_play_session in jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">begin_video_play_session</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>online</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a>::<wbr><a href="index.html">online</a></div><h1>Function <span class="fn">begin_<wbr>video_<wbr>play_<wbr>session</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#74-79">Source</a> </span></div><pre class="rust item-decl"><code>pub fn begin_video_play_session() -> (<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>)</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Claim a transcode identity for a stream about to be opened, returning the new
|
||||
<code>PlaySessionId</code> and the one it replaces (if any).</p>
|
||||
<p>Jellyfin keys a transcode job by device <em>and</em> play session. Without a session
|
||||
id every open of the same item on this device looked like the same job, so
|
||||
re-opening a stream — a quality switch, a transcoded seek, an audio-track
|
||||
switch — left the old ffmpeg running and the server intermittently rejected
|
||||
segment requests for the new one (<code>400</code> on <code>hls1/main/0.ts</code>) while the two
|
||||
fought over one transcode path. The caller stops the returned previous
|
||||
session before the new stream’s segments are fetched.</p>
|
||||
<p>TRACES: UR-074 | DR-177 | UT-173</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Build the Jellyfin endpoint for a favourites listing."><title>build_favorites_endpoint in jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">build_favorites_endpoint</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>online</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a>::<wbr><a href="index.html">online</a></div><h1>Function <span class="fn">build_<wbr>favorites_<wbr>endpoint</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#934-965">Source</a> </span></div><pre class="rust item-decl"><code>fn build_favorites_endpoint(
|
||||
user_id: &<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
|
||||
scope: <a class="enum" href="../types/enum.SearchScope.html" title="enum jellytau_lib::repository::types::SearchScope">SearchScope</a>,
|
||||
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="../types/struct.GetItemsOptions.html" title="struct jellytau_lib::repository::types::GetItemsOptions">GetItemsOptions</a>>,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Build the Jellyfin endpoint for a favourites listing.</p>
|
||||
<p>Pulled out of <code>get_favorites</code> so the query can be asserted without an HTTP
|
||||
server. <code>scope</code> is expanded here — <code>SearchScope::All</code> yields <code>None</code>, and the
|
||||
<code>IncludeItemTypes</code> filter is then <strong>omitted entirely</strong> rather than sent as a
|
||||
union, which would silently drop every type nobody enumerated (see
|
||||
<code>SearchScope::item_types</code>).</p>
|
||||
<p>TRACES: UR-067 | DR-115, JA-033 | UT-100</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1,9 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Build the Jellyfin endpoint for a folder listing."><title>build_get_items_endpoint in jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">build_get_items_endpoint</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>online</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a>::<wbr><a href="index.html">online</a></div><h1>Function <span class="fn">build_<wbr>get_<wbr>items_<wbr>endpoint</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#804-874">Source</a> </span></div><pre class="rust item-decl"><code>fn build_get_items_endpoint(
|
||||
user_id: &<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
|
||||
parent_id: &<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
|
||||
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="../types/struct.GetItemsOptions.html" title="struct jellytau_lib::repository::types::GetItemsOptions">GetItemsOptions</a>>,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Build the Jellyfin endpoint for a folder listing.</p>
|
||||
<p>Extracted from <code>get_items</code> so the query it produces — in particular the
|
||||
favourites filter — can be asserted without standing up an HTTP server.</p>
|
||||
<p>TRACES: UR-007, UR-067 | DR-116 | UT-104</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1,15 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Build the Jellyfin endpoint for a “recently added” listing."><title>build_latest_items_endpoint in jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">build_latest_items_endpoint</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>online</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a>::<wbr><a href="index.html">online</a></div><h1>Function <span class="fn">build_<wbr>latest_<wbr>items_<wbr>endpoint</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#889-896">Source</a> </span></div><pre class="rust item-decl"><code>fn build_latest_items_endpoint(
|
||||
user_id: &<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
|
||||
parent_id: &<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
|
||||
limit: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.usize.html">usize</a>>,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Build the Jellyfin endpoint for a “recently added” listing.</p>
|
||||
<p><code>GroupItems=true</code> is the load-bearing parameter: Jellyfin defaults it to
|
||||
<code>false</code>, which returns each newly-added <em>leaf</em> separately, so importing one
|
||||
14-track album pushed 14 rows into “recently added” and buried everything
|
||||
else. With grouping on, the server collapses children into the container
|
||||
that was added — an album appears once, while movies (which have no such
|
||||
container) are unaffected.</p>
|
||||
<p>Pulled out of <code>get_latest_items</code> so the query can be asserted without an
|
||||
HTTP server, matching <code>build_favorites_endpoint</code>.</p>
|
||||
<p>TRACES: UR-024, UR-034 | IR-024, JA-016</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1,15 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Build the Jellyfin endpoint for a Next Up listing."><title>build_next_up_endpoint in jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">build_next_up_endpoint</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>online</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a>::<wbr><a href="index.html">online</a></div><h1>Function <span class="fn">build_<wbr>next_<wbr>up_<wbr>endpoint</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#911-923">Source</a> </span></div><pre class="rust item-decl"><code>fn build_next_up_endpoint(
|
||||
user_id: &<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
|
||||
series_id: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>>,
|
||||
limit: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.usize.html">usize</a>>,
|
||||
) -> <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Build the Jellyfin endpoint for a Next Up listing.</p>
|
||||
<p><code>EnableResumable=false</code> is the point of this query: the server default is
|
||||
<code>true</code>, which makes a partially-watched episode its own series’ “next up” —
|
||||
the very episode <code>/Items/Resume</code> returns — so Continue Watching and Next Up
|
||||
end up showing the same cards. Next Up should only ever offer episodes the
|
||||
viewer has not started. Servers predating the parameter ignore it, which is
|
||||
why the frontend also drops in-progress entries (DR-197).</p>
|
||||
<p>Pulled out of <code>get_next_up_episodes</code> so the query can be asserted without an
|
||||
HTTP server, matching <code>build_favorites_endpoint</code>.</p>
|
||||
<p>TRACES: UR-023, UR-059 | DR-197, JA-014, JA-036 | UT-190, UT-191</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1,6 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Apply a bandwidth ceiling to every subsequently-opened video stream."><title>set_streaming_quality in jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">set_streaming_quality</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>online</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a>::<wbr><a href="index.html">online</a></div><h1>Function <span class="fn">set_<wbr>streaming_<wbr>quality</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#36-38">Source</a> </span></div><pre class="rust item-decl"><code>pub fn set_streaming_quality(quality: <a class="enum" href="../../settings/enum.StreamingQuality.html" title="enum jellytau_lib::settings::StreamingQuality">StreamingQuality</a>)</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Apply a bandwidth ceiling to every subsequently-opened video stream.</p>
|
||||
<p>Streams already playing keep the bitrate they were opened at — a cap is a
|
||||
property of the URL the server is transcoding for, so changing it mid-stream
|
||||
requires re-opening at the new quality (<code>player_set_stream_quality</code>).</p>
|
||||
<p>TRACES: UR-074 | DR-162</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1,3 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The ceiling currently applied to new video streams."><title>streaming_quality in jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">streaming_quality</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>online</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a>::<wbr><a href="index.html">online</a></div><h1>Function <span class="fn">streaming_<wbr>quality</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#43-45">Source</a> </span></div><pre class="rust item-decl"><code>pub fn streaming_quality() -> <a class="enum" href="../../settings/enum.StreamingQuality.html" title="enum jellytau_lib::settings::StreamingQuality">StreamingQuality</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The ceiling currently applied to new video streams.</p>
|
||||
<p>TRACES: UR-074 | DR-162</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="TRACES: UR-002, UR-007 | DR-013 | IR-010"><title>jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module online</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module online</a></h2><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#constants" title="Constants">Constants</a></li><li><a href="#statics" title="Statics">Statics</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In jellytau_<wbr>lib::<wbr>repository</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a></div><h1>Module <span>online</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#1-3890">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>TRACES: UR-002, UR-007 | DR-013 | IR-010</p>
|
||||
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.CreatePlaylistResponse.html" title="struct jellytau_lib::repository::online::CreatePlaylistResponse">Create<wbr>Playlist<wbr>Response</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Jellyfin playlist creation response</dd><dt><a class="struct" href="struct.ItemsResponse.html" title="struct jellytau_lib::repository::online::ItemsResponse">Items<wbr>Response</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="struct" href="struct.JRayActor.html" title="struct jellytau_lib::repository::online::JRayActor">JRay<wbr>Actor</a></dt><dd>A single actor returned by the JRay plugin’s “context at time t” endpoint.</dd><dt><a class="struct" href="struct.JRayContext.html" title="struct jellytau_lib::repository::online::JRayContext">JRay<wbr>Context</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Envelope returned by the JRay <code>jray?t=</code> endpoint. Extra keys (future
|
||||
<code>locations</code>, <code>trivia</code>, …) are ignored so the client tolerates schema growth.</dd><dt><a class="struct" href="struct.JellyfinItem.html" title="struct jellytau_lib::repository::online::JellyfinItem">Jellyfin<wbr>Item</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="struct" href="struct.JellyfinMediaSource.html" title="struct jellytau_lib::repository::online::JellyfinMediaSource">Jellyfin<wbr>Media<wbr>Source</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="struct" href="struct.JellyfinMediaStream.html" title="struct jellytau_lib::repository::online::JellyfinMediaStream">Jellyfin<wbr>Media<wbr>Stream</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="struct" href="struct.JellyfinPlaylistItem.html" title="struct jellytau_lib::repository::online::JellyfinPlaylistItem">Jellyfin<wbr>Playlist<wbr>Item</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>A playlist item from Jellyfin — wraps a regular item with an entry-scoped ID</dd><dt><a class="struct" href="struct.JellyfinUserData.html" title="struct jellytau_lib::repository::online::JellyfinUserData">Jellyfin<wbr>User<wbr>Data</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Per-user state Jellyfin attaches to an item (favourite, played, resume).</dd><dt><a class="struct" href="struct.OnlineRepository.html" title="struct jellytau_lib::repository::online::OnlineRepository">Online<wbr>Repository</a></dt><dd>Online repository - fetches data from Jellyfin server via HTTP</dd><dt><a class="struct" href="struct.PlaylistItemsResponse.html" title="struct jellytau_lib::repository::online::PlaylistItemsResponse">Playlist<wbr>Items<wbr>Response</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Jellyfin playlist items response — items include PlaylistItemId</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.ImageTags.html" title="enum jellytau_lib::repository::online::ImageTags">Image<wbr>Tags</a><span title="Restricted Visibility"> 🔒</span> </dt></dl><h2 id="constants" class="section-header">Constants<a href="#constants" class="anchor">§</a></h2><dl class="item-table"><dt><a class="constant" href="constant.DEVICE_ID.html" title="constant jellytau_lib::repository::online::DEVICE_ID">DEVICE_<wbr>ID</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Every request this app makes identifies the same device, so the device id
|
||||
alone cannot tell two transcodes of the same item apart — see
|
||||
<a href="fn.begin_video_play_session.html" title="fn jellytau_lib::repository::online::begin_video_play_session"><code>begin_video_play_session</code></a>.</dd></dl><h2 id="statics" class="section-header">Statics<a href="#statics" class="anchor">§</a></h2><dl class="item-table"><dt><a class="static" href="static.STREAMING_QUALITY.html" title="static jellytau_lib::repository::online::STREAMING_QUALITY">STREAMING_<wbr>QUALITY</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>The bandwidth ceiling every video stream this process opens is built against.</dd><dt><a class="static" href="static.VIDEO_PLAY_SESSION.html" title="static jellytau_lib::repository::online::VIDEO_PLAY_SESSION">VIDEO_<wbr>PLAY_<wbr>SESSION</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>The <code>PlaySessionId</code> of the video transcode most recently opened, so the next
|
||||
open can stop it.</dd></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.adopt_video_play_session.html" title="fn jellytau_lib::repository::online::adopt_video_play_session">adopt_<wbr>video_<wbr>play_<wbr>session</a></dt><dd>Take ownership of a transcode this process did not build a URL for, returning
|
||||
the session it replaces.</dd><dt><a class="fn" href="fn.begin_video_play_session.html" title="fn jellytau_lib::repository::online::begin_video_play_session">begin_<wbr>video_<wbr>play_<wbr>session</a></dt><dd>Claim a transcode identity for a stream about to be opened, returning the new
|
||||
<code>PlaySessionId</code> and the one it replaces (if any).</dd><dt><a class="fn" href="fn.build_favorites_endpoint.html" title="fn jellytau_lib::repository::online::build_favorites_endpoint">build_<wbr>favorites_<wbr>endpoint</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Build the Jellyfin endpoint for a favourites listing.</dd><dt><a class="fn" href="fn.build_get_items_endpoint.html" title="fn jellytau_lib::repository::online::build_get_items_endpoint">build_<wbr>get_<wbr>items_<wbr>endpoint</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Build the Jellyfin endpoint for a folder listing.</dd><dt><a class="fn" href="fn.build_latest_items_endpoint.html" title="fn jellytau_lib::repository::online::build_latest_items_endpoint">build_<wbr>latest_<wbr>items_<wbr>endpoint</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Build the Jellyfin endpoint for a “recently added” listing.</dd><dt><a class="fn" href="fn.build_next_up_endpoint.html" title="fn jellytau_lib::repository::online::build_next_up_endpoint">build_<wbr>next_<wbr>up_<wbr>endpoint</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Build the Jellyfin endpoint for a Next Up listing.</dd><dt><a class="fn" href="fn.set_streaming_quality.html" title="fn jellytau_lib::repository::online::set_streaming_quality">set_<wbr>streaming_<wbr>quality</a></dt><dd>Apply a bandwidth ceiling to every subsequently-opened video stream.</dd><dt><a class="fn" href="fn.streaming_quality.html" title="fn jellytau_lib::repository::online::streaming_quality">streaming_<wbr>quality</a></dt><dd>The ceiling currently applied to new video streams.</dd></dl></section></div></main></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"constant":["DEVICE_ID"],"enum":["ImageTags"],"fn":["adopt_video_play_session","begin_video_play_session","build_favorites_endpoint","build_get_items_endpoint","build_latest_items_endpoint","build_next_up_endpoint","set_streaming_quality","streaming_quality"],"static":["STREAMING_QUALITY","VIDEO_PLAY_SESSION"],"struct":["CreatePlaylistResponse","ItemsResponse","JRayActor","JRayContext","JellyfinItem","JellyfinMediaSource","JellyfinMediaStream","JellyfinPlaylistItem","JellyfinUserData","OnlineRepository","PlaylistItemsResponse"]};
|
||||
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The bandwidth ceiling every video stream this process opens is built against."><title>STREAMING_QUALITY in jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc static"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">STREAMING_QUALITY</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>online</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a>::<wbr><a href="index.html">online</a></div><h1>Static <span class="static">STREAMING_<wbr>QUALITY</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#27">Source</a> </span></div><pre class="rust item-decl"><code>static STREAMING_QUALITY: <a class="struct" href="https://doc.rust-lang.org/1.97.1/std/sync/poison/rwlock/struct.RwLock.html" title="struct std::sync::poison::rwlock::RwLock">RwLock</a><<a class="enum" href="../../settings/enum.StreamingQuality.html" title="enum jellytau_lib::settings::StreamingQuality">StreamingQuality</a>></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The bandwidth ceiling every video stream this process opens is built against.</p>
|
||||
<p>Process-wide rather than a field on <a href="struct.OnlineRepository.html" title="struct jellytau_lib::repository::online::OnlineRepository"><code>OnlineRepository</code></a> because it is a user
|
||||
preference about <em>this device’s connection</em>, not about a server session: it
|
||||
must survive a repository being rebuilt on re-login, and every URL builder and
|
||||
the <code>PlaybackInfo</code> negotiation have to agree on it or the cap leaks (the
|
||||
negotiation would authorise a direct play the URL builder then never gets to
|
||||
constrain). Same shape as <code>offline::INCLUDE_CATALOG_BROWSE</code>.</p>
|
||||
<p>Set from <code>player_set_video_settings</code> / <code>player_set_stream_quality</code>, and
|
||||
restored from the database at startup.</p>
|
||||
<p>TRACES: UR-074 | DR-162</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1,7 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The `PlaySessionId` of the video transcode most recently opened, so the next open can stop it."><title>VIDEO_PLAY_SESSION in jellytau_lib::repository::online - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc static"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">VIDEO_PLAY_SESSION</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.10.1</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>online</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a>::<wbr><a href="index.html">online</a></div><h1>Static <span class="static">VIDEO_<wbr>PLAY_<wbr>SESSION</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/online.rs.html#60">Source</a> </span></div><pre class="rust item-decl"><code>static VIDEO_PLAY_SESSION: <a class="struct" href="https://doc.rust-lang.org/1.97.1/std/sync/poison/rwlock/struct.RwLock.html" title="struct std::sync::poison::rwlock::RwLock">RwLock</a><<a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The <code>PlaySessionId</code> of the video transcode most recently opened, so the next
|
||||
open can stop it.</p>
|
||||
<p>Process-wide for the same reason as <a href="static.STREAMING_QUALITY.html" title="static jellytau_lib::repository::online::STREAMING_QUALITY"><code>STREAMING_QUALITY</code></a>: it describes what
|
||||
<em>this device</em> currently has running on the server, and must survive the
|
||||
repository being rebuilt on re-login.</p>
|
||||
<p>TRACES: UR-074 | DR-162</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user