diff options
| author | Isabella Bastaja <isabella@sorre.xyz> | 2026-03-22 21:49:41 +0100 |
|---|---|---|
| committer | Isabella Bastaja <isabella@sorre.xyz> | 2026-03-22 22:26:56 +0100 |
| commit | 50e2588f76ef70c8ea14df13e313618c00d15dcb (patch) | |
| tree | 429c8e853e03932362d70662e65800f36d156658 /wrappers/gallery-dl | |
| parent | 4cccd2c27f3108f7fb8aa53b2406b11dd83e31ba (diff) | |
Add wrapper-manger, wrap gallery-dl
Diffstat (limited to 'wrappers/gallery-dl')
| -rw-r--r-- | wrappers/gallery-dl/config.nix | 67 | ||||
| -rw-r--r-- | wrappers/gallery-dl/default.nix | 19 |
2 files changed, 86 insertions, 0 deletions
diff --git a/wrappers/gallery-dl/config.nix b/wrappers/gallery-dl/config.nix new file mode 100644 index 0000000..649eeda --- /dev/null +++ b/wrappers/gallery-dl/config.nix @@ -0,0 +1,67 @@ +{ + postprocessors = [ + { + name = "metadata"; + mode = "json"; + whitelist = [ + "danbooru" + "moebooru" + "gelbooru" + "sankaku" + "nhentai" + "rule34" + ]; + } + { + name = "zip"; + compression = "store"; + extension = "cbz"; + filter = "extension not in ('zip', 'rar')"; + whitelist = [ + "nhentai" + "mangadex" + ]; + } + ]; + + Danbooru.metadata = true; + + reddit = { + archive-format = "s_{subreddit}{filename}"; + directory = { + "locals().get('is_gallery')" = [ + "Reddit" + "S" + "{subreddit!C}" + "{title[:120]!t:?/_/R /_/}{id}" + ]; + "" = [ + "Reddit" + "S" + "{subreddit!C}" + ]; + }; + + filename = { + "locals().get('is_gallery')" = "{title[:120]!t:?/_/R /_/}{id}{num:?_//>02}.{extension}"; + "" = "{title[:120]!t:?/_/R /_/}{id}.{extension}"; + }; + }; + + artstation.external = true; # Try to follow external URLs of embedded players. + + ao3.formats = [ + "pdf" + "epub" + "html" + ]; + + bluesky = { + include = [ "all" ]; # List of subcategories to include when processing a **user profile**. + metadata = [ + "facets" + "user" + ]; + quoted = true; # Fetch media from quoted posts. + }; +} diff --git a/wrappers/gallery-dl/default.nix b/wrappers/gallery-dl/default.nix new file mode 100644 index 0000000..1c640f8 --- /dev/null +++ b/wrappers/gallery-dl/default.nix @@ -0,0 +1,19 @@ +{ pkgs, ... }: +let + jsonFormat = pkgs.formats.json { }; + config = (import ./config.nix); + jsonConfig = jsonFormat.generate "gallery-dl-config" config; +in +{ + wrappers.gallery-dl = { + basePackage = pkgs.gallery-dl; + prependFlags = [ + "--config" + jsonConfig + "--option" + # NOTE: escape the $ here because makeCWrapper otherwise expands it, + # evaluating to `/homeless-shelter` + "base-directory=\\$HOME/Pictures/gallery-dl" # TODO: maybe mandate XDG + ]; + }; +} |
