Files
jellytau/api/jellytau_lib/repository/exclusions/index.html
T

25 lines
7.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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="User-chosen browsing exclusions (UR-076 / DR-209). Library folders the user has chosen to keep out of browsing."><title>jellytau_lib::repository::exclusions - 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 exclusions</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 exclusions</a></h2><h3><a href="#statics">Module Items</a></h3><ul class="block"><li><a href="#statics" title="Statics">Statics</a></li><li><a href="#traits" title="Traits">Traits</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>exclusions</span>&nbsp;<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/exclusions.rs.html#1-352">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>User-chosen browsing exclusions (UR-076 / DR-209).
Library folders the user has chosen to keep out of browsing.</p>
<p>Some people file things inside a library that they never want to see while
browsing it — a “Podcasts” folder sitting in the music library is the
canonical case: its albums and tracks leak into album, artist, track and
playlist listings even though the user thinks of them as a different medium.</p>
<p>This is a <em>domain</em> rule, not a presentation one: what an item belongs to, and
therefore whether a query should return it, is decided here in the repository
layer so every query path agrees. The predecessor of this module was a
frontend filter that dropped anything literally named “Podcasts” — one users
folder layout, keyed on an English string, shipped to everyone. Excluding by
<strong>id</strong> instead of name is what makes the setting survive a rename, a
translation, or two folders sharing a name.</p>
<p>The excluded set is process-wide rather than a field on a repository for the
same reason as <code>online::STREAMING_QUALITY</code>: it is a preference about <em>this
users browsing</em>, not about a server session, so it must survive a repository
being rebuilt on re-login. It is written by the settings command and restored
from the database at startup.</p>
<p>TRACES: UR-076 | DR-209</p>
</div></details><h2 id="statics" class="section-header">Statics<a href="#statics" class="anchor">§</a></h2><dl class="item-table"><dt><a class="static" href="static.EXCLUDED_IDS.html" title="static jellytau_lib::repository::exclusions::EXCLUDED_IDS">EXCLUDED_<wbr>IDS</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Ids (normalised — see <a href="fn.normalise_id.html" title="fn jellytau_lib::repository::exclusions::normalise_id"><code>normalise_id</code></a>) of items the user has hidden.</dd></dl><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><dl class="item-table"><dt><a class="trait" href="trait.ExcludeHidden.html" title="trait jellytau_lib::repository::exclusions::ExcludeHidden">Exclude<wbr>Hidden</a></dt><dd>Drop the users hidden items from a repository result.</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.excluded_item_ids.html" title="fn jellytau_lib::repository::exclusions::excluded_item_ids">excluded_<wbr>item_<wbr>ids</a></dt><dd>The excluded set as currently applied, normalised.</dd><dt><a class="fn" href="fn.excluded_snapshot.html" title="fn jellytau_lib::repository::exclusions::excluded_snapshot">excluded_<wbr>snapshot</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Snapshot of the excluded set, taken once per list so a long listing does not
re-lock per item.</dd><dt><a class="fn" href="fn.is_excluded_by.html" title="fn jellytau_lib::repository::exclusions::is_excluded_by">is_<wbr>excluded_<wbr>by</a></dt><dd>Whether <code>item</code> falls under one of <code>excluded</code>.</dd><dt><a class="fn" href="fn.normalise_id.html" title="fn jellytau_lib::repository::exclusions::normalise_id">normalise_<wbr>id</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Jellyfin writes the same GUID both dashed and undashed depending on the
endpoint, and ids arriving over IPC may carry stray whitespace. Comparing a
canonical form means a stored id keeps matching whichever spelling a query
happens to return.</dd><dt><a class="fn" href="fn.set_excluded_item_ids.html" title="fn jellytau_lib::repository::exclusions::set_excluded_item_ids">set_<wbr>excluded_<wbr>item_<wbr>ids</a></dt><dd>Replace the excluded set. Ids are normalised, de-duplicated and blanks
dropped, so a malformed value can never hide more than it names.</dd></dl></section></div></main></body></html>