kmoe-manga-downloader


Namekmoe-manga-downloader JSON
Version 1.1.1 PyPI version JSON
download
home_pageNone
SummaryA CLI-downloader for site @kox.moe.
upload_time2025-08-29 07:49:32
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT License Copyright (c) 2025 chris zheng Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords manga downloader kmoe
VCS
bugtrack_url
requirements beautifulsoup4 Requests tqdm cloudscraper
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Kmoe Manga Downloader

[![PyPI Downloads](https://static.pepy.tech/badge/kmoe-manga-downloader)](https://pepy.tech/projects/kmoe-manga-downloader) [![PyPI version](https://img.shields.io/pypi/v/kmoe-manga-downloader.svg)](https://pypi.org/project/kmoe-manga-downloader/) [![Unit Tests](https://github.com/chrisis58/kmdr/actions/workflows/unit-test.yml/badge.svg)](https://github.com/chrisis58/kmdr/actions/workflows/unit-test.yml) [![Interpretor](https://img.shields.io/badge/python-3.9+-blue)](https://www.python.org/) [![License](https://img.shields.io/badge/License-MIT-green)](https://github.com/chrisis58/kmdr/blob/main/LICENSE)

`kmdr (Kmoe Manga Downloader)` 是一个 Python 应用,用于从 [Kmoe](https://kox.moe/) 网站下载漫画。它支持在终端环境下的登录、下载指定书籍及其卷,并支持回调脚本执行。

## ✨功能特性

- **凭证管理**: 命令行登录并持久化会话
- **多种下载方式**: 支持通过书籍 URL 或从收藏列表下载
- **高效下载**: 支持多线程、失败重试及断点续传
- **配置持久化**: 保存常用下载目录、代理等设置
- **回调支持**: 下载完成后自动执行自定义脚本

## 🛠️安装应用

你可以通过 PyPI 使用 `pip` 进行安装:

```bash
pip install kmoe-manga-downloader
```

## 📋使用方法

### 1. 登录 `kmoe`

首先需要登录 `kox.moe` 并保存登录状态(Cookie)。

```bash
kmdr login -u <your_username> -p <your_password>
# 或者
kmdr login -u <your_username>
```

第二种方式会在程序运行时获取登录密码,此时你输入的密码**不会显示**在终端中。

如果登录成功,会同时显示当前登录用户及配额。

### 2. 下载漫画书籍

你可以通过以下命令下载指定书籍或卷:

```bash
# 在当前目录下载第一、二、三卷
kmdr download --dest . --book-url https://kox.moe/c/50076.htm --volume 1,2,3
kmdr download -l https://kox.moe/c/50076.htm -v 1-3
```

```bash
# 在目标目录下载全部番外篇
kmdr download --dest path/to/destination --book-url https://kox.moe/c/50076.htm --vol-type extra -v all
kmdr download -d path/to/destination -l https://kox.moe/c/50076.htm -t extra -v all
```

#### 常用参数说明:

- `-d`, `--dest`: 下载的目标目录(默认为当前目录),在此基础上会额外添加一个为书籍名称的子目录
- `-l`, `--book-url`: 指定书籍的主页地址
- `-v`, `--volume`: 指定卷的名称,多个名称使用逗号分隔,`all` 表示下载所有卷
- `-t`, `--vol-type`: 卷类型,`vol`: 单行本(默认);`extra`: 番外;`seri`: 连载话;`all`: 全部
- `-p`, `--proxy`: 代理服务器地址
- `-r`, `--retry`: 下载失败时的重试次数
- `-c`, `--callback`: 下载完成后的回调脚本(使用方式详见 [4. 回调函数](https://github.com/chrisis58/kmoe-manga-downlaoder?tab=readme-ov-file#4-%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0))
- `--num-workers`: 最大同时下载数量,默认为 1

> 完整的参数说明可以从 `help` 指令中获取。

### 3. 查看账户状态

查看当前账户信息(账户名和配额等):

```bash
kmdr status
```

### 4. 回调函数

你可以设置一个回调函数,下载完成后执行。回调可以是任何你想要的命令:

```bash
kmdr download -d path/to/destination --book-url https://kox.moe/c/50076.htm -v 1-3 \
	--callback "echo '{b.name} {v.name} downloaded!' >> ~/kmdr.log"
```

> 字符串模板会直接朴素地替换,卷名或者书名可能会包含空格,推荐使用引号包含避免出现错误。

`{b.name}, {v.name}` 会被分别替换为书籍和卷的名称。常用参数:

| 变量名   | 描述           |
| -------- | -------------- |
| v.name   | 卷的名称       |
| v.page   | 卷的页数       |
| v.size   | 卷的文件大小   |
| b.name   | 对应漫画的名字 |
| b.author | 对应漫画的作者 |

> 完整的可用参数请参考 [structure.py](https://github.com/chrisis58/kmdr/blob/main/core/structure.py#L11) 中关于 `VolInfo` 的定义。

### 5. 持久化配置

重复设置下载的代理服务器、目标路径等参数,可能会降低应用的使用效率。所以应用也提供了通用配置的持久化命令:

```bash
kmdr config --set proxy=http://localhost:7890 dest=/path/to/destination
kmdr config -s num_workers=5 "callback=echo '{b.name} {v.name} downloaded!' >> ~/kmdr.log"
```

只需要配置一次即可对之后的所有的下载指令生效。

> 注意:这里的参数名称不可以使用简写,例如 `dest` 不可用使用 `d` 来替换。

同时,你也可以使用以下命令进行持久化配置的管理:

- `-l`, `--list-option`: 显示当前存在的各个配置
- `-s`, `--set`: 设置持久化的配置,键和值通过 `=` 分隔,设置多个配置可以通过空格间隔
- `-c`, `--clear`: 清除配置,`all`: 清除所有;`cookie`: 退出登录;`option`: 清除持久化的配置
- `-d`, `--delete`, `--unset`: 清除单项配置

> 当前仅支持部分下载参数的持久化:`num_workers`, `dest`, `retry`, `callback`, `proxy`

## ⚠️ 声明

- 本工具仅作学习、研究、交流使用,使用本工具的用户应自行承担风险
- 作者不对使用本工具导致的任何损失、法律纠纷或其他后果负责
- 作者不对用户使用本工具的行为负责,包括但不限于用户违反法律或任何第三方权益的行为

---

<div align=center> 
💬任何使用中遇到的问题、希望添加的功能,都欢迎提交 issue 交流!<br />
⭐ 如果这个项目对你有帮助,请给它一个星标!<br /> <br /> 
<img src="https://counter.seku.su/cmoe?name=kmdr&theme=mbs" />
</div>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "kmoe-manga-downloader",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "manga, downloader, kmoe",
    "author": null,
    "author_email": "Chris Zheng <chrisis58@outlook.com>",
    "download_url": "https://files.pythonhosted.org/packages/30/5c/21b9bd52d5c41f1bc8715f2fcf1b6934e2e265b20aef0599bef6a61f374e/kmoe_manga_downloader-1.1.1.tar.gz",
    "platform": null,
    "description": "# Kmoe Manga Downloader\n\n[![PyPI Downloads](https://static.pepy.tech/badge/kmoe-manga-downloader)](https://pepy.tech/projects/kmoe-manga-downloader) [![PyPI version](https://img.shields.io/pypi/v/kmoe-manga-downloader.svg)](https://pypi.org/project/kmoe-manga-downloader/) [![Unit Tests](https://github.com/chrisis58/kmdr/actions/workflows/unit-test.yml/badge.svg)](https://github.com/chrisis58/kmdr/actions/workflows/unit-test.yml) [![Interpretor](https://img.shields.io/badge/python-3.9+-blue)](https://www.python.org/) [![License](https://img.shields.io/badge/License-MIT-green)](https://github.com/chrisis58/kmdr/blob/main/LICENSE)\n\n`kmdr (Kmoe Manga Downloader)` \u662f\u4e00\u4e2a Python \u5e94\u7528\uff0c\u7528\u4e8e\u4ece [Kmoe](https://kox.moe/) \u7f51\u7ad9\u4e0b\u8f7d\u6f2b\u753b\u3002\u5b83\u652f\u6301\u5728\u7ec8\u7aef\u73af\u5883\u4e0b\u7684\u767b\u5f55\u3001\u4e0b\u8f7d\u6307\u5b9a\u4e66\u7c4d\u53ca\u5176\u5377\uff0c\u5e76\u652f\u6301\u56de\u8c03\u811a\u672c\u6267\u884c\u3002\n\n## \u2728\u529f\u80fd\u7279\u6027\n\n- **\u51ed\u8bc1\u7ba1\u7406**: \u547d\u4ee4\u884c\u767b\u5f55\u5e76\u6301\u4e45\u5316\u4f1a\u8bdd\n- **\u591a\u79cd\u4e0b\u8f7d\u65b9\u5f0f**: \u652f\u6301\u901a\u8fc7\u4e66\u7c4d URL \u6216\u4ece\u6536\u85cf\u5217\u8868\u4e0b\u8f7d\n- **\u9ad8\u6548\u4e0b\u8f7d**: \u652f\u6301\u591a\u7ebf\u7a0b\u3001\u5931\u8d25\u91cd\u8bd5\u53ca\u65ad\u70b9\u7eed\u4f20\n- **\u914d\u7f6e\u6301\u4e45\u5316**: \u4fdd\u5b58\u5e38\u7528\u4e0b\u8f7d\u76ee\u5f55\u3001\u4ee3\u7406\u7b49\u8bbe\u7f6e\n- **\u56de\u8c03\u652f\u6301**: \u4e0b\u8f7d\u5b8c\u6210\u540e\u81ea\u52a8\u6267\u884c\u81ea\u5b9a\u4e49\u811a\u672c\n\n## \ud83d\udee0\ufe0f\u5b89\u88c5\u5e94\u7528\n\n\u4f60\u53ef\u4ee5\u901a\u8fc7 PyPI \u4f7f\u7528 `pip` \u8fdb\u884c\u5b89\u88c5\uff1a\n\n```bash\npip install kmoe-manga-downloader\n```\n\n## \ud83d\udccb\u4f7f\u7528\u65b9\u6cd5\n\n### 1. \u767b\u5f55 `kmoe`\n\n\u9996\u5148\u9700\u8981\u767b\u5f55 `kox.moe` \u5e76\u4fdd\u5b58\u767b\u5f55\u72b6\u6001\uff08Cookie\uff09\u3002\n\n```bash\nkmdr login -u <your_username> -p <your_password>\n# \u6216\u8005\nkmdr login -u <your_username>\n```\n\n\u7b2c\u4e8c\u79cd\u65b9\u5f0f\u4f1a\u5728\u7a0b\u5e8f\u8fd0\u884c\u65f6\u83b7\u53d6\u767b\u5f55\u5bc6\u7801\uff0c\u6b64\u65f6\u4f60\u8f93\u5165\u7684\u5bc6\u7801**\u4e0d\u4f1a\u663e\u793a**\u5728\u7ec8\u7aef\u4e2d\u3002\n\n\u5982\u679c\u767b\u5f55\u6210\u529f\uff0c\u4f1a\u540c\u65f6\u663e\u793a\u5f53\u524d\u767b\u5f55\u7528\u6237\u53ca\u914d\u989d\u3002\n\n### 2. \u4e0b\u8f7d\u6f2b\u753b\u4e66\u7c4d\n\n\u4f60\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u4e0b\u8f7d\u6307\u5b9a\u4e66\u7c4d\u6216\u5377\uff1a\n\n```bash\n# \u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u8f7d\u7b2c\u4e00\u3001\u4e8c\u3001\u4e09\u5377\nkmdr download --dest . --book-url https://kox.moe/c/50076.htm --volume 1,2,3\nkmdr download -l https://kox.moe/c/50076.htm -v 1-3\n```\n\n```bash\n# \u5728\u76ee\u6807\u76ee\u5f55\u4e0b\u8f7d\u5168\u90e8\u756a\u5916\u7bc7\nkmdr download --dest path/to/destination --book-url https://kox.moe/c/50076.htm --vol-type extra -v all\nkmdr download -d path/to/destination -l https://kox.moe/c/50076.htm -t extra -v all\n```\n\n#### \u5e38\u7528\u53c2\u6570\u8bf4\u660e\uff1a\n\n- `-d`, `--dest`: \u4e0b\u8f7d\u7684\u76ee\u6807\u76ee\u5f55\uff08\u9ed8\u8ba4\u4e3a\u5f53\u524d\u76ee\u5f55\uff09\uff0c\u5728\u6b64\u57fa\u7840\u4e0a\u4f1a\u989d\u5916\u6dfb\u52a0\u4e00\u4e2a\u4e3a\u4e66\u7c4d\u540d\u79f0\u7684\u5b50\u76ee\u5f55\n- `-l`, `--book-url`: \u6307\u5b9a\u4e66\u7c4d\u7684\u4e3b\u9875\u5730\u5740\n- `-v`, `--volume`: \u6307\u5b9a\u5377\u7684\u540d\u79f0\uff0c\u591a\u4e2a\u540d\u79f0\u4f7f\u7528\u9017\u53f7\u5206\u9694\uff0c`all` \u8868\u793a\u4e0b\u8f7d\u6240\u6709\u5377\n- `-t`, `--vol-type`: \u5377\u7c7b\u578b\uff0c`vol`: \u5355\u884c\u672c\uff08\u9ed8\u8ba4\uff09\uff1b`extra`: \u756a\u5916\uff1b`seri`: \u8fde\u8f7d\u8bdd\uff1b`all`: \u5168\u90e8\n- `-p`, `--proxy`: \u4ee3\u7406\u670d\u52a1\u5668\u5730\u5740\n- `-r`, `--retry`: \u4e0b\u8f7d\u5931\u8d25\u65f6\u7684\u91cd\u8bd5\u6b21\u6570\n- `-c`, `--callback`: \u4e0b\u8f7d\u5b8c\u6210\u540e\u7684\u56de\u8c03\u811a\u672c\uff08\u4f7f\u7528\u65b9\u5f0f\u8be6\u89c1 [4. \u56de\u8c03\u51fd\u6570](https://github.com/chrisis58/kmoe-manga-downlaoder?tab=readme-ov-file#4-%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0)\uff09\n- `--num-workers`: \u6700\u5927\u540c\u65f6\u4e0b\u8f7d\u6570\u91cf\uff0c\u9ed8\u8ba4\u4e3a 1\n\n> \u5b8c\u6574\u7684\u53c2\u6570\u8bf4\u660e\u53ef\u4ee5\u4ece `help` \u6307\u4ee4\u4e2d\u83b7\u53d6\u3002\n\n### 3. \u67e5\u770b\u8d26\u6237\u72b6\u6001\n\n\u67e5\u770b\u5f53\u524d\u8d26\u6237\u4fe1\u606f\uff08\u8d26\u6237\u540d\u548c\u914d\u989d\u7b49\uff09\uff1a\n\n```bash\nkmdr status\n```\n\n### 4. \u56de\u8c03\u51fd\u6570\n\n\u4f60\u53ef\u4ee5\u8bbe\u7f6e\u4e00\u4e2a\u56de\u8c03\u51fd\u6570\uff0c\u4e0b\u8f7d\u5b8c\u6210\u540e\u6267\u884c\u3002\u56de\u8c03\u53ef\u4ee5\u662f\u4efb\u4f55\u4f60\u60f3\u8981\u7684\u547d\u4ee4\uff1a\n\n```bash\nkmdr download -d path/to/destination --book-url https://kox.moe/c/50076.htm -v 1-3 \\\n\t--callback \"echo '{b.name} {v.name} downloaded!' >> ~/kmdr.log\"\n```\n\n> \u5b57\u7b26\u4e32\u6a21\u677f\u4f1a\u76f4\u63a5\u6734\u7d20\u5730\u66ff\u6362\uff0c\u5377\u540d\u6216\u8005\u4e66\u540d\u53ef\u80fd\u4f1a\u5305\u542b\u7a7a\u683c\uff0c\u63a8\u8350\u4f7f\u7528\u5f15\u53f7\u5305\u542b\u907f\u514d\u51fa\u73b0\u9519\u8bef\u3002\n\n`{b.name}, {v.name}` \u4f1a\u88ab\u5206\u522b\u66ff\u6362\u4e3a\u4e66\u7c4d\u548c\u5377\u7684\u540d\u79f0\u3002\u5e38\u7528\u53c2\u6570\uff1a\n\n| \u53d8\u91cf\u540d   | \u63cf\u8ff0           |\n| -------- | -------------- |\n| v.name   | \u5377\u7684\u540d\u79f0       |\n| v.page   | \u5377\u7684\u9875\u6570       |\n| v.size   | \u5377\u7684\u6587\u4ef6\u5927\u5c0f   |\n| b.name   | \u5bf9\u5e94\u6f2b\u753b\u7684\u540d\u5b57 |\n| b.author | \u5bf9\u5e94\u6f2b\u753b\u7684\u4f5c\u8005 |\n\n> \u5b8c\u6574\u7684\u53ef\u7528\u53c2\u6570\u8bf7\u53c2\u8003 [structure.py](https://github.com/chrisis58/kmdr/blob/main/core/structure.py#L11) \u4e2d\u5173\u4e8e `VolInfo` \u7684\u5b9a\u4e49\u3002\n\n### 5. \u6301\u4e45\u5316\u914d\u7f6e\n\n\u91cd\u590d\u8bbe\u7f6e\u4e0b\u8f7d\u7684\u4ee3\u7406\u670d\u52a1\u5668\u3001\u76ee\u6807\u8def\u5f84\u7b49\u53c2\u6570\uff0c\u53ef\u80fd\u4f1a\u964d\u4f4e\u5e94\u7528\u7684\u4f7f\u7528\u6548\u7387\u3002\u6240\u4ee5\u5e94\u7528\u4e5f\u63d0\u4f9b\u4e86\u901a\u7528\u914d\u7f6e\u7684\u6301\u4e45\u5316\u547d\u4ee4\uff1a\n\n```bash\nkmdr config --set proxy=http://localhost:7890 dest=/path/to/destination\nkmdr config -s num_workers=5 \"callback=echo '{b.name} {v.name} downloaded!' >> ~/kmdr.log\"\n```\n\n\u53ea\u9700\u8981\u914d\u7f6e\u4e00\u6b21\u5373\u53ef\u5bf9\u4e4b\u540e\u7684\u6240\u6709\u7684\u4e0b\u8f7d\u6307\u4ee4\u751f\u6548\u3002\n\n> \u6ce8\u610f\uff1a\u8fd9\u91cc\u7684\u53c2\u6570\u540d\u79f0\u4e0d\u53ef\u4ee5\u4f7f\u7528\u7b80\u5199\uff0c\u4f8b\u5982 `dest` \u4e0d\u53ef\u7528\u4f7f\u7528 `d` \u6765\u66ff\u6362\u3002\n\n\u540c\u65f6\uff0c\u4f60\u4e5f\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u8fdb\u884c\u6301\u4e45\u5316\u914d\u7f6e\u7684\u7ba1\u7406\uff1a\n\n- `-l`, `--list-option`: \u663e\u793a\u5f53\u524d\u5b58\u5728\u7684\u5404\u4e2a\u914d\u7f6e\n- `-s`, `--set`: \u8bbe\u7f6e\u6301\u4e45\u5316\u7684\u914d\u7f6e\uff0c\u952e\u548c\u503c\u901a\u8fc7 `=` \u5206\u9694\uff0c\u8bbe\u7f6e\u591a\u4e2a\u914d\u7f6e\u53ef\u4ee5\u901a\u8fc7\u7a7a\u683c\u95f4\u9694\n- `-c`, `--clear`: \u6e05\u9664\u914d\u7f6e\uff0c`all`: \u6e05\u9664\u6240\u6709\uff1b`cookie`: \u9000\u51fa\u767b\u5f55\uff1b`option`: \u6e05\u9664\u6301\u4e45\u5316\u7684\u914d\u7f6e\n- `-d`, `--delete`, `--unset`: \u6e05\u9664\u5355\u9879\u914d\u7f6e\n\n> \u5f53\u524d\u4ec5\u652f\u6301\u90e8\u5206\u4e0b\u8f7d\u53c2\u6570\u7684\u6301\u4e45\u5316\uff1a`num_workers`, `dest`, `retry`, `callback`, `proxy`\n\n## \u26a0\ufe0f \u58f0\u660e\n\n- \u672c\u5de5\u5177\u4ec5\u4f5c\u5b66\u4e60\u3001\u7814\u7a76\u3001\u4ea4\u6d41\u4f7f\u7528\uff0c\u4f7f\u7528\u672c\u5de5\u5177\u7684\u7528\u6237\u5e94\u81ea\u884c\u627f\u62c5\u98ce\u9669\n- \u4f5c\u8005\u4e0d\u5bf9\u4f7f\u7528\u672c\u5de5\u5177\u5bfc\u81f4\u7684\u4efb\u4f55\u635f\u5931\u3001\u6cd5\u5f8b\u7ea0\u7eb7\u6216\u5176\u4ed6\u540e\u679c\u8d1f\u8d23\n- \u4f5c\u8005\u4e0d\u5bf9\u7528\u6237\u4f7f\u7528\u672c\u5de5\u5177\u7684\u884c\u4e3a\u8d1f\u8d23\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u7528\u6237\u8fdd\u53cd\u6cd5\u5f8b\u6216\u4efb\u4f55\u7b2c\u4e09\u65b9\u6743\u76ca\u7684\u884c\u4e3a\n\n---\n\n<div align=center> \n\ud83d\udcac\u4efb\u4f55\u4f7f\u7528\u4e2d\u9047\u5230\u7684\u95ee\u9898\u3001\u5e0c\u671b\u6dfb\u52a0\u7684\u529f\u80fd\uff0c\u90fd\u6b22\u8fce\u63d0\u4ea4 issue \u4ea4\u6d41\uff01<br />\n\u2b50 \u5982\u679c\u8fd9\u4e2a\u9879\u76ee\u5bf9\u4f60\u6709\u5e2e\u52a9\uff0c\u8bf7\u7ed9\u5b83\u4e00\u4e2a\u661f\u6807\uff01<br /> <br /> \n<img src=\"https://counter.seku.su/cmoe?name=kmdr&theme=mbs\" />\n</div>\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2025 chris zheng\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
    "summary": "A CLI-downloader for site @kox.moe.",
    "version": "1.1.1",
    "project_urls": {
        "Homepage": "https://github.com/chrisis58/kmoe-manga-downloader",
        "Issues": "https://github.com/chrisis58/kmoe-manga-downloader/issues"
    },
    "split_keywords": [
        "manga",
        " downloader",
        " kmoe"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a5e0b9848b350d07cc52e6665aac2649e8dac9e9d860d156a1833d0f0feff3f6",
                "md5": "f460ce95a2fa4e516f78f719c1a231b6",
                "sha256": "0b4c29b65ed74a13d9e886d0c5585a12d312d3bd982f325f46e2636011932381"
            },
            "downloads": -1,
            "filename": "kmoe_manga_downloader-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f460ce95a2fa4e516f78f719c1a231b6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 29455,
            "upload_time": "2025-08-29T07:49:31",
            "upload_time_iso_8601": "2025-08-29T07:49:31.199025Z",
            "url": "https://files.pythonhosted.org/packages/a5/e0/b9848b350d07cc52e6665aac2649e8dac9e9d860d156a1833d0f0feff3f6/kmoe_manga_downloader-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "305c21b9bd52d5c41f1bc8715f2fcf1b6934e2e265b20aef0599bef6a61f374e",
                "md5": "e221ce513fba8b5937a4df8b99044e7c",
                "sha256": "63980601a5c2cde01db88c308fc0503771b218c6e321cb5404160c3de131b7bd"
            },
            "downloads": -1,
            "filename": "kmoe_manga_downloader-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e221ce513fba8b5937a4df8b99044e7c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 26579,
            "upload_time": "2025-08-29T07:49:32",
            "upload_time_iso_8601": "2025-08-29T07:49:32.645066Z",
            "url": "https://files.pythonhosted.org/packages/30/5c/21b9bd52d5c41f1bc8715f2fcf1b6934e2e265b20aef0599bef6a61f374e/kmoe_manga_downloader-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-29 07:49:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "chrisis58",
    "github_project": "kmoe-manga-downloader",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    "<",
                    "5.0.0"
                ],
                [
                    ">=",
                    "4.11.1"
                ]
            ]
        },
        {
            "name": "Requests",
            "specs": [
                [
                    "<",
                    "3.0.0"
                ],
                [
                    ">=",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    "<",
                    "5.0.0"
                ],
                [
                    ">=",
                    "4.67.1"
                ]
            ]
        },
        {
            "name": "cloudscraper",
            "specs": [
                [
                    "<",
                    "2.0.0"
                ],
                [
                    ">=",
                    "1.2.71"
                ]
            ]
        }
    ],
    "lcname": "kmoe-manga-downloader"
}
        
Elapsed time: 1.06354s