{ description = "DLSite download organizer"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; inputs.nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11"; outputs = { self, nixpkgs, nixpkgs-stable }: let pkgs = import nixpkgs { system = "x86_64-linux"; config.allowUnfree = true; }; pkgs-stable = import nixpkgs-stable { system = "x86_64-linux"; }; project = builtins.fromTOML (builtins.readFile ./pyproject.toml); in { packages.x86_64-linux = with pkgs.python3Packages; rec { dlsite-async = buildPythonPackage rec { pname = "dlsite_async"; version = "0.10.1"; src = fetchPypi { inherit pname version; sha256 = "sha256-K7xbHtz2SF8Rs+2Rm0Llw5jWnqlTLP5vSuAM3mXEAeY="; }; pyproject = true; nativeBuildInputs = [ (assert pkgs.pdm.version == "2.26.6"; pkgs-stable.pdm) ]; propagatedBuildInputs = [ lxml aiohttp beautifulsoup4 cryptography pdm-backend ]; }; dlibrary = buildPythonApplication { pname = "dlibrary"; inherit (project.project) version; pyproject = true; propagatedBuildInputs = [ pymupdf pillow requests dlsite-async jinja2 importlib-resources setuptools libsixel (rarfile.override { useUnrar = true; }) pyuca ]; src = ./.; }; default = dlibrary; }; }; }