1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 poetry-core,
6 beautifulsoup4,
7 comicon,
8 feedparser,
9 filetype,
10 lxml,
11 natsort,
12 nix-update-script,
13 pillow,
14 python-slugify,
15 requests,
16 typer,
17 pyside6,
18}:
19
20buildPythonPackage rec {
21 pname = "mandown";
22 version = "1.10.0";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "potatoeggy";
27 repo = "mandown";
28 rev = "refs/tags/v${version}";
29 hash = "sha256-eMZXXOGe9jKf9bXEinIIu6w3i4SOkLnDWnxmT5G0RWA=";
30 };
31
32 nativeBuildInputs = [
33 poetry-core
34 ];
35
36 pythonRelaxDeps = [
37 "lxml"
38 "pillow"
39 "typer"
40 ];
41
42 propagatedBuildInputs = [
43 beautifulsoup4
44 comicon
45 feedparser
46 filetype
47 lxml
48 natsort
49 pillow
50 python-slugify
51 requests
52 typer
53 ];
54
55 optional-dependencies = {
56 gui = [ pyside6 ];
57 updateScript = nix-update-script { };
58 };
59
60 pythonImportsCheck = [ "mandown" ];
61
62 meta = with lib; {
63 changelog = "https://github.com/potatoeggy/mandown/releases/tag/v${version}";
64 description = "Comic/manga/webtoon downloader and CBZ/EPUB/MOBI/PDF converter";
65 homepage = "https://github.com/potatoeggy/mandown";
66 license = licenses.agpl3Only;
67 maintainers = with maintainers; [ Scrumplex ];
68 };
69}