Skip to content

Misty02600/nonebot-plugin-jmdownloader

Repository files navigation

logo

基于 Nonebot2 的 JMComic 插件

LICENSE python Adapters

uv ruff

📖 介绍

JMComic搜索、下载插件,支持全局屏蔽jm号和tag,支持上传至群聊指定文件夹,仅支持OnebotV11协议。

💿 安装

使用 nb-cli 安装 在 NoneBot2 项目的根目录下打开命令行,输入以下指令即可安装
nb plugin install nonebot-plugin-jmdownloader --upgrade

使用 pypi 源安装

nb plugin install nonebot-plugin-jmdownloader --upgrade -i "https://pypi.org/simple"

使用清华源安装

nb plugin install nonebot-plugin-jmdownloader --upgrade -i "https://pypi.tuna.tsinghua.edu.cn/simple"
使用包管理器安装 在 NoneBot2 项目的插件目录下,打开命令行,根据你使用的包管理器,输入相应的安装命令
uv
uv add nonebot-plugin-jmdownloader

安装仓库 main 分支

uv add git+https://github.com/Misty02600/nonebot-plugin-jmdownloader@main
pdm
pdm add nonebot-plugin-jmdownloader

安装仓库 main 分支

pdm add git+https://github.com/Misty02600/nonebot-plugin-jmdownloader@main
poetry
poetry add nonebot-plugin-jmdownloader

安装仓库 main 分支

poetry add git+https://github.com/Misty02600/nonebot-plugin-jmdownloader@main

打开 NoneBot2 项目根目录下的 pyproject.toml 文件,在 [tool.nonebot] 部分追加写入

plugins = ["nonebot_plugin_jmdownloader"]

⚙️ 配置

插件使用nonebot_plugin_localstore储存数据和下载缓存。

在 NoneBot2 项目的.env文件中添加下表中的必填配置

配置项 必填 默认值 说明
jmcomic_username JM登录用户名
jmcomic_password JM登录密码
jmcomic_proxies system 网络代理地址
jmcomic_log False 是否开启JMComic-Crawler-Python的日志输出
jmcomic_thread_count 10 下载线程数量
jmcomic_group_list_mode blacklist 群列表模式:blacklist/whitelist
jmcomic_allow_groups 已废弃,请使用 jmcomic_group_list_mode
jmcomic_allow_private True 是否允许私聊使用功能
jmcomic_user_limits 5 每位用户的每周下载限制次数
jmcomic_output_format pdf 输出格式:pdf 或 zip
jmcomic_zip_password ZIP 压缩包密码(仅 zip 格式有效)
jmcomic_modify_real_md5 False 修改PDF的MD5以避免发送失败(仅PDF有效)
jmcomic_results_per_page 20 每页显示的搜索结果数量
jmcomic_max_page_count 150 单次下载最大页数限制,0表示不限制
jmcomic_allow_album_download False 是否允许使用本子集(多章节)下载功能
jmcomic_punish_on_violation True 群员下载违规内容时是否惩罚(禁言+拉黑)

群列表模式说明:

  • blacklist(黑名单模式):默认禁用所有群,只有显式启用的群才能使用
  • whitelist(白名单模式):默认启用所有群,只有显式禁用的群不能使用

示例:

# 是否启用 JMComic 日志 (True 表示启用, False 表示禁用)
JMCOMIC_LOG=True
# JMComic 代理配置,更多格式参考https://jmcomic.readthedocs.io/zh-cn/latest/option_file_syntax
JMCOMIC_PROXIES=127.0.0.1:10809
# 下载线程数量 (线程越多对性能要求越高,范围 1~50)
JMCOMIC_THREAD_COUNT=10
# JMComic 登录用户名,如果不填则不登录,不登录时部分本子可能会受限
JMCOMIC_USERNAME=******
# JMComic 登录密码
JMCOMIC_PASSWORD=******
# JMComic 群列表模式:blacklist(默认禁用)/ whitelist(默认启用)
JMCOMIC_GROUP_LIST_MODE=blacklist
# [废弃] 旧配置,使用 True = whitelist, False = blacklist
# JMCOMIC_ALLOW_GROUPS=False
# JMComic 是否允许私聊使用功能
JMCOMIC_ALLOW_PRIVATE=True
# JMComic 每位用户的每周下载限制次数
JMCOMIC_USER_LIMITS=5
# JMComic 输出格式:pdf 或 zip
JMCOMIC_OUTPUT_FORMAT=pdf
# JMComic ZIP 压缩包密码(仅 zip 格式有效,留空则不加密)
# JMCOMIC_ZIP_PASSWORD=your_password
# JMComic 是否修改PDF文件的MD5值(增强防和谐但可能增加流量消耗,仅PDF格式有效)
JMCOMIC_MODIFY_REAL_MD5=False
# 每页显示的搜索结果数量,越多每次发送时间越长且越容易被吞,建议40以内
JMCOMIC_RESULTS_PER_PAGE=20
# 单次下载最大页数限制,0表示不限制(防止下载过大的本子)
JMCOMIC_MAX_PAGE_COUNT=200
# 是否允许使用本子集(多章节)下载功能(默认关闭,本子集下载不受页数限制,消耗1次下载额度)
JMCOMIC_ALLOW_ALBUM_DOWNLOAD=False
# 群员下载违规内容时是否惩罚(禁言+拉黑)
JMCOMIC_PUNISH_ON_VIOLATION=True

Important

JMCOMIC_ALLOW_GROUPS 配置项会自动转换为新配置:

  • JMCOMIC_ALLOW_GROUPS=TrueJMCOMIC_GROUP_LIST_MODE=whitelist
  • JMCOMIC_ALLOW_GROUPS=FalseJMCOMIC_GROUP_LIST_MODE=blacklist

如果同时设置了两个配置,新配置 JMCOMIC_GROUP_LIST_MODE 的优先级更高。

Important

JMCOMIC_BLOCKED_MESSAGE 配置项已在新版本中移除,现在会读取nickname发送屏蔽本子的代替消息

🎉 使用

指令表

指令 权限 需要@ 范围 说明
jm下载 [id] 群员 群聊/私聊 下载指定的 JMComic 本子到群文件或私聊
jm下载集 [id] [章节] 群员 群聊/私聊 下载本子集,可选章节如 1-5 或 1,3,5
jm查询 [id] 群员 群聊/私聊 查询指定的 JMComic 本子信息
jm搜索 [关键词] 群员 群聊/私聊 搜索 JMComic 网站的漫画并返回列表
jm下一页 群员 群聊/私聊 显示搜索结果的下一页
jm设置文件夹 [文件夹名] 管理员 群聊 设置群聊内本子的上传文件夹
jm拉黑 [@用户] 管理员 群聊 将用户加入当前群的黑名单
jm解除拉黑 [@用户] 管理员 群聊 将用户移出当前群的黑名单
jm黑名单 管理员 群聊 列出当前群的黑名单列表
jm启用群 [群号] 超级用户 群聊/私聊 启用指定群的插件功能,可用空格隔开多个群号,以下同理
jm禁用群 [群号] 超级用户 群聊/私聊 禁用指定群的插件功能
开启jm 超级用户 群聊 启用本群的插件功能
关闭jm 管理员 群聊 禁用本群的插件功能,管理员和群主只能关不能开
jm禁用id [id] 超级用户 群聊/私聊 禁止指定jm号的本子下载,可用空格隔开多个id,以下同理
jm禁用tag [tag] 超级用户 群聊/私聊 禁止带有指定tag的本子下载
  • 设置文件夹需要协议端API支持,bot会先读取群内是否有该文件夹,如果没有会尝试创建。
  • Bot会在每天凌晨3点清理缓存文件夹。
  • 被屏蔽的本子会在搜索结果中隐藏,下载被屏蔽的本子会被阻止下载。
  • 普通用户下载违规内容时,默认会被禁言24小时并加入本群黑名单(可通过 JMCOMIC_PUNISH_ON_VIOLATION 配置关闭)。
  • 超管、群管理员、群主下载违规内容时只会被阻止,不会被惩罚。
  • 本子集下载默认关闭,需配置 JMCOMIC_ALLOW_ALBUM_DOWNLOAD=True 启用。本子集下载不受页数限制,每次下载消耗 1 次额度。
  • 命令需要添加 COMMAND_START 前缀

🎨 效果图

search query download

⚠️ 使用警告

仅作为交流学习使用!请严格遵守法律法规与公序良俗!

❌ 禁止将本插件用于任何非法用途

❌ 禁止分享/传播未成年人相关或违法内容

本插件仅限个人合规使用,用户行为责任自负,开发者不承担任何连带责任。

📃 许可证

本项目采用 MIT 许可证。

🙏 致谢

JMComic-Crawler-Python提供的API

About

基于 Nonebot2 的 JMComic 插件

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors