ao3downloader: init at 2025.6.1 (#419739)

authored by

Aleksana and committed by
GitHub
224e4e53 620a00f4

+118
+56
pkgs/by-name/ao/ao3downloader/package.nix
··· 1 + { 2 + lib, 3 + python312Packages, 4 + fetchFromGitHub, 5 + }: 6 + 7 + # ao3downloader explicitly does not support Python 3.13 yet 8 + # https://github.com/nianeyna/ao3downloader/blob/f8399bb8aca276ae7359157b90afd13925c90056/pyproject.toml#L8 9 + python312Packages.buildPythonApplication rec { 10 + pname = "ao3downloader"; 11 + version = "2025.6.1"; 12 + pyproject = true; 13 + 14 + src = fetchFromGitHub { 15 + owner = "nianeyna"; 16 + repo = "ao3downloader"; 17 + tag = "v${version}"; 18 + hash = "sha256-ukS3uku8OW5nhM2Nr0IxAiG03XfqUn/Xyd0lZDGGkWw="; 19 + }; 20 + 21 + build-system = with python312Packages; [ 22 + hatchling 23 + ]; 24 + 25 + dependencies = with python312Packages; [ 26 + beautifulsoup4 27 + mobi 28 + pdfquery 29 + requests 30 + six 31 + tqdm 32 + ]; 33 + 34 + pythonRelaxDeps = [ 35 + "requests" 36 + ]; 37 + 38 + pythonImportsCheck = [ 39 + "ao3downloader" 40 + ]; 41 + 42 + nativeCheckInputs = with python312Packages; [ 43 + pytestCheckHook 44 + syrupy 45 + pythonImportsCheckHook 46 + ]; 47 + 48 + meta = { 49 + description = "Utility for downloading fanfiction in bulk from the Archive of Our Own"; 50 + changelog = "https://github.com/nianeyna/ao3downloader/releases/tag/v${version}"; 51 + mainProgram = "ao3downloader"; 52 + homepage = "https://nianeyna.dev/ao3downloader"; 53 + license = lib.licenses.gpl3; 54 + maintainers = [ lib.maintainers.samasaur ]; 55 + }; 56 + }
+60
pkgs/development/python-modules/pdfquery/default.nix
··· 1 + { 2 + buildPythonPackage, 3 + fetchPypi, 4 + lib, 5 + cssselect, 6 + chardet, 7 + lxml, 8 + pdfminer-six, 9 + pyquery, 10 + roman, 11 + six, 12 + setuptools, 13 + }: 14 + 15 + buildPythonPackage rec { 16 + pname = "pdfquery"; 17 + version = "0.4.3"; 18 + pyproject = true; 19 + 20 + # The latest version is on PyPI but not tagged on GitHub 21 + src = fetchPypi { 22 + inherit pname version; 23 + hash = "sha256-oqKXTLMS/aT1aa3I1jN30l1cY2ckC0p7+xZTksc+Hc4="; 24 + }; 25 + 26 + dependencies = [ 27 + cssselect 28 + chardet 29 + lxml 30 + pdfminer-six 31 + pyquery 32 + roman 33 + 34 + # Not explicitly listed in setup.py; found through trial and error 35 + six 36 + ]; 37 + 38 + build-system = [ 39 + setuptools 40 + ]; 41 + 42 + # Although this package has tests, they aren't runnable with 43 + # `unittestCheckHook` or `pytestCheckHook` because you're meant 44 + # to run the tests with `python setup.py test`, but that's deprecated 45 + # and doesn't work anymore. So there are no runnable tests. 46 + doCheck = false; 47 + 48 + # This runs as a different phase than checkPhase, so still runs 49 + # despite `doCheck = false` 50 + pythonImportsCheck = [ 51 + "pdfquery" 52 + ]; 53 + 54 + meta = { 55 + description = "Concise, friendly PDF scraping using JQuery or XPath syntax"; 56 + homepage = "https://github.com/jcushman/pdfquery"; 57 + license = lib.licenses.mit; 58 + maintainers = [ lib.maintainers.samasaur ]; 59 + }; 60 + }
+2
pkgs/top-level/python-packages.nix
··· 11358 11358 11359 11359 pdfplumber = callPackage ../development/python-modules/pdfplumber { }; 11360 11360 11361 + pdfquery = callPackage ../development/python-modules/pdfquery { }; 11362 + 11361 11363 pdfrw = callPackage ../development/python-modules/pdfrw { }; 11362 11364 11363 11365 pdfrw2 = callPackage ../development/python-modules/pdfrw2 { };