Skip to main content

基于NoneBot2的JM漫画下载插件

Project description

nonebot-plugin-JMDownload

✨ NoneBot 插件简单描述 ✨

license pypi python python

✨ 基于 NoneBot2 的 JM 漫画下载插件,支持下载漫画并转换为 PDF 格式。本项目使用 DeepSeek 辅助完成编写,代码可能需要进一步优化。

📦 功能特点

  • ✅ 支持通过序号下载 JM 漫画
  • ✅ 自动将下载的图片转换为 PDF 格式
  • ✅ 支持QQ群文件直接上传
  • ✅ 完善的错误提示系统
  • ✅ 自动清理临时文件

🛠️ 安装方法

前置要求

  • 已安装 NoneBot 2.0 框架
  • Python 3.8+ 环境

安装步骤

  1. 安装必要依赖
pip install jmcomic -i https://pypi.org/project -U
  1. 使用 pip 安装插件(推荐)
pip install nonebot-plugin-jmdownload
  1. 手动安装(备选)
    • 下载本插件代码
    • 解压至 plugins 目录
    • 安装依赖 pip install -r requirements.txt

安装完成后,在 nonebot2 项目的 pyproject.toml 文件中添加插件名称:

plugins = ["nonebot_plugin_jmdownload"]

⚙️ 使用方法

基础配置

  1. NoneBot2 项目的 .env 文件中可用配置:
配置项 是否必须
jm_config_path "data/nonebot_plugin_jmdownload/config.yml"
  1. 首次运行时会自动生成配置文件,包含以下内容:
# Github Actions 下载脚本配置
version: '1.0'

dir_rule:
  base_dir: data/nonebot_plugin_jmdownload/downloads  # 基础存储目录
  rule: Bd_Atitle_Pindex           # 目录命名规则

client:
  domain:
    - www.jmapiproxyxxx.vip
    - www.18comic-mygo.vip
    - 18comic-MHWs.CC
    - 18comic.vip
    - 18comic.org
  # 客户端实现类,可选:html(网页端)或api(APP端)
  impl: html
  # 请求失败重试次数
  retry_times: 5
  # 请求配置
  postman:
    meta_data:
      # 代理配置,可选值:
      # system - 使用系统代理
      # null - 不使用代理
      # clash/v2ray - 使用对应代理软件
      # 127.0.0.1:7890 - 直接指定代理地址
      # 或使用代理字典格式:
      # http: 127.0.0.1:7890
      # https: 127.0.0.1:7890
      proxies: system
      # cookies配置,用于需要登录的内容
      cookies: null

download:
  cache: true    # 文件存在时跳过下载
  image:
    decode: true  # 还原被混淆的图片
    suffix: .jpg  # 统一图片后缀格式
  threading:
    batch_count: 45  # 批量下载数量

更多配置选项请参考 JMComic-Crawler-Python 项目文档

🚀 命令使用

一级指令 二级指令 参数 说明
/jm download <序号> 下载指定序号的漫画
/jm 下载 <序号> 下载指定序号的漫画

⚠️ 注意事项

  1. 请确保机器人具有足够的存储空间
  2. 下载完成后会自动清理临时文件
  3. PDF 文件生成后会自动发送给用户

❓ 常见问题

Q: 下载失败怎么办? A: 请检查网络连接和配置文件中的域名是否可用。

Q: 为什么下载速度很慢? A: 目前需要获取所有图片后再进行转换,会造成阻塞并且导致下载速度较慢。

Q: 为什么转换 PDF 很慢? A: 转换速度取决于图片数量和大小,请耐心等待。

📝 更新日志

v1.4.0 (2025-04-29)

  • 优化多线程PDF转换系统,根据系统负载动态调整线程数
  • 增强图片损坏检测功能,支持多种检测方式
  • 改进日志系统,提供更详细的性能统计和错误信息
  • 优化内存管理,减少大型漫画处理时的内存占用
  • 提升下载重试机制的稳定性

v1.3.2 (2025-03-28)

  • 修复依赖问题

v1.3.1 (2025-03-28)

  • 添加损坏图片探测
  • 优化内存处理功能,防止大文件转换时内存溢出
  • 优化单核处理性能,提升PDF转换效率

v1.3.0 (2025-03-26)

  • 修复 PDF 转换问题
  • 优化 PDF 转换速度

v1.2.0 (2025-03-25)

  • 下载使用异步
  • 优化阻塞问题

v1.0.0 (2025-03-25)

  • 初始版本发布
  • 支持基本的下载和 PDF 转换功能
  • 添加自动清理功能
  • 支持 QQ 群文件上传

🎯 开发计划

  • 优化 PDF 转换速度
  • 优化下载速度及阻塞问题
  • 体验必须优化!
  • 添加下载进度显示
  • 支持批量下载功能

🤝 贡献指南

欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。

📄 许可证

本项目采用 BSD 3-Clause License 开源许可证。

🙏 致谢

⚖️ 免责声明

本项目仅供学习交流使用,请勿用于非法用途。使用本项目所造成的任何后果由使用者自行承担。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_jmdownload-1.4.0.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nonebot_plugin_jmdownload-1.4.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_jmdownload-1.4.0.tar.gz.

File metadata

File hashes

Hashes for nonebot_plugin_jmdownload-1.4.0.tar.gz
Algorithm Hash digest
SHA256 1989f5015676b11a624d6a2c67f8a95f439b7bce0b2629304633c6e6a97c14f2
MD5 54127939268c83a02aae75a80033a568
BLAKE2b-256 c190181443ef832c1879d64a5ebf584aaf034dce3c18ffdfdf911a3955fc08aa

See more details on using hashes here.

File details

Details for the file nonebot_plugin_jmdownload-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_jmdownload-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2b2f37cbbfe2f09ba29db3fb458b1fea37b45e0c132f96367178cb1f48df8907
MD5 be44d667965b20bed0074ab417754d15
BLAKE2b-256 4a3f0f2f1dcb210ddebdabf85ade2bf5d414feee42ea4e1ca0116d82ae856c16

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page