Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

可协同维护图库质量的本地setu插件,基于HoshinoBot v2.0,支持私聊上传、自动审核、获取P站TAG、原画

License

Notifications You must be signed in to change notification settings

benx1n/LocalSetu

Repository files navigation

LocalSetu

基于HoshinoBot v2的本地setu插件

特点

  • 全功能支持私聊
  • 支持所有用户上传图片,提交删除图片申请,共同维护色图库
  • 支持按上传者,ID,TAG等模糊查询色图
  • 支持并发上传时自定义每张TAG
  • 自动审核上传图片,未通过自动提交申请
  • 自动获取上传图片P站id,中日文tag,是否r18,原图文件
  • 自动检测重复色图(以P站id及md5作唯一性约束)
  • 优化指令,空参时自动进入上传、审核模式,方便手机端操作
  • 权限分离,普通用户无权进行敏感操作,全申请均可自动推送至审核组成员
  • 支持反和谐
  • 多线程并发,大幅优化效率
  • 数据存储基于sqlite,更加轻量
  • 支持上传男同图,指令区分(不是

首次部署

windows下推荐使用python3.9+,低版本似乎有一些奇怪的问题

  1. 在HoshinoBot的插件目录modules下clone本项目 git clone https://github.com/benx1n/LocalSetu.git

  2. 在项目文件夹下执行pip install -r requirements.txt安装依赖

  3. 获取sauceNAO apikeyPixiv refresh_token

    推荐赞助或注册多个sauceNAO账号用以避免每日100次的上限

    • windows环境(其他环境您也可以在windows上得到refresh token后给服务器使用)
    • 在项目文件夹下执行
      python pixiv_auth.py login
      
    • 提示chromedriver版本不一致请从官网下载对应版本驱动
    • 可能会出现Cloudflare验证,手动验证或切换其他代理即可通过
    • 成功后会在窗口内自动显示refresh_token
    • 注:如果在墙内访问,请手动设置 REQUESTS_KWARGS.proxies 的代理不然 获取code后无法正确提交请求到Pixiv(现象是 [INFO] Get code:xxxxx 后一直卡住,未requests配置代理即可)
    • (削除) 如果您无法获取refresh_token,也可在config.hjson中配置pixiv用户名密用于登录 (削除ここまで)(不保证可用,推荐获取refresh-token)
  4. 将配置文件 config_default.hjson 拷贝一份后重命名为 config.hjson , 修改配置文件中的设置

  5. config/__bot__.py的模块列表里加入 LocalSetu

  6. 重启hoshinoBot

更新

  1. 在项目文件夹下执行
    git pull
    pip install -r requirements.txt
    
  2. 对比config_default中是否有新增配置项,同步至本地config
  3. 重启hoshinobot
  4. 向机器人发送更新数据库列表

DLC

  • 私聊支持:(可能会引起其他插件部分功能异常)
    • 修改Hoshinobot文件夹中.\hoshino\priv.py内check_priv函数,返回值改为True
      def check_priv(ev: CQEvent, require: int) -> bool:
      if ev['message_type'] == 'group':
       return bool(get_user_priv(ev) >= require)
      else:
       return True
      
    • 注释Hoshinobot文件夹中.\hoshino\msghandler.py内下方代码
      if event.detail_type != 'group':
       return
      
    • 修改Hoshinobot文件夹中.\hoshino\service.py内on_message函数,将event='group'及结尾的event替换为*events
      def on_message(self, *events) -> Callable:
      def deco(func) -> Callable:
       @wraps(func)
       async def wrapper(ctx):
       if self._check_all(ctx):
       try:
       return await func(self.bot, ctx)
       except Exception as e:
       self.logger.error(f'{type(e)} occured when {func. _name__} handling message {ctx["message_id"]}.')
       self.logger.exception(e)
       return
       return self.bot.on_message(*events)(wrapper)
      return deco
      

指令说明

指令 必要参数 可选参数 说明
kkqyxp
kkntxp
ID,@上传者,TAG 随机发送色图/男同图
上传色图
上传男图
[TAG][IMAGE] 支持批量,[TAG][IMAGE][TAG][IMAGE]
空参时进入上传模式,用户发送的所有图片均视为上传,发送[退出上传]或无操作20秒后自动退出
查看原图 [ID] 可用于保存原画画质的色图,或重新获取该图tag
删除色图 [ID] 删除指定ID色图,非审核人员仅可删除本人上传的色图,删除他人色图请使用'申请删除色图'
申请删除色图 [ID] 提交色图删除申请,自动推送至审核人员
修改TAG [ID] [TAG] 修改指定ID的自定义TAG
反和谐 [ID] 色图被TX屏蔽时使用该指令,进行一次反和谐,后续发送色图均使用反和谐后文件
PID/pid [PixivId] 根据PixivId发送原图
重新下载 [ID] 本地缺失色图文件时可尝试从腾讯缓存服务器重新下载
上传统计 查看各用户上传数量

以下指令仅限审核组成员使用

指令 必要参数 可选参数 说明
审核色图上传
审核色图删除
进入审核模式,每次发送待审核的色图
使用指令[保留][删除]后自动发送下一张,发送[退出审核]或20秒无操作自动退出
快速审核 [ID] 快速通过指定ID的申请(默认保留)
重新自动审核
重新获取TAG
起始ID 重新审核/获取TAG,适用于首次上传由于SauceNAO接口限制而导致的批量自动审核失败
更新数据库列表 自动添加数据库中缺失的字段,此命令仅可由SUPERUSER执行

定时任务

每日凌晨4点重新获取本地缺失色图、自动审核未通过色图

预览

TODO

  • 改用Sqlite
  • 重构代码屎山
  • WEB控制台
  • 在线图库API
  • 更自由的组合条件查询
  • 自动审核方式改为炼丹
  • 优化无代理模式

感谢

HoshinoBot
go-cqhttp
PicImageSearch
pixivpy

开源协议

GPL-3.0 License

About

可协同维护图库质量的本地setu插件,基于HoshinoBot v2.0,支持私聊上传、自动审核、获取P站TAG、原画

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /