Nonebot2 可动态管理API并带网页浏览的setu插件
Project description
nonebot_plugin_setu_customization
✨ Nonebot2 可动态管理API并带网页浏览的setu插件 ✨
简介
可以动态增删网络上的图片API接口,也可以载入本地图库链接对外提供图片API接口,支持接口分类管理,不再受限于单个API出图,如果服务器有公网IP还可以在网页浏览图片。
搜图功能移除,商店有同类插件
安装
使用nb-cli安装
# 如果没找到这个插件,使用nb plugin list 刷新缓存
nb plugin install nonebot_plugin_setu_customization
或者
直接把插件clone下来,把nonebot_plugin_setu_customization文件夹放进去plugins目录
配置
在bot对应的.env文件修改
# 必填项
# api超时,这个时间建议设置一分钟以上,否则发图多的时候容易超时报错
api_timeout=60
# 管理员的QQ号(别问我为什么要另外写)
tutu_admin_qqnum = 114514
# 如果要用P站搜图功能要设置以下内容
# 网页访问地址,就是nonebot的监听地址和端口号,如 http://hahaha.com:80
tutu_site_url = http://127.0.0.1:8080
# 选填项,自己按需求填,不需要的就不要写进配置!
# 选填项,自己按需求填,不需要的就不要写进配置!
# 选填项,自己按需求填,不需要的就不要写进配置!
# 机器人的QQ号列表,如果有多个bot连接,会按照填写的list,左边的机器人QQ优先级最高 1234 > 5678 > 6666,会自动切换
# 如果不填该配置则由第一个连上的bot响应
tutu_bot_qqnum_list = [1234, 5678, 6666]
# 图片下载模式,true则nonebot下载,false则协议端下载
tutu_img_local_download = true
# 图图命令CD时间(秒)
tutu_cooldown = 3
# 一次最多发多少张图
once_send = 5
# R18类别的名称
tutu_r18_name = R18
# 本地图片库的路径
tutu_local_api_path = data/tutu_local_img_lib/
# 本地库二次元文件名称
tutu_self_anime_lib = self_anime
# 本地库三次元文件名称
tutu_self_cosplay_lib = self_cosplay
# 插件数据文件名
tutu_data_filename = tutu_data.json
# 自定义字体文件路径(要填真实路径,这里只是举个例子)
tutu_font_path = __file__/font/HYWenHei-85W.ttf
# 字体大小
tutu_font_size = 18
# pixiv图片反代地址,自己可以看看哪个快用哪个 https://i.pixiv.re/ 、 https://i.pixiv.cat/ 、 https://i.loli.best/ 、 https://c.jitsu.top/
tutu_pixiv_proxy = https://i.pixiv.re/
# http代理地址,如 http://127.0.0.1:1234
tutu_http_proxy = http://127.0.0.1:1234
# socks5代理地址,如 socks5://127.0.0.1:1234
tutu_socks5_proxy = socks5://127.0.0.1:1234
# 使用网页访问时,新浪图片反代地址,不用网页浏览可不填,如 http://img.example.top:514
tutu_sina_img_proxy = https://i0.wp.com/tvax1.sinaimg.cn/
# 使用网页访问时,微信图片反代地址,不用网页浏览可不填,如 http://img.example.top:114
tutu_wx_img_proxy = http://img.example.top:114
# 使用网页访问时,B站图片反代地址,不用网页浏览可不填,如 http://img.example.top:514
tutu_bili_img_proxy = http://img.example.top:514
# 爬取文章图片时,图片的宽或高小于多少忽略爬取
tutu_crawler_min_width = 500
tutu_crawler_min_height = 500
# 自动爬取功能,文章url文件放置路径
tutu_crawler_file_path = tutu_crawler/
# 自动爬取功能,检测文章标题,含有其中关键字则忽略爬取
tutu_crawler_keyword = ["删", "薪", "敏感", "暂停", "停更", "图包"]
目录
data/tutu_data.json 存储群白名单信息,api接口信息,合并发送开关
data/tutu_local_img_lib/ 存储用户自己上传的图片url文件,如下图
如果要自己爬图入库的看readme的《文章图片爬取》
tutu_crawler/ 自动爬取文章图片用的,里面放待爬取的文章url文件,还是看readme的《文章图片爬取》
命令
指令 | 说明 |
---|---|
图图 | 机器人出图(好友私聊,群聊要添加白名单) |
图图帮助 | 查看图图命令的更多使用姿势 |
(下面都是管理员命令) | (发送命令有使用格式) |
图图群管理 | 增删群白名单 |
图图接口测试 | 测试接口连接情况和返回的数据 |
图片测试 | 测试某张图能否正常发出来 |
文章爬取 | 爬取微信文章或B站专栏的图片 |
爬取合并 | 是否将爬取结果合并发送,默认合并 |
图片序号 | 每张发出来的图片都有一个序号,可查看之前发送的图片url |
图片删除 | 删除本地库的某张图片 |
开爬 | 上传指定格式的文件让nb爬,详情看readme的《文章图片爬取》 |
网页搜图(需要公网)
http://127.0.0.1:8080/soutu (具体域名和端口看你nb绑定的地址)
自定义图片url关键字替换
在data_handle.py文件里面的 url_diy_replace 函数,如果有其他更好的反代地址或其他需求可以自行调整
使用示例、导入api和图片库
自己看看接口的图片是否合适和能否正常访问再导入
二次元图片api
http://api.tangdouz.com/sjdmbz.php
https://api.dujin.org/pic/yuanshen/
https://api.mtyqx.cn/tapi/random.php
https://www.dmoe.cc/random.php
https://setu.yuban10703.xyz/setu
https://api.ixiaowai.cn/api/api.php
https://tuapi.eees.cc/api.php?category=dongman&type=302
https://api.yimian.xyz/img/
http://api.iw233.cn/api.php?sort=random
https://image.anosu.top/pixiv/direct
https://api.lolicon.app/setu/v2
https://moe.anosu.top/img/?sort=pixiv
https://moe.anosu.top/img/?sort=setu
R18图片api
https://setu.yuban10703.xyz/setu?r18=1
https://image.anosu.top/pixiv/direct?r18=1
https://api.lolicon.app/setu/v2?r18=1
https://moe.anosu.top/img/?sort=r18
三次元图片api
没收集到好的,但是我爬了很多,在仓库的tutu_local_img_lib文件夹,下载放进去data/tutu_local_img_lib/里面,没事来看看有没有更新,里面也有二次元的
本地图片库
即data/tutu_local_img_lib/中的图片,放入图片url文件后,使用命令“图图接口管理 刷新本地”进行导入
访问接口url如果没有在.env配置tutu_site_url,就是nonebot的地址和端口号,如绑定的host=127.0.0.1,port=8080,就是http://127.0.0.1:8080/img_api?fw=1&fn=<filename>
参数 | 说明 |
---|---|
fw | 是否重定向,0返回网页,1重定向到图片url |
fn | 本地图片库文件名 |
mode | 图片类型,没有fn参数时有效 |
c | 返回的图片数量,没有fw参数时有效 |
# 添加一个接口到二次元类型接口
图图接口管理 二次元 + https://api.lolicon.app/setu/v2
# 支持批量添加接口
图图接口管理 二次元 +
https://api.lolicon.app/setu/v2
http://api.tangdouz.com/sjdmbz.php
https://api.dujin.org/pic/yuanshen/
# 添加一个本地图片库接口到三次元类型接口
图图接口管理 三次元 + 本地图库self_cosplay
# 爬取一篇微信文章的图片到本地图片库self_anime
https://mp.weixin.qq.com/s/IHeYqZTu8xYLv7nDkRwxUQ self_anime
# 该命令等效于上面的命令 默认2指self_anime,3指self_cosplay
https://mp.weixin.qq.com/s/IHeYqZTu8xYLv7nDkRwxUQ 2
文章图片爬取
下载mitmproxy_script文件夹中的两个脚本
# 安装mitmproxy
pip install mitmproxy
# 运行papa.py,8080的监听端口,可以自己改
python papa.py -p 8080
# 手机或电脑设置好代理后,用浏览器访问以下网站,如果看到证书选择那就是代理对了,然后看说明安装证书
mitm.it
# 然后根据下面的方法爬取,结果输出在result文件夹中
爬取微信公众号文章url 方法一
PS:建议iOS微信爬取,装证书简单
微信连上代理后,大部分微信公众号的对话框有个查看历史文章(有的没有),点进去后浏览,一直往下刷到底就行,如果没有历史文章接口看方法二
爬取微信公众号文章url 方法二
PS:容易被限制,如果翻页不回显数据就是被限制了,被限制就等几个小时再来(具体时间自己摸索),否则限制时间会大幅度延长
注册一个微信公众平台账号
https://mp.weixin.qq.com/
依次点草稿箱、新的创作、写新图文,会有个新页面,在最上面有个超链接,点选择公众号,搜索公众号,然后选择就可以看到历史文章了,一页页往下翻,一次翻二三十页就好,不然容易被限制
爬取B站专栏图片
用网页打开某个UP的账号空间,点TA的专栏,就会打开 https://space.bilibili.com/XXXXXXX/article
然后就会自动翻页爬取所有文章url了,可以在结果文件夹里看到进度,爬取完会有个DONE文件
提取文章url
爬取到新数据会生成“new_data_XXX”文件在结果文件夹中,里面的格式是“标题 *** 文章url”,可以通过标题进行筛选,不要的文章整行剪切丢到“history_data_XXX”
“history_data_XXX”是历史数据,每次运行爬取脚本会读取历史数据,爬过的就不会再爬
最后就是筛选好的“new_data_XXX”文件
# 运行split_url.py
python 运行split_url.py
split_url.py会遍历result里面的文件,把里面命名含有“new_data_”的文件里的url提取出来输出到“wait_for_upload”文件夹
在nonebot根目录的“tutu_crawler”里新建一个文件夹,文件夹名字是爬取的图片加入的本地图片库,如“self_anime”,也可以直接新建一个名字“2”的文件夹,默认2指self_anime,3指self_cosplay
把wait_for_upload里面的文件根据类型上传到 tutu_crawler/<本地图片库>/里面
然后给机器人私聊发送“开爬”就会自动爬取
更新日志
2023/1/24 [v1.6.0]
- 修复多bot处理bug
- 移除搜图功能
2023/1/23 [v1.5.1]
- 恢复搜图功能,使用pixivpy调用P站的接口完成搜图功能 https://github.com/upbit/pixivpy
- 优化搜图前端界面
2023/1/16 [v1.4.9]
- 最低python版本兼容至3.8
- 默认字体大小从16改到18
2023/1/16 [v1.4.8]
- 换个好看的字体
2023/1/15 [v1.4.7]
- 依赖错误修复
- 增加单次图片发送数量设置
- 优化多bot逻辑,机器人qq号配置改为可选
2023/1/14 [v1.4.5]
- 依赖错误修复,优化逻辑
2023/1/9 [v1.4.3]
- 页面细节优化
2023/1/8 [v1.4.2]
- 增加P站搜图功能(需要公网服务器网页访问结果),优化图片下载状态判断
- P站搜图功能基础上增加网页预览 http://127.0.0.1:8080/soutu (具体域名和端口看你nb绑定的地址)
2023/1/4 [v1.3.1]
- 增加本地下图和远端下图配置,优化api请求逻辑
2023/1/4 [v1.2.2]
- 出图改为nb下载好再发送,优化大量细节,修bug
2023/1/3 [v1.1.1]
- 优化接口管理功能
2023/1/3 [v1.1.0]
- 增加批量导入api
2023/1/3 [v1.0.0]
- 发布插件
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nonebot_plugin_setu_customization-1.6.1.tar.gz
.
File metadata
- Download URL: nonebot_plugin_setu_customization-1.6.1.tar.gz
- Upload date:
- Size: 4.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.10.10 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 942ce5459069f80dc5358294852964858edbfd34716c6899b5026a9c6f25f6da |
|
MD5 | 28ca89e3dd6993d255b1bffcae332d58 |
|
BLAKE2b-256 | 55412b83df3aff5bffafba0ce0ab0805efefb531a42eabdc559ca25bf67ef1bb |
File details
Details for the file nonebot_plugin_setu_customization-1.6.1-py3-none-any.whl
.
File metadata
- Download URL: nonebot_plugin_setu_customization-1.6.1-py3-none-any.whl
- Upload date:
- Size: 4.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.10.10 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9a53943b5a1f2f7212b33e13e9482a6d97c46059180e975f655fb45930050ce |
|
MD5 | 40970409ec41d0f33b7005ff140667b1 |
|
BLAKE2b-256 | 689f8bcd1562587051b02202c4d4f0790a6f7a197364dc52ba1cd99636a7125a |