MiraiForum

    • Register
    • Login
    • Search
    • Popular
    • Recent
    • Unsolved
    • Tags
    • Groups
    • 友情链接
    1. Home
    2. cssxsh
    3. Topics
    • Profile
    • Following 0
    • Followers 129
    • Topics 61
    • Posts 2101
    • Best 158
    • Controversial 0
    • Groups 2

    Topics created by cssxsh

    • cssxsh

      Mirai Device Generator (大概能解决设备风控?)
      插件发布 • device.json 设备文件 设备 • • cssxsh

      7
      2
      Votes
      7
      Posts
      3450
      Views

      cssxsh

      Mirai Device Generator

      Mirai DeviceInfo 生成器

      maven-central

      作为插件运行时会检测 mcl/bots/.../device.json, mcl/device.json 是否存在,不存在则生成。

    • cssxsh

      Hibernate 前置插件,ORM 数据库框架,群/好友消息记录
      插件发布 • orm 数据库 • • cssxsh

      41
      1
      Votes
      41
      Posts
      5887
      Views

      cssxsh

      Mirai Hibernate Plugin

      Mirai Hibernate 前置插件

      Mirai Console 的前置插件,用于 Hibernate ORM 框架的初始化

      maven-central

      插件自带聊天记录器 MiraiHibernateRecorder,
      会记录 群聊/私聊 的内容到数据库方便其他插件使用,默认是 h2database 数据库(since 2.2.0+)
      数据库配置在 config/xyz.cssxsh.mirai.plugin.mirai-hibernate-plugin/hibernate.properties
      2.2.0 之前的版本的 默认数据库 为 sqlite, 你可以直接删掉 hibernate.properties, 让其重新生成 h2database 配置

      数据库支持

      本插件打包了以下版本的数据库驱动和连接池

      mysql:mysql-connector-java:8.0.29 org.xerial:sqlite-jdbc:3.36.0.3 org.postgresql:postgresql:42.3.5 com.h2database:h2:2.1.212 com.zaxxer:HikariCP:5.0.1

      需要其他数据库驱动支持请将 数据库驱动Jar包 放到 plugins 目录中一同被 mirai-console 加载

      在插件项目中引用 repositories { mavenCentral() } dependencies { compileOnly("xyz.cssxsh.mirai:mirai-hibernate-plugin:${version}") } 一些方法和类说明

      MiraiHibernateConfiguration
      配置的,对应于 JvmPlugin 的 SessionFactory
      默认将会读取(生成)在 configFolder 目录下的 hibernate.properties 作为配置文件
      并且自动扫描加载 JvmPlugin 所在类包下的被 javax.persistence.Entity 标记的实体类

      MiraiHibernateRecorder
      是本插件自带的消息记录器,通过对 MessageEvent 和 MessagePostSendEvent 记录,保存消息历史到数据库

      CriteriaBuilder.rand
      MiraiHibernateConfiguration 中会对 Sqlite 的 random 进行别名注册为 rand 统一SQL语句的中的随机函数名

      示例代码 kotlin 安装 MCL 指令安装

      ./mcl --update-package xyz.cssxsh.mirai:mirai-hibernate-plugin --channel stable --type plugin

      手动安装 运行 Mirai Console 生成plugins文件夹 从 Releases 下载jar并将其放入plugins文件夹中
    • cssxsh

      讨论一下一个插件需求应该满足的规范
      开发交流 • • cssxsh

      7
      1
      Votes
      7
      Posts
      642
      Views

      cssxsh

      我觉得应该有

      场景(对应mirai里的事件)
      (群聊、私聊、加群、加好友...) 功能
      (发消息、禁言、处理加群....) 用户/受用对象
      (群员、好友...) 可配置项
      (权限....) 触发方式
      (指令、内容解析、定时...) 给开发者付款的方式
    • cssxsh

      Mirai Selenium Plugin,前置插件,用于使用Selenium调用浏览器进行截图等操作
      插件发布 • selenium 浏览器 echats • • cssxsh

      10
      1
      Votes
      10
      Posts
      1676
      Views

      cssxsh

      Mirai Selenium Plugin

      Mirai Selenium 前置插件

      Mirai-Console的前置插件,用于使用Selenium调用浏览器进行截图等

      maven-central

      运行平台支持 OS Browser Support Windows Chrome Yes Windows Firefox Yes Windows Edge Yes Linux Chrome Yes Linux Firefox Yes MacOS Chrome Test MacOS Firefox Test 在插件项目中引用 repositories { mavenCentral() } dependencies { compileOnly("xyz.cssxsh.mirai:mirai-selenium-plugin:${version}") } 示例代码 kotlin 使用本前置插件的项目 BiliBili Helper 配置 MiraiSeleniumConfig.yml user_agent 截图UA width 截图宽度 height 截图高度 pixel_ratio 截图像素比 headless 无头模式(后台模式) proxy 代理地址 log 启用日志文件 browser 指定使用的浏览器: Chrome,Firefox,Edge factory 指定使用的Factory: ktor,netty 安装 MCL 指令安装

      ./mcl --update-package xyz.cssxsh.mirai:mirai-selenium-plugin --channel stable --type plugin

      手动安装 运行 Mirai Console 生成plugins文件夹 从 Releases 下载jar并将其放入plugins文件夹中
    • cssxsh

      天网开发组,非官方开发交流群
      摸鱼区 • • cssxsh

      37
      4
      Votes
      37
      Posts
      4142
      Views

      cssxsh

      非官方的Mirai开发者交流群
      天网开发组: 634148065

      加群问题请提交github id
      例如:
      https://github.com/cssxsh 的 cssxsh
      https://github.com/mzdluo123的 mzdluo123

      请使用自己的GitHub ID 不要填cssxsh、mzdluo123

      另外还有个
      QQ频道:https://qun.qq.com/qqweb/qunpro/share?_wv=3&_wwv=128&inviteCode=2bR5WD&from=246610&biz=ka
      这频道没有限制,都可以加

    • cssxsh

      百度云 文件同步/备份 插件, 可作为前置插件调用百度云API
      插件发布 • 百度云 文件同步 • • cssxsh

      6
      1
      Votes
      6
      Posts
      839
      Views

      cssxsh

      Netdisk FileSync Plugin

      基于 Mirai Console 的 文件同步/备份 插件

      Release
      Downloads
      MiraiForum
      maven-central

      本插件可以将接收到的群文件消息同步到百度网盘
      备份的文件在 /apps/${app_name}/${group_id}/

      本插件也可作为前置插件为其他插件提供百度云上传的API

      指令 OAUTH指令 指令 描述 /<baidu-oauth> 按照指令完成百度账户的登陆 设置 oauth.yml

      插件上传文件功能需要百度网盘API支持。
      请到 https://pan.baidu.com/union/main/application/personal 申请应用,并将获得的APP信息填入
      信息只在启动时读取,修改后需重启,并使用 /baidu-oauth 认证百度账号

      upload.yml https 使用Https协议下载文件 在插件项目中引用 repositories { mavenCentral() } dependencies { compileOnly("io.github.gnuf0rce:netdisk-filesync-plugin:${version}") } 示例代码 try { io.github.gnuf0rce.mirai.NetDisk.getUserInfo() } catch (exception: NoClassDefFoundError) { logger.warning { "相关类加载失败,请安装 https://github.com/gnuf0rce/Netdisk-FileSync-Plugin $exception" } throw exception } 安装 MCL 指令安装

      ./mcl --update-package io.github.gnuf0rce:netdisk-filesync-plugin --channel stable --type plugin

      手动安装 运行 Mirai Console 生成plugins文件夹 从 Releases 下载jar并将其放入plugins文件夹中
    • cssxsh

      被用户气晕,倒点垃圾
      使用交流 • • cssxsh

      21
      17
      Votes
      21
      Posts
      3020
      Views

      cssxsh

      大佬, 大神 等等称呼并不会给开发者带来实际的收益,
      你口中的大佬一天也是只有24小时的时间,
      并且已经因为写代码消耗了不少,
      所以请尽可能详细的描述你的问题和需求,减少时间的浪费。

      良好的代码/日志排版 阅读会更舒服

      日志最好能是复制文本,而不是截图。方便把关键信息复制出来检索。

      使用 插件/软件 前,要通读 readme

      不推荐开启的功能 可能是实验性或者不可控的 所以开启之后不一定能带来更好的效果

      影响下载速度的原因有 网络带宽,运营商(电信、移动,联通), Dns/Hosts, 丢包率, 代理 等等,只有一句下载很慢,开发者只能对着空气分析

    • cssxsh

      GitHub Helper / GitHub Notice 订阅插件
      插件发布 • github • • cssxsh

      32
      0
      Votes
      32
      Posts
      4155
      Views

      cssxsh

      GitHub Helper

      基于 Mirai Console 的 GitHub Notice 订阅插件

      Release
      Downloads
      MiraiForum
      GitHub Client Test

      使用前应该查阅的相关文档或项目

      User Manual Permission Command Chat Command 指令

      注意: 使用前请确保可以 在聊天环境执行指令
      <...>中的是指令名,例如/repo-issue add mamoe/mirai
      [...]表示参数,当[...]后面带?时表示参数可选
      {...}表示连续的多个参数

      本插件指令权限ID 格式为 io.github.gnuf0rce.github-helper:command.*, * 是指令的第一指令名
      例如 /repo-issue add mamoe/mirai 的权限ID为 io.github.gnuf0rce.github-helper:command.repo-issue

      [repo] 格式为 {owner}/{repo}, 举例 mamoe/mirai
      [contact]?是可选的参数,会自动由当前环境填充,例如群聊填充群号,私聊填充QQ号
      [type] 消息的格式,可选值为 OLD, TEXT, FORWARD, GRAPH

      GitHubIssuesCommand 指令 描述 /<issues> <add> [contact]? 添加订阅 /<issues> <remove> [contact]? 移除订阅 /<issues> <interval> [millis] 设置订阅轮询间隔 /<issues> <format> [type] 设置订阅消息格式 /<issues> <list> [contact]? 查看订阅列表 /<issues> <test> [type] [contact]? 测试订阅

      这个指令用于获取当前用户的issues,所以需要有效 token

      GitHubRepoCommitCommand 指令 描述 /<repo-commit> <add> [repo] [contact]? 添加订阅 /<repo-commit> <remove> [repo] [contact]? 移除订阅 /<repo-commit> <interval> [repo] [millis] 设置订阅轮询间隔 /<repo-commit> <format> [repo] [type] 设置订阅消息格式 /<repo-commit> <list> [contact]? 查看订阅列表 /<repo-commit> <test> [repo] [type] [contact]? 测试订阅 GitHubRepoIssueCommand 指令 描述 /<repo-issue> <add> [repo] [contact]? 添加订阅 /<repo-issue> <remove> [repo] [contact]? 移除订阅 /<repo-issue> <interval> [repo] [millis]? 设置订阅轮询间隔 /<repo-issue> <format> [repo] [type] 设置订阅消息格式 /<repo-issue> <list> [contact]? 查看订阅列表 /<repo-issue> <test> [repo] [type] [contact]? 测试订阅 GitHubRepoPullCommand 指令 描述 /<repo-pull> <add> [repo] [contact]? 添加订阅 /<repo-pull> <remove> [repo] [contact]? 移除订阅 /<repo-pull> <interval> [repo] [millis]? 设置订阅轮询间隔 /<repo-pull> <format> [repo] [type] 设置订阅消息格式 /<repo-pull> <list> [contact]? 查看订阅列表 /<repo-pull> <test> [repo] [type] [contact]? 测试订阅 GitHubRepoReleaseCommand 指令 描述 /<repo-release> <add> [repo] [contact]? 添加订阅 /<repo-release> <remove> [repo] [contact]? 移除订阅 /<repo-release> <interval> [repo] [millis]? 设置订阅轮询间隔 /<repo-release> <format> [repo] [type] 设置订阅消息格式 /<repo-release> <list> [contact]? 查看订阅列表 /<repo-release> <test> [repo] [type] [contact]? 测试订阅 GitHubStatsCommand 指令 描述 /<stats> <card> [name] 查看状态 /<stats> <contribution> [name] 查看贡献 /<stats> <trophy> [name] 查看奖杯 设置 GithubConfig proxy Format http://127.0.0.1:8080 or socks://127.0.0.1:1080 doh Dns Over Https Url github_token Personal Access Tokens reply_type URL解析回复的消息格式 timeout Http 访问超时时间,单位秒 percentage_member_join 加群放行 GitHub 活跃等级(百分制),默认0,不开启功能 percentages 加群放行 GitHub 活跃等级(百分制),默认0,不开启功能 sign_member_join 加群放行提示信息 github_readme_stats stats card 绘制参数 安装 MCL 指令安装

      请确认 mcl.jar 的版本是 2.1.0+
      ./mcl --update-package io.github.gnuf0rce:github-helper --channel maven-stable --type plugins

      手动安装 从 Releases 或者 Maven 下载 mirai2.jar 将其放入 plugins 文件夹中
    • cssxsh

      机器人管理小工具 Debug Helper, 新增功能热重载插件
      插件发布 • debug 热重载 • • cssxsh

      22
      0
      Votes
      22
      Posts
      5856
      Views

      cssxsh

      Debug Helper

      基于 Mirai Console 的 调试小工具 插件

      Release
      Downloads
      MiraiForum

      使用前应该查阅的相关文档或项目

      User Manual Permission Command Chat Command

      1.2.2 起
      本插件中机器人管理的相关功能已经拆分至 mirai-administrator
      请注意相关权限的重新处理。

      指令

      注意: 使用前请确保可以 在聊天环境执行指令
      <...>中的是指令名
      [...]表示参数,当[...]后面带?时表示参数可选
      {...}表示连续的多个参数

      本插件指令权限ID 格式为 io.gnuf0rce.mirai.plugin.debug-helper:command.*, * 是指令的第一指令名
      例如 /device 的权限ID为 io.gnuf0rce.mirai.plugin.debug-helper:command.device

      DebugCommands 指令 描述 /<at-all> [text] [group]? 向指定群发送 AtAll /<gc> 主动触发 JVM GC /<random-image> [contact]? 随机发送一张图片 /<forward> [contact] [title]? 转发消息,句号结束 /<fork> [contact] {codes} 从mirai-code构造消息 /<rich> [content] 构造卡片消息 /<device> 查看 Bot 设备信息 /<backup-data> 备份数据 /<reload> [id] 热重载插件 /<system-property> [key] [value] 设置 system-property DebugSetting auto_download_message 自动保存特殊消息内容,比如闪照 random_image_api 随机图片API by https://rainchan.win/projects/pximg 修改协议内容

      这是 1.3.5 新增的功能
      在 data/io.github.gnuf0rce.debug-helper/ 下新建文本文件 ANDROID_PHONE.txt (可根据需要修改的协议名更改文件名)

      填入例如 (注意这是 ANDROID_PHONE 的协议内容,如果需要其他协议,请自行解决)

      com.tencent.mobileqq 537066978 0.9.15.9425 6.0.0.2463 150470524 66560 16724722 A6 B7 45 BF 24 A2 C2 77 52 77 16 F6 F3 6E B6 8D 1640921786 16 安装 MCL 指令安装

      ./mcl --update-package io.github.gnuf0rce:debug-helper --channel stable --type plugin

      手动安装 运行 Mirai Console 生成plugins文件夹 从 Releases 下载jar并将其放入plugins文件夹中
    • cssxsh

      Twitter Helper 推特转发插件(停更跑路)
      插件发布 • • cssxsh

      10
      0
      Votes
      10
      Posts
      2712
      Views

      cssxsh

      Twitter Helper

      基于 Mirai Console 的 Twitter 转发插件

      Release
      Downloads
      MiraiForum

      插件基于PC网页版 Twitter API,插件初始化时,会读取 Cookie文件 或 尝试模拟游客
      API部分需要代理, 请修改配置文件中的 proxy 的键值对(host-proxy)
      图片部分不在默认不在代理之中, 如需要请添加针对域名 pbs.twimg.com 的代理,
      或设置全局代理(对域名 127.0.0.1 设置代理)

      指令

      注意: 使用前请确保可以 在聊天环境执行指令
      带括号的/前缀是可选的
      <...>中的是指令名,由空格隔开表示或,选择其中任一名称都可执行例如/微博用户 订阅
      [...]表示参数,当[...]后面带?时表示参数可选
      {...}表示连续的多个参数
      轮询间隔 默认是 (5 * 60 * 1000L)..(10 * 60 * 1000L) 5分钟到10中之间随机

      用户订阅指令 指令 描述 /<tuser 推特用户> <add task 订阅> [id] 订阅一个推特账号 /<tuser 推特用户> <stop 停止> [id] 取消订阅一个推特账号 /<tuser 推特用户> <name 名字> [screen] name 到 id /<tuser 推特用户> <detail 详情> 查看订阅详情 /<tuser 推特用户> <interval> [fast] [slow] 设置轮询间隔,毫秒

      关于推特用户的ID 可以 通过 推特用户主页的封面图片链接提取
      例如 cococo_neko 的 图片链接
      https://pbs.twimg.com/profile_banners/3064765422/1620052556/1500x500 的 3064765422
      或者使用 https://tweeterid.com/ 进行查询
      /tuser name 是实验性指令

      列表订阅指令 指令 描述 /<tlist 推特列表> <add task 订阅> [id] 订阅一个推特列表 /<tlist 推特列表> <stop 停止> [id] 取消订阅一个推特列表 /<tlist 推特列表> <detail 详情> 查看订阅详情 /<tlist 推特用户> <interval> [fast] [slow] 设置轮询间隔,毫秒

      关于推特列表的ID 可以 通过 列表的链接获取 例如 https://twitter.com/i/lists/1331511892083236865 的 1331511892083236865

      推文详情指令 指令 描述 /<tweet 推文> [id] 查看一个推文

      发送 推文链接如 https://twitter.com/sakula_yuki/status/1270623193674346501 也会出触发指令

      配置

      位于Mirai-Console运行目录下的config/twitter-helper文件夹下的TwitterHelperConfig文件

      cookies Cookie 文件位置 total 简单的推特过滤, favorite + retweet * 2 + reply * 4 + quote * 8 >= total 时会被转发 source 只要原创 user 订阅排除的用户 (since 1.0.2) exclude 订阅排除的关键词正则表达式 (since 1.0.2) sensitive 敏感内容 (since 1.0.2) link 是否显示推文链接 (since 1.0.2) interval 两次推文发送的时间间隔 (since 1.0.2) count 每次轮询拉取的推文数 (since 1.0.2) cache 缓存目录 clear 图片缓存清理时间,单位小时,默认3天 (since 1.0.2) accessToken AccessToken doh Dns Over Https cname Dns CNAME proxy 代理选择器, 全局代理请对 域名 127.0.0.1 进行设置 安装 手动安装 运行 Mirai Console 生成plugins文件夹 从 Releases 下载jar并将其放入plugins文件夹中
    • cssxsh

      切换类加载器,解决Java Services 加载问题(大概也能解决Spring的上下文问题)
      技术交流板块 • • cssxsh

      1
      4
      Votes
      1
      Posts
      415
      Views

      cssxsh

      val thread = Thread.currentThread() val oc = thread.contextClassLoader try { thread.contextClassLoader = XXXPlugin::class.java.classLoader // 需要切换上下文的代码 } finally { thread.contextClassLoader = oc }
    • cssxsh

      简单的Rss订阅插件 已添加RssHub支持 番剧订阅Bt种子自动上传
      插件发布 • kotlin jvm rss • • cssxsh

      125
      3
      Votes
      125
      Posts
      22397
      Views

      cssxsh

      Rss Helper

      基于 Mirai Console 的RSS订阅插件

      Release
      Downloads
      MiraiForum

      指令

      注意: 使用前请确保可以 在聊天环境执行指令
      带括号的/前缀是可选的
      <...>中的是指令名,由空格隔开表示或,选择其中任一名称都可执行例如/rss add https://github.com/cssxsh.atom
      [...]表示参数,当[...]后面带?时表示参数可选
      {...}表示连续的多个参数 下列指令的 URL 参数可以使用 base64 编码 后的形式

      RssBaseCommand 指令 描述 /<rss> <add> [url] 添加一个订阅 /<rss> <list> 列出订阅列表 /<rss> <interval> [url] [duration] 设置订阅间隔, 单位分钟 /<rss> <stop> [url] 取消一个订阅 RssGithubCommand 指令 描述 /<rss-github> <releases> [owner] [repo] 添加一个Releases订阅 /<rss-github> <commits> [owner] [repo] 添加一个Commits订阅 /<rss-github> <tags> [owner] [repo] 添加一个Tags订阅 /<rss-github> <activity> [user] 添加一个Activity订阅 /<rss-github> <private> [user] [secret] 添加一个Private订阅 RssMikanCommand 指令 描述 /<rss-mikan mikan> <my> [token] 添加一个MyBangumi订阅 /<rss-mikan mikan> <classic> 添加一个Classic订阅 /<rss-mikan mikan> <bangumi> [id] [sub]? 添加一个Bangumi订阅 /<rss-mikan mikan> <search> [word] 添加一个Search订阅

      指令基于 蜜柑计划

      RssMoeCommand 指令 描述 /<rss-moe> <recent> 查看当季番剧TAG /<rss-moe> <search> [name] 搜索TAG /<rss-moe> <tags> {ids} 添加一个Tag订阅

      指令基于 萌番组

      RssTestCommand 指令 描述 /<rss-test> <build> [url] 测试一个订阅 /<rss-test> <ssl> 测试SSL /<rss-test> <clear> 清空种子文件 RssMiraiCommand 指令 描述 /<rss-mirai mirai> <category> [value] 添加标签订阅 /<rss-mirai mirai> <plugin> 添加插件发布订阅 /<rss-mirai mirai> <other> 添加其他项目发布订阅 RssHubCommand 指令 描述 /<rss-hub rsshub> <add> 交互添加RssHub订阅

      交互过程举例

      1748(1438159989) 23:29:58 /rsshub add QQBot(3337342367) 23:30:02 request returned 1899 routes QQBot(3337342367) 23:30:03 请输入路由名 1748(1438159989) 23:30:07 755 QQBot(3337342367) 23:30:07 (0, /755/user/:username) QQBot(3337342367) 23:30:08 /755/user/:username, 输入:username (置空可以输入#) 1748(1438159989) 23:30:21 akimoto-manatsu QQBot(3337342367) 23:30:26 1748 /rsshub add RSS订阅任务[秋元真夏(乃木坂46) - 755]已添加

      配置文件 RssHubConfig.yml 可以配置rsshub的域名,即可以配置rsshub的源
      此配置只对新的rsshub订阅订阅行为有效

      配置 RssHubConfig domain rsshub 服务器的域名,默认为官方的 rsshub.app HttpClientConfig doh Dns Over Https Url (为空时关闭Doh,使用系统DNS since 1.0.0-dev-6) sni 需要移除 SNI HostName 的域名的正则表达式列表 proxy 代理列表 host: proxy, host=127.0.0.1时是全局代理 ipv6 doh 开启ipv6 支持 (since 1.0.3) RssContentConfig limit 订阅内容输出到QQ消息的最大长度,超过则只会输出 内容过长 TODO 翻译功能 代理支持 Doh支持 将Html转化为Mirai的MessageChain(主要目的是显示图片) 安装 MCL 指令安装

      ./mcl --update-package io.github.gnuf0rce:rss-helper --channel stable --type plugin

      手动安装 运行 Mirai Console 生成plugins文件夹 从 Releases 下载jar并将其放入plugins文件夹中
    • cssxsh

      Mirai Content Censor 群内容审核插件
      插件发布 • jvm 内容审核 百度ai • • cssxsh

      61
      3
      Votes
      61
      Posts
      9847
      Views

      cssxsh

      Mirai Content Censor

      基于 Mirai Console 和 百度AI内容审核 的自动禁言助手

      Release
      Downloads
      MiraiForum

      本插件原命名 Mirai-AntiPorn-Plugin

      设置 百度AI

      使用前请根据 https://ai.baidu.com/ai-doc/ANTIPORN/Wkhu9d5iy 的步骤申请APP 获取APP_ID API_KEY SECRET_KEY
      在安装插件,并启动Mirai Console后,config/content-censor目录下会生成ContentCensor.yml
      对应修改文件中APP_ID API_KEY SECRET_KEY的值

      机器人将会在作为群主或者管理员身份的情况下工作,即群消息内容审核(文本,图片,语音)
      机器人的审核规则请到 https://ai.baidu.com/censoring#/strategylist 修改策略

      审核内容

      位于 config/ContentCensor.yml

      mute 禁言时间,单位秒,默认1分钟 plain 是否检查文本,默认 true image 是否检查图片,默认 false audio 是否检查语音,默认 false 避开审查

      拥有权限 io.github.gnuf0rce.content-censor:no-censor 的用户将不会被检测

      安装 MCL 指令安装

      ./mcl --update-package io.github.gnuf0rce:mirai-content-censor --channel stable --type plugin

      手动安装 运行 Mirai Console 生成plugins文件夹 从 Releases 下载jar并将其放入plugins文件夹中 TODO 配置禁言时间 QPS延迟 视频内容审核 转发消息内容审核
    • cssxsh

      Pixiv Client , Kotlin Api Lib 预发布
      其他项目发布 • kotlin pixiv • • cssxsh

      1
      0
      Votes
      1
      Posts
      657
      Views

      cssxsh

      Pixiv Client
      基于Ktor的 Pixiv Kotlin SDK
      常用的API都已经基本完成
      目前需要优化和完善部分API

      相关项目 Pixiv Helper Mirai Console Plugin 也在预发布状态

    • cssxsh

      B站订阅插件,动态、视频、直播订阅 @全体成员
      插件发布 • bilibili b站 直播 动态 专栏 • • cssxsh

      392
      6
      Votes
      392
      Posts
      97626
      Views

      cssxsh

      BiliBili Helper

      基于 Mirai Console 的 哔哩哔哩 订阅插件

      Release
      Downloads
      MiraiForum

      使用前应该查阅的相关文档或项目

      User Manual Permission Command Chat Command

      从 1.2.5 版本开始 将截图部分功能的转移至 mirai-selenium-plugin
      截图功能的启用需要其作为前置插件
      关于截图支持的环境请浏览 运行平台支持
      直播 @全体成员 详见配置 此设置 1.5.0 废除, 改用指令配置
      自动触发URL解析 详见 信息解析 指令
      消息 模板 详见配置(自 1.4.0 起截图功能由模板内容来配置)

      指令

      注意: 使用前请确保可以 在聊天环境执行指令
      带括号的/前缀是可选的
      <...>中的是指令名,由空格隔开表示或,选择其中任一名称都可执行例如/B视频 添加 11783021
      [...]表示参数,当[...]后面带?时表示参数可选
      {...}表示连续的多个参数

      本插件指令权限ID 格式为 xyz.cssxsh.mirai.plugin.bilibili-helper:command.*, * 是指令的第一指令名
      例如 /B动态 添加 496371957 的权限ID为 xyz.cssxsh.mirai.plugin.bilibili-helper:command.bili-dynamic

      参数 uid 例如 https://space.bilibili.com/508963009/ 的数字 508963009
      参数 contact 为QQ号或者群号,可以省略,会从当前聊天环境获取,
      比如群聊中会自动填充为当前群号, 但控制台中必须填充

      子指令 sleep/at 的 target 是 被许可人 ID
      处于休眠时间的订阅将不会推送
      举例:

      /bili-dynamic sleep g12345 00:00 06:00, 00:00~06:00 时间段内将不会推送

      处于艾特时间的订阅将会添加艾特
      举例:

      /bili-live at g12345 19:00 23:00, 19:00 23:00 时间段内将会艾特全体 /bili-live at u456789 19:00 23:00, 19:00 23:00 时间段内将会艾特用户456789

      子指令 cron 的 cron 参数是 CRON 表达式, 由 秒 分钟 小时 日 月 周 组成
      举例:

      /bili-dynamic time 508963009 "0 0 14 * * ?", 0 0 14 * * ? 表示每天 14:00 都执行一次 /bili-video time 508963009 "0 0 18 ? * 2-6", 0 0 18 ? * 2-6 表示星期一至星期五 每天 18:00 执行一次
      可以使用在线编辑器生成 https://www.bejson.com/othertools/cron/
      为防止被 空格 分成多个参数,请使用 " 包裹参数 动态订阅指令 指令 描述 /<bili-dynamic B动态> <add 添加> [uid] [contact]? 添加一个b站动态订阅 /<bili-dynamic B动态> <stop 停止> [uid] [contact]? 停止一个b站动态订阅 /<bili-dynamic B动态> <time 定时> [uid] [cron]? 设置任务的定时信息 /<bili-dynamic B动态> <list 列表> [contact]? 列出当前联系人的动态订阅 /<bili-dynamic B动态> <forbid 屏蔽> [pattern] [add]? 添加一个动态正则屏蔽 /<bili-dynamic B动态> <sleep 休眠> [target] [start] [end] 添加一个休眠时间 /<bili-dynamic B动态> <at 艾特> [target] [start] [end] 添加一个艾特时间

      /bili-dynamic forbid 转发抽奖 添加一个正则屏蔽
      /bili-dynamic forbid 转发抽奖 false 取消一个正则屏蔽
      /bili-dynamic filter 视频 添加一个动态类型过滤
      /bili-dynamic filter 视频 false 取消一个动态类型过滤
      type 取值 回复, 图片, 文本, 视频, 专栏, 音乐, 剧集, 删除, 番剧, 电视, 直播

      直播订阅指令 指令 描述 /<bili-live B直播> <add 添加> [uid] [contact]? 添加一个b站直播订阅 /<bili-live B直播> <stop 停止> [uid] [contact]? 停止一个b站直播订阅 /<bili-live B直播> <time 定时> [uid] [cron]? 设置任务的定时信息 /<bili-live B直播> <list 列表> [contact]? 列出当前联系人的直播订阅 /<bili-live B直播> <sleep 休眠> [target] [start] [end] 添加一个休眠时间 /<bili-live B直播> <at 艾特> [target] [start] [end] 添加一个艾特时间 视频订阅指令 指令 描述 /<bili-video B视频> <add 添加> [uid] [contact]? 添加一个b站视频订阅 /<bili-video B视频> <stop 停止> [uid] [contact]? 停止一个b站视频订阅 /<bili-video B视频> <time 定时> [uid] [cron]? 设置任务的定时信息 /<bili-video B视频> <list 列表> [contact]? 列出当前联系人的视频订阅 /<bili-video B视频> <forbid 屏蔽> [type] [add]? 添加一个视频类型屏蔽 /<bili-video B视频> <filter 过滤> [tid] [add]? 添加一个视频分区过滤 /<bili-video B视频> <sleep 休眠> [target] [start] [end] 添加一个休眠时间 /<bili-video B视频> <at 艾特> [target] [start] [end] 添加一个艾特时间

      /bili-video forbid 付费 添加一个类型屏蔽
      /bili-video forbid 付费 false 取消一个类型屏蔽
      /bili-video filter 1 添加一个分区过滤过滤
      /bili-video filter 1 false 取消一个分区过滤过滤
      type 取值 付费, 联合, 回放
      tid 取值请参考 https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/video/video_zone.md

      视频订阅不宜过多,否则会触发b站反爬策略,导致IP被锁定 动态订阅一般会包含视频内容,推荐以此代替

      剧集订阅指令 指令 描述 /<bili-season B剧集> <add 添加> [sid] [contact]? 添加一个b站剧集订阅 /<bili-season B剧集> <stop 停止> [sid] [contact]? 停止一个b站剧集频订阅 /<bili-season B剧集> <time 定时> [uid] [cron]? 设置任务的定时信息 /<bili-season B剧集> <list 列表> [contact]? 列出当前联系人的剧集订阅 /<bili-season B剧集> <sleep 休眠> [target] [start] [end] 添加一个休眠时间 /<bili-season B剧集> <at 艾特> [target] [start] [end] 添加一个艾特时间

      剧集订阅需要 Season ID 例如 https://www.bilibili.com/bangumi/play/ss38353 的 38353
      可以通过 搜索指令 搜索番剧 获得链接

      信息解析指令 指令 描述 /<bili-info B信息> <aid> [id] 根据 avid 获取视频信息 /<bili-info B信息> <bvid> [id] 根据 bvid 获取视频信息 /<bili-info B信息> <dynamic> [id] 根据 id 获取动态信息 /<bili-info B信息> <live> [id] 根据 id 获取直播信息 /<bili-info B信息> <user> [id] 根据 id 获取用户信息

      返回结果包含图片,需要在聊天环境执行指令
      消息中包含 BV12v411G7dP av2 等等 id 信息时会自动触发解析
      目前会触发的正则表达式

      // Video """(?i)(?<!\w)(?:av(\d+)|(BV[0-9A-z]{10}))""" // Dynamic """(?<=t\.bilibili\.com/(?:h5/dynamic/detail/)?)(\d+)""" // Live Room """(?<=live\.bilibili\.com/)(\d+)""" // User Space """(?<=space\.bilibili\.com/|bilibili\.com/space/)(\d+)""" // Season """(?i)(?<!\w)ss(\d{4,10})""" // Episode """(?i)(?<!\w)eq(\d{4,10})""" // Media """(?i)(?<!\w)md(\d{4,10})""" // Article """(?i)(?<!\w)cv(\d{4,10})""" """(?<=bilibili\.com/read/mobile\?id=)(\d+)""" // Short Link """(?<=b23\.tv\\?/)[0-9A-z]+""" 搜索指令 指令 描述 /<bili-search B搜索> <user 用户> [keyword] 搜索用户 /<bili-search B搜索> <bangumi 番剧> [keyword] 搜索番剧 /<bili-search B搜索> <ft 影视> [keyword] 搜索影视

      返回结果包含图片,需要在聊天环境执行指令

      任务列表指令 指令 描述 /<bili-task B任务> <all> 全部任务 /<bili-task B任务> <dynamic> 动态任务 /<bili-task B任务> <live> 直播任务 /<bili-task B任务> <season> 剧集任务 /<bili-task B任务> <video> 视频任务 /<bili-task B任务> <config> 屏蔽设置 模板配置指令 指令 描述 /<bili-template B模板> <datetime> [pattern] 日期格式 /<bili-template B模板> <reload> 重新加载

      pattern 的 取值为 DateTimeFormatter
      举例:

      /B模板 datetime ISO_LOCAL_DATE_TIME /B模板 datetime yyyy-MM-dd 设置

      位于Mirai-Console运行目录下的config/xyz.cssxsh.mirai.plugin.bilibili-helper文件夹下

      BiliHelperSettings.yml cache 图片缓存位置, 默认为 ImageCache limit 动态 订阅 输出图片数量上限, 默认为 16 api API 访问间隔时间,单位秒, 默认为 10 video 视频 订阅 访问间隔时间,单位分钟, 默认为 10 dynamic 动态 订阅 访问间隔时间,单位分钟, 默认为 10 live 直播 订阅 访问间隔时间,单位分钟, 默认为 30 season 番剧 订阅 访问间隔时间,单位分钟, 默认为 30 refresh 启动时刷新 last,订阅最后推送将会重新开始记录,未推送内容将会因此丢弃 selenium 是否启用截图 此配置项废弃,通过 Template 文件内容来确定是否启用截图 ban 排除的自动解析内容,可以放一些不希望被解析的AV号之类的 forward 转发自动解析, 使用转发的形式发送自动解析结果 max 一次性推送的订阅内容上限, 超过这个上限将会尝试合并为转发消息 BiliCleanerConfig.yml interval 图片清理的间隔时间,单位 小时 expires 图片缓存过期时间,单位 小时 SeleniumConfig.yml user_agent 截图设备UA 网页识别设备类型,进而影响截图的效果
      iPad Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1 MicroMessenger
      iPhone Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 MicroMessenger
      Mac Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50 MicroMessenger width 截图宽度 height 截图高度 pixel_ratio 截图像素比 此配置废除 headless 无头模式(后台模式) home 浏览器会保持打开主页,以加快其他页面加载速度 此配置废除 hide 隐藏的web组件(jQ选择器)
      添加 ".international-header", ".top-bar", ".m-navbar" 可以屏蔽顶边栏 LiveAtAll

      此设置 1.5.0 废除
      此配置通过权限设置,权限ID为 xyz.cssxsh.mirai.plugin.bilibili-helper:live.atall
      配置对象为群,即 g*, g12345
      举例,perm add g12345 xyz.cssxsh.mirai.plugin.bilibili-helper:live.atall

      Template

      位于 config/xyz.cssxsh.mirai.plugin.bilibili-helper/Template 目录下的 template 文件
      文件名为对应的配置对象(类名),文件内容的 #... 是替换标记,将会替换为对应的值
      值的名称请参考 bilibili/data 中的数据定义
      #images, #detail, #screenshot 为特殊的替换标记,将会替换为特殊的处理结果
      #images 将会替换为内容图片
      在 BiliRoomInfo 中 #detail 将会替换为对应的 Live
      在 DynamicCard 中 #detail 将会替换为对应的 card 解析结果
      在 DynamicInfo 中 #screenshot 将会替换为截图(需要安装 mirai-selenium-plugin)
      在 Article 中 #screenshot 将会替换为截图(需要安装 mirai-selenium-plugin)
      例如可以将 VideoStatus.template 改为

      👍 #like 💰 #coin ⭐ #favorite ▶️ #view 💬 #reply 🔄 #share Cookies

      位于 data/xyz.cssxsh.mirai.plugin.bilibili-helper/cookies.json
      导入 cookies文件 不是必须的,这是实验性功能,主要是防止b站反爬IP锁定
      从 浏览器插件 EditThisCookie 导出Json 填入文件
      EditThisCookie 安装地址
      Chrome
      Firefox
      Edge

      安装 MCL 指令安装

      ./mcl --update-package xyz.cssxsh:bilibili-helper --channel stable --type plugin

      手动安装 运行 Mirai Console 生成plugins文件夹 从 Releases 下载jar并将其放入plugins文件夹中 截图前置

      ./mcl --update-package xyz.cssxsh.mirai:mirai-selenium-plugin --channel stable --type plugin

      TODO 完善剧集订阅 自动清理图片缓存
    • cssxsh

      Baidu Kotlin SDK 目前实现了Oauth百度网盘
      其他项目发布 • kotlin jvm 百度网盘 • • cssxsh

      9
      1
      Votes
      9
      Posts
      1022
      Views

      cssxsh

      Baidu Api Client

      百度API的Kotlin SDK,目前实现的有 Oauth认证 和 百度网盘

      Baidu Oauth

      部分SDK的前置库
      有三种验证方式

      服务端的方式获取 Token, block 输入 认证网页 Url ,返回认证码
      suspend fun authorize(block: suspend (Url) -> String)

      移动端的方式获取 Token, block 输入 认证网页 Url ,返回跳转Url
      suspend fun implicit(block: suspend (Url) -> Url)

      设备认证的方式获取 Token, block 第一个参数是 直接网页认证的Url,第二个是 二维码认证的图片Url
      suspend fun device(block: suspend (Url, Url) -> Unit)

      刷新 Token
      suspend fun refresh()

      Baidu Netdisk

      需要到 百度网盘开放中心 申请app
      作为构建客户端的参数

      open class BaiduNetDiskClient( override val appId: Long, override val appName: String, override val appKey: String, override val secretKey: String )

      客户端在网盘中的工作目录为/apps/${appName}

      已完成的功能

      [Oauth](#Baidu Oauth) 验证登录 上传文件 列出文件 搜索文件 秒传链接 获取和解析 Gradle引用包

      到 Personal Access Tokens 申请一个token
      然后添加repository

      repositories { maven { url = uri("https://maven.pkg.github.com/baidu-client") credentials { username = "${github.id}" password = "${github.token}" } } } dependencies { implementation("xyz.cssxsh.baidu:baidu-netdisk:${version}") }
    • cssxsh

      无法登录的临时处理方案
      官方公告 • • cssxsh

      183
      3
      Votes
      183
      Posts
      181211
      Views

      cssxsh

      `Tips:

      阅读顺序为从下往上 不要 尝试在 Android 模拟器上通过任何方式解决验证码 关于签名服务 协议问题汇报

      小贴士

      第三方签名服务 的作用是
      尽量避免 code=45 的出现和减少消息风控

      fix-protocol-version 1.9.0+ 已经实现了第三方签名服务的对接
      并且 mirai-console 和 mirai-core 都支持使用
      使用方法详见 README

      mirai-login-solver-sakura
      处理滑块及其他验证,服务器使用需要做一些配置
      使用方法详见 README

      09月24日

      开始出现即使已经使用签名服务仍要求强制要求提升版本的情况,
      code=45, title=禁止登录, message=登录失败,请前往QQ官网im.qq.com下载最新版QQ后重试,或通过问题反馈与我们联系。, errorInfo=)。

      你可以尝试更换签名服务或者更新协议版本。

      注意,fix-protocol-version 插件更新协议的来源 protocol-versions,
      其最新的协议版本是 8.9.63。
      8.9.73 等版本在其PR中,有待验视合并,亦缺乏测试。
      请自行斟酌是否下载使用。

      08月10日

      本次更新是作总结

      目前登录的机制下需要 签名服务 用来应对 code=45 和 消息风控

      没有签名服务的情况下 Mirai 无法正常登录和使用 Mirai 不会提供内置的签名服务,但提供了接入第三方服务的接口 已知的签名服务只支持 ANDROID_PHONE / ANDROID_PAD 协议 登录协议的版本和签名服务器要相互匹配

      对接签名服务 fix-protocol-version

      https://github.com/cssxsh/fix-protocol-version#mirai-console-使用方法 https://github.com/cssxsh/fix-protocol-version#mirai-core-使用方法 第一次使用需要用户自行修改 KFCFactory.json, 提供一个和登录版本相匹配的服务器配置 使用时出现协议问题请一并提交 签名服务的日志 如果觉得 fix-protocol-version 不便使用,论坛亦有其他对接签名服务的插件,自行搜索

      处理滑块及其他验证 mirai-login-solver-sakura

      滑块验证,短信验证 是否出现取决于服务器要求,一般出现于第一次登录或者登录缓存失效的情况下 滑块验证可能会连续要求多次验证, 完成了滑块验证还是出现 code=237, 这可能是因为服务器认为本次验证可信度太低(可能是操作超时或被检测出环境有问题) 迁移登录缓存(IP有变动)可能会导致缓存失效,出现需要重新验证的情况

      下面的内容因管理不慎过于凌乱,仅作历史内容参阅

      07月19日

      https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.9.8
      加了点处理,避免自动登录失败把 mirai 关了

      原因可以看这个
      https://github.com/mamoe/mirai/issues/2740

      07月18日

      https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.9.7
      修复 KFCFactory SPI 加载的问题

      07月13日

      关于 Request timeout 请看这个 https://github.com/fuqiuluo/unidbg-fetch-qsign/issues/120

      https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.9.5
      修复一些问题,并且把 RequestToken 设置为暂停

      07月11日

      mirai 2.15.0 正式版已发布 https://github.com/mamoe/mirai/releases/tag/v2.15.0

      https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.9.4
      适配 mirai 2.15.0
      可选第三方签名服务 (配置文件 KFCFactory.json)
      https://github.com/fuqiuluo/unidbg-fetch-qsign
      https://github.com/kiliokuara/magic-signer-guide

      07月10日

      https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.9.3
      适配 mirai 2.15.0-dev-105
      可选第三方签名服务 (配置文件 KFCFactory.json)
      https://github.com/fuqiuluo/unidbg-fetch-qsign
      https://github.com/kiliokuara/magic-signer-guide

      07月05日

      https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.8.5 无法启动,已于 v1.8.6 修复
      https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.8.6
      适配 mirai 2.15.0-dev-105 和 unidbg-fetch-qsign 1.1.3
      unidbg-fetch-qsign 仍有问题没有修复,请谨慎使用

      06月29日

      unidbg-fetch-qsign 服务有 冻结/封号 风险,请自行斟酌是否使用
      https://github.com/Mrs4s/go-cqhttp/discussions/2245
      https://github.com/cssxsh/fix-protocol-version/releases/tag/unidbg-fetch-qsign

      06月24日
      8.8.88 遭到大规模风控,表现为 code=40/code=45

      目前的情况

      ANDROID_PHONE(8.9.58.11170), ANDROID_PAD(8.9.58.11170)
      缺少 tlv544 和 sign
      code=45

      ANDROID(8.8.88),
      被大规模检测
      code=40/code=45

      ANDROID_WATCH
      密码登录 code=238, 也就是被禁止密码登录
      可以扫码登录,但扫码登录需要局域网
      并且扫码登录之后有定期消息风控

      06月23日

      code=16 删掉 bots/.../cache
      code=235 删掉 bots/.../device.json
      老生常谈的问题为啥总有人重复问

      扫码登录(ANDROID_WATCH) 之后发不出消息是已知且目前无法解决的问题
      不要再问怎么办了

      fix-protocol-version v1.8.3
      只是修复了一些可能的问题,不清楚有没有影响

      开始严查 8.8.88 版本的登录了,祝各位好运

      06月21日

      v2.15.0-RC 已发布
      你可以使用 mcl 更新到 2.15.0-RC 了,参考 https://mirai.mamoe.net/topic/2061

      2.15.0-RC 包含了 2.15.0-dev-98 的更新内容
      所以也可以配合 fix-protocol-version v1.8.0 以 8.8.88 版本协议进行登录

      如果你发现日志的 ANDROID_PAD 版本不是 8.8.88
      那么可以尝试使用 protocol sync ANDROID_PAD 同步协议内容

      06月12日

      fix-protocol-version v1.7.1

      添加 windows x86 支持 降低 linux glibc 版本需要至 2.23
      你可以通过 strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_ 查看你的linux系统支持那些版本

      https://github.com/cssxsh/fix-protocol-version/actions/runs/5241043307

      https://github.com/cssxsh/fix-protocol-version/actions/runs/5241784161

      https://github.com/cssxsh/fix-protocol-version/actions/runs/5276674247

      06月11日

      fix-protocol-version v1.7.0
      更新了,姑且加上解决 code=45 需要的部分东西,目前配合 8.8.88 + 2.15.0-dev-98 可以登录

      使用方法:
      到 https://github.com/cssxsh/fix-protocol-version/actions/runs/5233985323 下载整合包 console-runtime
      使用登陆协议 ANDROID_PAD

      06月10日

      隔壁 8.8.88 协议版本 解决方法的原理是把协议回退到 没有 code=45 检查的版本
      code=45 的原理是检查协议流程中的一些签名加密部分,mirai 目前没有实现,所以大概率报 code=45
      ANDROID_WATCH 能扫码登录的原理也是类似的,他根本不检查 code=45 需要检查的东西,所以不会触发 code=45

      fix-protocol-version 只是修改协议的版本信息,并没有修改协议实现细节,所以他无法从根本上解决 code=45
      只能用于处理 code=235,不要在TM问为什么 fix-protocol-version 为什么不能解决 code=45 了,每次更新帖子都在强调,但是TM每次都还是有人问。

      姑且在 https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.6.0 中加入
      protocol sync <type> 命令用以同步协议
      例如 protocol sync ANDROID_PAD 可以将 ANDROID_PAD 同步到 8.8.88
      但是慎用,8.8.88 协议版本可能会让本来能正常登录的账号炸掉,
      并且 8.8.88 可能会触发 code=235
      所以建议尝试的时候单独开一个实例。

      PS: 某人写的 6/3 的更新属实鸡肋, 风控严重的号无法解除45,不严重的号又不触发45,只有轻微风控的号才可能有用。

      06月03日

      据反馈,已在 2.15.0-M1 版本出现 code=45 依旧无法使用此方法登录。

      originally posted at #2671

      请尝试使用 60d360b 或之后的 snapshot 构建,并使用 ANDROID_PHONE 协议登录。

      针对 mirai-console 使用者(通过 mirai-console-loader 或其他启动方式)

      以最新构建为例,访问 mirai snapshot 仓库,下载 mirai-core, mirai-core-api 和 mirai-core-utils 的版本为 2.15.0-dev-97 的构建文件。

      访问 https://repo.mirai.mamoe.net/snapshots/net/mamoe/mirai-core-jvm/2.15.0-dev-97
      下载 mirai-core-jvm-2.15.0-dev-97.jar 访问 https://repo.mirai.mamoe.net/snapshots/net/mamoe/mirai-core-api-jvm/2.15.0-dev-97
      下载 mirai-core-api-jvm-2.15.0-dev-97.jar 访问 https://repo.mirai.mamoe.net/snapshots/net/mamoe/mirai-core-utils-jvm/2.15.0-dev-97
      下载 mirai-core-utils-jvm-2.15.0-dev-97.jar 访问 https://repo.mirai.mamoe.net/snapshots/net/mamoe/mirai-console/2.15.0-dev-97
      下载 mirai-console-2.15.0-dev-97-all.jar

      下载好后,按照如下步骤操作:

      首先删除 mirai-console 根目录下的 libs 目录的所有文件。 打开 config.json,将 net.mamoe:mirai-core-all,net.mamoe:mirai-console-terminal 和 net.mamoe:mirai-console 的版本改为 2.15.0-M1。 启动一次 mirai-console-loader,等待其下载库文件。 下载完成后(即已经出现 mirai 的 logo)立刻强制关闭 mirai-console-loader。 将在 snapshot 仓库下载好的 jar 放入 libs 目录中。 删除所有的 sha1 文件。 删除原先的 mirai-console-2.15.0-M1-all.jar 文件。 用任何压缩软件(如 Bandizip)打开原先的 mirai-core-all-2.15.0-M1-all.jar,删除其中的 net/mamoe/mirai 包文件夹。

      操作完成后,libs 中的内容应该和如下图片相同:

      image

      删除 bots 下的登录缓存。 通过以下方式启动: java -D"file.encoding=utf-8" -cp "./libs/*" net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader

      启动成功后尝试使用 ANDROID_PHONE 协议登录,其他协议与稳定版相同,仅更新了手机协议。

      注意: 每一个 snapshot 版本仅保留一个月,若发现此评论中的构建已被删除,请自动替换为最新构建的版本号。 mirai 构建的文件没有签名校验,所以可以直接删除 jar 中的类。 snapshot 构建没有依赖,所以借用原先包含依赖的 mirai-core-all 中的依赖。 针对基于 mirai-core 开发的开发者

      查看 UsingSnapshots.md

      其他信息

      mirai snapshot 构建仓库:https://repo.mirai.mamoe.net/
      获取 dev 分支最新构建依赖版本号的方法:

      image
      image
      image

      05月03日

      fix-protocol-version 已更新
      https://github.com/cssxsh/fix-protocol-version/tree/v1.5.0
      它现在也会在 2.15+ 下工作

      再次强调此次插件仅用于处理 code=235 问题
      另外, 登录前请删掉(备份) bot/.../device.json 因为 code=235 code=45 会拉黑设备信息

      04月23日

      有用户表示可用通过官方最新版安卓客户端登录挂机让 code=45 退化到 code=235

      目前的两套比较稳妥的解决方案

      密码登录 mirai 2.14 + fix-protocol-version 1.4.0 + ANDROID_PAD mirai-device-generator mirai-login-solver-sakura

      登录前请删掉(备份) bot/.../device.json 因为 code=235 code=45 会拉黑设备信息
      mirai-login-solver-sakura 在服务器使用请添加 jvm 参数 -Dmirai.no-desktop=true

      扫码登录 mirai 2.15 + mirai-console-dev-qrlogin + ANDROID_WATCH

      注意扫码登录只支持 ANDROID_WATCH 和 MACOS 协议, 并且会少收到很多事件
      目前 2.15.0-M1有 BUG,会导致 IllegalProducerStateException (修复没这么快,建议回退 2.14)

      另外直接使用 mirai-core 2.15 的开发者可以调用相关API扫码登录,不需要 mirai-console-dev-qrlogin
      mirai-console-dev-qrlogin 只是把相关API封装成 mirai-console 可用的命令

      再次声明,目前 mirai 只有 密码登录 和 扫码登录
      没有所谓的 验证码登录 和 短信登录
      只有 密码登录 中出现了 验证码验证 和 短信验证
      至于出现什么验证是不可控的,取决于服务器的要求
      他可能出现 验证码验证+短信验证,也可能只出现 短信验证,也可能只出现 验证码验证
      还可能什么也不出现

      最近在更新 Mirai 的文档,有建议的可用来提一提
      https://github.com/mamoe/mirai/pull/2639

      04月15日

      目前常见code的总结

      code=45 重度版本验证
      目前无法处理 (PR 中有正在提交的解决方案,可自行关注)
      ANDROID_PHONE ANDROID_PAD IPAD MACOS 全部阵亡,都会有可能触发

      code=235 轻度版本验证
      升级至 mirai 2.15 或者 (mirai 2.14 + fix-protocol-version) 可以一定程度解决
      注意要删除 bots/.../device.json 文件,让其重新生成,不然仍有可能因 device.json 被拉黑而触发

      code=237 比较常见于滑块验证处理不慎
      建议配合 mirai-login-solver-sakura 处理登录, 服务器使用方法请自行查阅其 readme

      code=238 出现于 ANDROID_WATCH 协议
      他会提示你必须走扫码登录,实际上就是禁止手表协议密码登录了

      关于扫码登录,ANDROID_WATCH 协议会要求在同一局域网。对于服务器来说,
      你可以尝试搭建一个工具,让手机的流量走服务器的网络。这样就能模拟局域网的情况。

      fix-protocol-version 更新了新版本 v1.4.0
      再次强调 fix-protocol-version 而且只会在 2.14 下工作
      他本来就是临时性的修复,不能解决所有问题
      真正的修复要等 2.15 的发布

      03月30日

      QQ的登录方式只有三种

      密码登录 扫码登录 (mirai 2.15 实现) 手机号登录 (未实现)

      由于密码登录很容易被腾讯识别为疑似盗号之类的
      比如因为服务器IP被检测为异地登陆
      所以TX会要求滑块之类的人机验证
      这是是TX要求,不是mirai故意要你滑块
      所以不存在什么 滑块登录,只有密码登录中出现了滑块验证

      fix-protocol-version
      而且只会在 2.14 下工作(readme 明明说的很清楚是临时性修复)
      而且只解决 code=235 问题

      扫码登录只支持 ANDROID_WATCH 和 MACOS 协议
      扫码登录亦有扫码登录的风控
      目前已知有

      ANDROID_WATCH 要求在同一网络(局域网)下扫码 MACOS 报 code=235 (这个要求最新的 NT QQ 的版本信息,目前无法提供)

      03月26日

      mirai 2.15.0-M1 已推出,包含扫码登录功能,但还没有设计对应的登录指令
      如果你在使用第三方插件体验扫码登录,出现问题请优先回复到第三方

      fix-protocol-version 只适用于 2.14 下 处理各种协议的 code=235 问题

      03月12日

      fix-protocol-version 于 v1.2.0 更新了 MACOS 协议
      https://github.com/cssxsh/fix-protocol-version/releases/tag/v1.2.0
      出现 code=45 / code=238 问题的可以尝试切换到 MACOS 协议

      03月09日

      出现 code=45 风控 意味着你的QQ被限制只能在最新版手Q上登录
      此风控是针对 ANDROID_PHONE 和 ANDROID_PAD 的

      Mirai 目前支持的的登录方式只有 密码登录 (不叫滑块登录)
      期间出现 滑块验证 是正常情况(这是QQ要求的人机检测,无法避免)
      45/235/237/238 他们都是密码登录被风控导致的问题
      (好好看日志就知道,它们都有一个前缀 WrongPasswordException)

      至于 扫码登录
      他已经在日程中了
      具体可以关注 https://github.com/mamoe/mirai/pull/2502

      03月08日

      出现了新的风控 code=238 (禁止密码登录,强制要求扫码或者短信)
      此风控是针对 ANDROID_WATCH 和 MACOS 的

      临时修复插件 fix-protocol-version
      此插件可以尝试用来解决 ANDROID_PHONE 或者 ANDROID_PAD 的 code=235 风控

      03月07日

      以最近的情况来看,QQ在督促用户更新客户端
      表现情况为 code=235
      关于对版本信息的更新已在日程中

      你可以使用 临时修复插件 fix-protocol-version

      02月28日

      QQ又加强了风控检测

      code=45 属于更加严重的登录风控,建议使用手机客户端挂一下机器人,最好能正常聊天之类的

      45, 235, 237 都属于登录风控
      235, 237 是疑似有问题
      45 是确定有问题

      你可以在以前没登录的电脑上使用密码登录试试看,也会有类似的提示

      code=6 是一定程度锁定了账号,例如,新注册的账号被要求先在手机客户端上登陆

      02月14日

      若使用 mirai 版本低于 2.14.0,
      在服务器上使用 mirai-login-solver-sakura 时需要 添加参数 jvm 参数 -Dmirai.no-desktop=true,
      如果你使用 mcl 启动,你只需要编辑脚本 mcl.cmd 或 mcl 的内容, 在 -jar 的前面加上 -Dmirai.no-desktop=true
      例如 %JAVA_BINARY% -Dmirai.no-desktop=true -jar
      若使用 mirai 2.14.0 及以上则不需要添加此参数

      PS: 只有本地局域网才能配合APP进行扫码

      第三方登录器: https://github.com/MrXiaoM/Aoki
      使用真实的设备信息生成 device.json
      可以在登录后将 bots 文件夹导出,以供其他环境使用
      与之相比 mirai-device-generator 是模拟生成

      登录风控 (code=235 和 code=237) 不是单一因素导致的,亦不能靠单一手段直接100%解决
      包括的因素有

      IP地址,一个IP地址登录过多的账号,
      或者已经被腾讯拉黑
      或者和你常用的IP差距过大,你比如本地登录在广州,又迁移到服务器登录在上海 登录尝试次数过多 长期没用使用安卓之类的官方客户端登录机器人账号 (别问,问就是腾讯想提高用户的客户端安装率)

      02月12日

      QQ最近加强了登录风控检测,
      如果账号删除 cache 后,仍多次重复出现 code=235, code=237
      那么你的账号很有可能被风控了,无法使用密码登录账号。

      有用户表示 ANDROID_WATCH 这个协议比较容易触发短信验证
      还有用户表示可以 尝试修改密码 之后重新尝试登录

      至于为什么很长一段时间都能很正常的登上,那是因为
      第一次登录成功之后会有快速登录缓存,也就不会走密码登录流程
      快速登录会有以下日志
      I/Bot.12345: Saved account secrets to local cache for fast login.
      但 02-10 上午,腾讯服务器大规模宕机,导致几乎所有人的登录缓存都失效了。

      目前最新的 mirai 版本为 2.14.0

      01月20日

      目前最新的登录修复版本为 2.14.0-RC
      如果有以下登录问题

      net.mamoe.mirai.internal.utils.crypto.DecryptionFailedException... code=6, title=登录失败, message=服务连接中,请稍后再试。(0x6)...

      你可以尝试上升级到 2.14.0-RC
      参考: https://mirai.mamoe.net/topic/1653

      最好使用 mirai-login-solver-sakura 完成登录验证

      以上为 2023 年

      12月18日
      https://github.com/KasukuSakura/mirai-login-solver-sakura
      TxCaptchaHelper 的 后继产品,另外的一整套验证处理工具,优化和方便处理各种验证码。

      出现 code=237, title=安全提醒, message=当前网络不稳定 错误
      请尝试以下方法步骤解决

      删除 bots/.../ 下全部文件 保持机器人账号手机端QQ登录 在手机端QQ 设置/账号安全/登陆设备管理 中将历史设备删除

      10月26日
      出现 code=235, title=温馨提示, message=当前QQ版本 过低 错误
      请尝试以下方法步骤解决

      升级到 2.13.0-RC(2) https://mirai.mamoe.net/topic/1653 修改登录协议. 自动登录默认的登陆协议是 ANDROID_PHONE, 可以改成 ANDROID_PAD
      可以用指令 /autoLogin setConfig 12345 protocol ANDROID_PAD 修改自动登录的协议
      如果你是手动登录, 就附加协议参数 /login 12345 xxxx ANDROID_PAD
      除了 ANDROID_PAD 协议之外 MACOS, IPAD 协议也是可用的 保持机器人账号手机端QQ登录 登录之后完成滑块,之后一般会弹设备验证或者短信验证 如果还是报版本过低,尝试删除 bots/.../device.json ,让mirai 重新生成 设备信息, 重启之后,重复步骤 4(想要生成更可靠的信息可以使用 mirai-device-generator ) 补充说明, 手机端QQ 设置/账号安全/登陆设备管理 中有登录安全相关设置,可以调整之后再尝试

      9月21日

      可以尝试通过下面这个插件生成更可靠的设备信息,记得要先把旧的设备信息 device.json 删除
      https://github.com/cssxsh/mirai-device-generator

      MiraiAndroid 出现 设备授权获取失败,可以尝试清除 device.json, 再重新尝试

      9月8日
      现在我也不知道什么情况了,反正MiraiAndroid导出的文件可能存在一些问题。建议还是通过滑动验证码登录

      7月5日更新
      滑动验证助手已经修复

      以上为 2022 年

      10-29

      如果你正在使用苹果系列的手机,使用最原始的方法来解决滑动验证码

      https://github.com/project-mirai/mirai-login-solver-selenium
      https://docs.mirai.mamoe.net/mirai-login-solver-selenium/

      9月6日更新
      滑行验证助手已失效,请使用MiraiAndroid

      https://install.appcenter.ms/users/mzdluo123/apps/miraiandroid/distribution_groups/release

      8月3日更新
      滑动验证助手(TxCaptchaHelper)新增高速下载地址

      https://install.appcenter.ms/users/mzdluo123/apps/txcaptchahelper/distribution_groups/public

      7月3日更新
      如果你在使用MiraiAndroid进行登录时也遇到了无限要求验证码的问题,请在菜单内重置设备文件或者清除应用数据

      6月23日 更新
      十分不建议在服务器上进行首次登录

      6月22日更新
      只要你遇到了各种导致你无法登录的奇奇怪怪的问题都可以按照下面的步骤来操作,以下操作无效请在下面回复,新开贴的不予回复

      6月7日更新
      Error(title=禁止登录, message=当前上网环境异常,请更换网络环境或在常用设备上登录或稍后再试。, errorInfo=)

      删除 device.json, 对于 mirai-console 位于 bots/**/ 内

      6月6日更新

      所有问题都能使用这个方式解决
      先到这里下载MiraiAndroid https://github.com/mzdluo123/MiraiAndroid/releases/
      下载之后安装到你的手机上,并且完成登录;登录方法在主屏幕右上角的自动登录里,登录过程中需要验证请在通知栏内点击通知完成验证
      登录成功后到左边菜单内找到高级功能,选择你得账号之后导出设备文件(device.json)发送到电脑,并覆盖电脑版文件即可成功登陆

      6月3日更新
      无法进行设备锁验证的解决方案
      临时解决方案: 把 UnsafeDevice 要求设备锁验证提供的链接中的verify改成qrcode即可得到一个二维码,使用手机qq扫描二维码完成设备锁验证

      以上为 2021 年

      无法进行滑动验证码验证的解决方案

      请使用 https://github.com/mzdluo123/TxCaptchaHelper
      项目来手动完成验证码,必须使用手机

      手动完成验证码的方法:
      https://github.com/project-mirai/mirai-login-solver-selenium
      https://docs.mirai.mamoe.net/mirai-login-solver-selenium/

      请注意,必须将手动完成教程里的方式添加 JVM 属性 mirai.slider.captcha.supported (添加参数 -Dmirai.slider.captcha.supported) ,然后将显示的网页url复制到手机完成操作```

      code_text

      cssxsh created this issue in mamoe/mirai closed 自动登录失败,Bot.close 时出现异常导致 Mirai Console 退出 #2740 cssxsh created this issue in mamoe/mirai closed Update docs #2639 StageGuard created this issue in mamoe/mirai closed QRCode login support & Introduce new authorization factory #2502
    • cssxsh

      Weibo Helper 一个简单的将微博转发到QQ的插件
      插件发布 • 微博 weibo • • cssxsh

      140
      0
      Votes
      140
      Posts
      20291
      Views

      cssxsh

      Weibo Helper

      基于 Mirai Console 的 微博 转发插件

      Release
      Downloads
      MiraiForum

      使用前应该查阅的相关文档或项目

      User Manual Permission Command Chat Command

      插件基于PC网页版微博API,使用插件需要登录一个微博账号
      插件初始化时,如果恢复登录状态失败,则会尝试模拟游客

      指令

      注意: 使用前请确保可以 在聊天环境执行指令
      带括号的/前缀是可选的
      <...>中的是指令名,由空格隔开表示或,选择其中任一名称都可执行例如/微博用户 订阅
      [...]表示参数,当[...]后面带?时表示参数可选
      {...}表示连续的多个参数

      本插件指令权限ID 格式为 xyz.cssxsh.mirai.plugin.weibo-helper:command.*, * 是指令的第一指令名
      例如 /微博用户 订阅 的权限ID为 xyz.cssxsh.mirai.plugin.weibo-helper:command.wuser

      [subject]?订阅的接收对象,可选参数, 默认填充当前聊天环境

      登录指令 指令 描述 /<wlogin 微博登录> 登录一个微博账号

      使用指令后,机器人会发送网页登录的二维码
      使用手机微博APP扫描确认登录后
      如果成功登录,则会回复 @用户名#ID 登陆成功的消息

      用户订阅指令 指令 描述 /<wuser 微博用户> <add, task 订阅> [uid] [subject]? 订阅一个微博账号 /<wuser 微博用户> <stop 停止> [uid] [subject]? 取消订阅一个微博账号 /<wuser 微博用户> <detail 详情> [subject]? 查看订阅详情

      uid是用户的ID,可以在用户的主页获得,
      例如 https://www.weibo.com/u/1111681197 的1111681197
      使用订阅指令后,如果成功找到指定用户,则会回复
      对@用户名#ID 的监听任务, 添加完成

      分组订阅指令 指令 描述 /<wgroup 微博分组> <list 列表> 列出当前账号的微博分组 /<wgroup 微博分组> <add task 订阅> [id] [subject]? 订阅一个微博分组 /<wgroup 微博分组> <stop 停止> [id] [subject]? 取消订阅一个微博分组 /<wgroup 微博分组> <detail 详情> [subject]? 查看订阅详情

      id是分组的GID或者TITLE,GID可以在分组的页面获得,
      例如 https://www.weibo.com/mygroups?gid=3893924734832698 的3893924734832698
      也可以通过列表指令获得,使用列表指令之后会按行回复title -> gid
      使用订阅指令后,如果成功找到指定分组,则会回复
      对分组标题#ID的监听任务, 添加完成

      分组订阅指令 指令 描述 /<whot 微博热搜> <add task 订阅> [word] [subject]? 订阅一个微博热搜 /<whot 微博热搜> <stop 停止> [word] [subject]? 取消订阅一个微博热搜 /<whot 微博热搜> <detail 详情> [subject]? 查看订阅详情 博文查看指令 指令 描述 /<wdetail blog 微博详情> [mid] 查看指定微博内容 关注指令 指令 描述 /<wfollow 微博关注> [uid] 关注指定用户 解析微博链接

      机器人会将群里中的微博链接捕获,并将微博内容回复给发送微博链接的人
      这个功能默认开启,通过权限 xyz.cssxsh.mirai.plugin.weibo-helper:quiet.group 设置不开启的群聊

      配置

      位于Mirai-Console运行目录下的config/weibo-helper文件夹下的WeiboHelperSettings文件

      cache 图片缓存位置 expire 图片缓存过期时间,单位小时,默认3天,为0时不会过期 following 是否清理收藏的用户的缓存,默认 true fast 快速轮询间隔,单位分钟 slow 慢速轮询间隔,单位分钟 contact 登录状态失效联系人,当微博的登录状态失效时会向这个QQ号发送消息 repost 微博订阅器,最少转发数过滤器,只对列表订阅生效,默认16 users 微博订阅器,屏蔽用户 regexes 微博订阅器,屏蔽的关键词正则表达式 urls 微博订阅器,屏蔽的URL类型, 屏蔽视频可以尝试填入39 video 发送微博视频文件 emoticon 处理微博表情 picture 图片设置 cover 封面设置 history 历史记录保留时间,单位天,默认 7d timeout Http 超时时间,单位毫秒,默认 60_000 ms forward 以转发消息的方式发送订阅微博 show_url 是否显示url 图片设置

      有四种设置方案

      { type: none, value: {} } 一张也不显示 { type: all, value: {} } 全部显示 { type: limit, value: { total: 3 } } 最多显示total张 { type: top, value: { total: 3 } } 超过total张一张也不显示 quiet.group

      安静群聊, 不解析URL链接, 通过权限系统配置
      /perm add g12345 xyz.cssxsh.mirai.plugin.weibo-helper:quiet.group

      安装 MCL 指令安装

      ./mcl --update-package xyz.cssxsh:weibo-helper --channel stable --type plugin

      手动安装 运行 Mirai Console 生成plugins文件夹 从 Releases 下载jar并将其放入plugins文件夹中
    • 1
    • 2
    • 3
    • 4
    • 3 / 4