Skip to content

Commit 9c9534a

Browse files
authored
fix inability to unset predefined libraries, move default libraries to option module (#207)
1 parent 87f42e9 commit 9c9534a

5 files changed

Lines changed: 195 additions & 192 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
66

7+
## [Unreleased]
8+
9+
### Fixed
10+
11+
- Inability to unset predefined libraries
12+
713
## [1.1.0] - 2026-05-12
814

915
### Added

modules/jellyfin/default.nix

Lines changed: 0 additions & 185 deletions
Original file line numberDiff line numberDiff line change
@@ -71,191 +71,6 @@ in
7171
warnings = pluginResolution.resolutionWarnings;
7272

7373
nixflix.jellyfin = {
74-
libraries = mkMerge [
75-
(mkIf (nixflix.sonarr.enable or false) {
76-
Shows = {
77-
collectionType = "tvshows";
78-
paths = nixflix.sonarr.mediaDirs;
79-
80-
typeOptions = [
81-
{
82-
type = "Series";
83-
imageFetchers = [
84-
"TheMovieDb"
85-
];
86-
imageFetcherOrder = [
87-
"TheMovieDb"
88-
];
89-
metadataFetchers = [
90-
"TheMovieDb"
91-
"The Open Movie Database"
92-
];
93-
metadataFetcherOrder = [
94-
"TheMovieDb"
95-
"The Open Movie Database"
96-
];
97-
}
98-
{
99-
type = "Season";
100-
imageFetchers = [
101-
"TheMovieDb"
102-
];
103-
imageFetcherOrder = [
104-
"TheMovieDb"
105-
];
106-
metadataFetchers = [
107-
"TheMovieDb"
108-
];
109-
metadataFetcherOrder = [
110-
"TheMovieDb"
111-
];
112-
}
113-
{
114-
type = "Episode";
115-
imageFetchers = [
116-
"TheMovieDb"
117-
"The Open Movie Database"
118-
"Embedded Image Extractor"
119-
"Screen Grabber"
120-
];
121-
imageFetcherOrder = [
122-
"TheMovieDb"
123-
"The Open Movie Database"
124-
"Embedded Image Extractor"
125-
"Screen Grabber"
126-
];
127-
metadataFetchers = [
128-
"TheMovieDb"
129-
"The Open Movie Database"
130-
];
131-
metadataFetcherOrder = [
132-
"TheMovieDb"
133-
"The Open Movie Database"
134-
];
135-
}
136-
];
137-
};
138-
})
139-
(mkIf (nixflix.sonarr-anime.enable or false) {
140-
Anime = {
141-
collectionType = "tvshows";
142-
paths = nixflix.sonarr-anime.mediaDirs;
143-
144-
typeOptions = [
145-
{
146-
type = "Series";
147-
imageFetchers = [
148-
"AniDB"
149-
"AniSearch"
150-
"TheMovieDb"
151-
];
152-
imageFetcherOrder = [
153-
"AniDB"
154-
"AniSearch"
155-
"TheMovieDb"
156-
];
157-
metadataFetchers = [
158-
"AniDB"
159-
"AniSearch"
160-
"TheMovieDb"
161-
"The Open Movie Database"
162-
];
163-
metadataFetcherOrder = [
164-
"AniDB"
165-
"AniSearch"
166-
"TheMovieDb"
167-
"The Open Movie Database"
168-
];
169-
}
170-
{
171-
type = "Season";
172-
imageFetchers = [
173-
"AniDB"
174-
"AniSearch"
175-
"TheMovieDb"
176-
];
177-
imageFetcherOrder = [
178-
"AniDB"
179-
"AniSearch"
180-
"TheMovieDb"
181-
];
182-
metadataFetchers = [
183-
"AniDB"
184-
"TheMovieDb"
185-
];
186-
metadataFetcherOrder = [
187-
"AniDB"
188-
"TheMovieDb"
189-
];
190-
}
191-
{
192-
type = "Episode";
193-
imageFetchers = [
194-
"TheMovieDb"
195-
"The Open Movie Database"
196-
"Embedded Image Extractor"
197-
"Screen Grabber"
198-
];
199-
imageFetcherOrder = [
200-
"TheMovieDb"
201-
"The Open Movie Database"
202-
"Embedded Image Extractor"
203-
"Screen Grabber"
204-
];
205-
metadataFetchers = [
206-
"AniDB"
207-
"TheMovieDb"
208-
"The Open Movie Database"
209-
];
210-
metadataFetcherOrder = [
211-
"AniDB"
212-
"TheMovieDb"
213-
"The Open Movie Database"
214-
];
215-
}
216-
];
217-
};
218-
})
219-
(mkIf (nixflix.radarr.enable or false) {
220-
Movies = {
221-
collectionType = "movies";
222-
paths = nixflix.radarr.mediaDirs;
223-
224-
typeOptions = [
225-
{
226-
type = "Movies";
227-
imageFetchers = [
228-
"TheMovieDb"
229-
"The Open Movie Database"
230-
"Embedded Image Extractor"
231-
"Screen Grabber"
232-
];
233-
imageFetcherOrder = [
234-
"TheMovieDb"
235-
"The Open Movie Database"
236-
"Embedded Image Extractor"
237-
"Screen Grabber"
238-
];
239-
metadataFetchers = [
240-
"TheMovieDb"
241-
"The Open Movie Database"
242-
];
243-
metadataFetcherOrder = [
244-
"TheMovieDb"
245-
"The Open Movie Database"
246-
];
247-
}
248-
];
249-
};
250-
})
251-
(mkIf (nixflix.lidarr.enable or false) {
252-
Music = {
253-
collectionType = "music";
254-
paths = nixflix.lidarr.mediaDirs;
255-
};
256-
})
257-
];
258-
25974
plugins.AniDB = mkIf config.nixflix.sonarr-anime.enable {
26075
package = mkDefault (
26176
jellyfinPlugins.fromRepo {

modules/jellyfin/librariesService.nix

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,14 @@ let
3232
LibraryOptions = buildLibraryOptions libraryName libraryCfg;
3333
};
3434

35+
libraries = lib.filterAttrs (_name: value: value != null) cfg.libraries;
36+
3537
libraryConfigFiles = mapAttrs (
3638
libraryName: libraryCfg:
3739
pkgs.writeText "jellyfin-library-${libraryName}.json" (
3840
builtins.toJSON (buildCreatePayload libraryName libraryCfg)
3941
)
40-
) cfg.libraries;
42+
) libraries;
4143

4244
baseUrl =
4345
if cfg.network.baseUrl == "" then
@@ -51,7 +53,7 @@ let
5153
};
5254
in
5355
{
54-
config = mkIf (nixflix.enable && cfg.enable && cfg.libraries != { }) {
56+
config = mkIf (nixflix.enable && cfg.enable && libraries != { }) {
5557
systemd.services.jellyfin-libraries = {
5658
description = "Configure Jellyfin Libraries via API";
5759
after = [ "jellyfin-plugins.service" ] ++ config.nixflix.serviceDependencies;
@@ -80,7 +82,7 @@ in
8082
mkdir -p "${path}"
8183
echo "Created path: ${path}"
8284
'') libraryCfg.paths
83-
) cfg.libraries
85+
) libraries
8486
)}
8587
8688
source ${authUtil.authScript}
@@ -105,7 +107,7 @@ in
105107
fi
106108
107109
CONFIGURED_NAMES=$(cat <<'EOF'
108-
${builtins.toJSON (attrNames cfg.libraries)}
110+
${builtins.toJSON (attrNames libraries)}
109111
EOF
110112
)
111113
@@ -330,7 +332,7 @@ in
330332
echo "Successfully recreated library: ${libraryName}"
331333
fi
332334
fi
333-
'') cfg.libraries
335+
'') libraries
334336
)}
335337
336338
echo "$CONFIGURED_NAMES" > "$STATE_FILE"

0 commit comments

Comments
 (0)