-
为 多个 类似站点签到
-
基本普适
SSPANEL
Powered by SSPANEL 搭建的站点 -
可扩展为
Discuz!
Powered by Discuz! 等的其他类型站点
签到
-
引用
mmc
var mmc = await require(site_config.core); var res = await mmc(site_config, param_config, config = {});
-
mmc
传入参数-
site_config
: 网站配置-
site_config
成员-
.core
string:地址 -
.domain
string[]:域名i.cat
(https://) 和http(s)://i.dog
均支持 -
.path
object:路径i/cat
(/) 和/i/dog
均支持,且多个之间为逻辑或
关系.log_in
string[]:登录网址的.sign_in
string[]:签到网址的
-
.keyword
object:关键字多个之间为
逻辑或
关系,且优先级低于param_config
中对应的选项.online
string[] -> regexp[]:在线的.signed
string[] -> regexp[] + optional:已签到的.signing
string[] -> regexp[] + optional:正签到的
-
.hook
object:钩子.get_log_in
async function (site, param){}:获取网址登录信息的site
object:当前网站param
object:脚本头中定义的参数
.post_sign_in
async function (site, param, data){}:推送网址签到信息的site
object:当前网站param
object:脚本头中定义的参数data
string:.get_log_in
中的返回值
.notify_signed
async function (array){} + optional:自定义已经签到信息的array
string[]:.keyword.signed
中与.get_log_in
中的返回值正则匹配成功
后的数组
.notify_signing
async function (array){} + optional:自定义正在签到信息的array
string[]:.keyword.signing
中与.post_sign_in
中的返回值正则匹配成功
后的数组
.filter_unbefitting
async function (data){} + optional:过滤不适配的data
string:同.post_sign_in
-
site
成员scheme
string:协议domain
string:域名url
object:URLget
string:配合axios.get()
使用post
string:配合axios.post()
使用
-
optional
表示
可选的
-
x -> y
表示
x
、y
均支持
,且x
会默认转换
为y
-
(x)
表示
x
为省略的部分
-
-
例子
var sspanel = { core: "https://soulsign.inu1255.cn/script/Miao-Mico/mmc.js", // 地址 domain: [], // 域名 path: { log_in: ["auth/login"], // 登录网址主机的 sign_in: ["/user/checkin"], // 签到网址主机的 }, // 路径 keyword: { online: ["我的", "节点"], // 在线的 signed: [/明日再来/], // 已经签到的 }, // 关键词 hook: { get_log_in: async function (site, param) { /* 获取登录信息 */ return { code: 0, data: await axios.get(site.url.get) }; }, // 获取网址登录信息 post_sign_in: async function (site, param) { /* 推送签到信息 */ let data_psi = await axios.post(site.url.post); /* 返回信息 */ return { code: 0, data: data_psi.data.msg }; }, // 推送网址签到信息 notify_sign_in: async function (array) { /* 自定义 已签到 通知消息 */ return { code: 0, data: array }; }, // 通知网址签到信息 }, // 钩子 };
-
-
param_config
: 调用者的脚本参数-
param_config
可选成员-
domain
:域名格式同
site_config.domain
-
path_log_in
:登录路径 -
path_sign_in
:签到路径格式同
site_config.path
中对应的选项 -
keyword_online
:在线的关键字 -
keyword_signed
:已签到的关键字 -
keyword_signing
:正签到的关键字格式同
site_config.keyword
中对应的选项
均使用
,
分隔 -
-
例子
// ==UserScript== // ... // @grant require // @param domain 域名,<i.cat>,<http(s)://i.dog> // @param path_log_in 登录路径,<i/cat>,</i/dog> // @param path_sign_in 签到路径,<i/cat>,</i/dog> // @param keyword_online 在线关键字,</cat/>,<dog> // @param keyword_signed 已签到关键字,</cat/>,<dog> // @param keyword_filter 过滤正常消息关键字,</cat/>,<dog> // ... // ==/UserScript==
-
-
config= {}
:配置-
dben = false
bool:是否开启debug
模式dben = debug_enable
此时会记录和输出一些日志
-
ssvs = false
function:引入soulsign
版本ssvs = soulsign_version
兼容旧版本
-
-
-
res
成员-
res.about
:关于- 返回 关于
-
res.debug(level = 0)
:调试信息- 返回 根据
level
决定的部分或全部内部变量值
- 返回 根据
-
res.record_log(site, code, message)
:记录日志- 返回 参数
message
- 返回 参数
-
res.update_config(site_config, param_config)
dev:更新配置- 无
-
res.publish_pipe(site, message)
:发布管道信息- 返回
message
- 返回
-
res.subscribe_pipe(site)
:订阅管道信息- 返回
res.publish_pipe(site, message)
中的message
- 返回
-
res.sign_in(full_log = false)
:登录以下所列均为
soulsigh v2.1.0
以下适用- full_log = true
- 成功:❤️ mmc ❤️ < [ ✔ 网站: 提示语] >
- 失败:❤️ mmc ❤️ < [ ❗ 网站: 问题] / [ ✔ 网站: 提示语] >
- full_log = false
- 成功:❤️ mmc ❤️
- 失败:❤️ mmc ❤️ < [ ❗ 网站: 问题] >
<...>,意为里面的内容是一个单元
- full_log = true
-
res.check_online()
:检测是否在线- 成功:
true
- 失败:
false
- 成功:
-
-
例子
-
SSPANEL
等的普适签到脚本 - 管理多个站点,需配置
@param domain
或.domain
- 管理检测关键词,需配置
@param keyword_xxx
或.keyword.xxx
- 分离核心脚本,应用脚本轻量化
- 多种网站签到方式,需配置
.hook.xxx
- 每种网站签到方式可以自动匹配多个不同网址,需配置
@param path_xxx
或.path.xxx
- 每次调用脚本均刷新配置
- 多个网站域名设置,已支持泛域名
*
,兼容考虑,仍未移除*.*
&*.*.*
&*.*.*.*
- 自定义
已签到
通知文字,需配置.hook.notify_sign_in
和.keyword.signed
为均有效
- 渲染、格式化
执行结果
- 处理
未登录
时的多网站登录问题,需自行分别登录
,点击执行结果
进入日志
页面,即可看到域名列表
,点击域名栏
可跳转登录 - 支持过滤是否未适配的网站,需配置
hook.filter_unbefitting
- 筛选每种网站的
非敏感信息
,用作反馈 - 完全使用
表驱动法
重构,减少相似的表,缩减代码体积小声哔哔
-
增加
return.detail.log
,会记录每次网络请求的响应数据每个域名下一般有 2 条响应数据,即
.hook.get_log_in()
和.hook.post_sign_in()
中的两次axios
;我并不会收集你的数据;
如果需复制反馈,请 务必 做 脱敏处理,里面会包含你的 个人信息。
-
适配
*
,泛域名 -
对于
关键字
,优先匹配用户配置 -
增加
hook.notify_signing
,个性化正在签到消息提示,使用关键字keyword.signing
,可选 -
增加
hook.filter_unbefitting
,过滤不适配的网站 -
修改
hook.post_sign_in
,仅用于推送配置,然后返回响应数据 -
重命名,
filter
->signing
,notify_sign_in
->notify_signed
-
支持兼容不同
soulsign
版本 -
修复异常无法抛出的问题
变更日志
- 重构
assert()
,使用operate_table()
- 改良
discuz.?.js
,获取哈希值的办法 - 修改
match_keyword()
,支持正/反性关键词
- 增加
.keyword.filter
,可以过滤消息并设置为非警告
级别 - 修复
discuz.k.js
,消息提示问题
- 修复
网络连接中断时
的异常情况
- 增加
discuz.dc
&discuz.k
- 支持
param_config.path_xxx
¶m_config.keyword_signed
- 重写
config_path()
,用到了operate_table()
- 默认
param_config
可选项均加入应用脚本 - 修复
param_config.keyword_signed
读取问题 - 修复
method_site()
中多个path
自动更新的规则问题,梅开二度? - 修复
notify_sign_in()
的参数问题
- 支持
hook.notify_sign_in
,可自定义已签到的通知消息 - 增加
operate_table()
&operate_item()
,表驱动 - 重写
config_xxx()
,用到了operate_xxx()
- 增加
时间戳
,在system_log_core()
中 - 修复
method_site()
中多个path
不自动轮转的问题 - 修复
nexusphp.js
- 修改
match_keyword_list()
为match_keyword()
- 增加
eval
权限,便于模块化 - 增加
online / signed
关键字,去除positive / negaitive
关键字 - 增加
system_xxx()
,一系列 - 增加
nexusphp.js
- 重写
hook
部分,用eval
- 清空
site_config.domain
,由于更新会覆写个人的配置,现需手动配置
- 增加
persistence_log()
,读取持久化的消息,就是另一个缓存,很少更新 - 修改
record_log()
,可选消息持久化 - 修复
method_site()
中的error
,现改为message
,无法作用 - 修复
#1
,判断是否已经签到关键词问题 - 增加
readme
,在application
目录中 - 增加
gitignore
- 移除
mmc.js
内部对sspanel.js
的集成,hook
- 配置
sspanel.js
的hook
- 修复当
debugs.enable != true
时,没有错误抛出
- 修复
@domain
配置问题 - 修改
natfrp.js
的提示信息,这个脚本可能暂时或永久失效,因为有了hCaptcha
验证 - 修复部分变量名
- 修复多个脚本调用不会刷新配置,取消缓存的特性
- 修改了
site_config
的格式 - 支持多个
path
,即支持一种签到方式下的多种网址 - 修改文件目录
- 增加
about
- 修改
assert_type()
- 修改
view_log()
&sign_in()
,支持结果全输出 - 增加更多
system_log()
,在debug
运行时记录日志
- 增加
飘云阁.js
- 增加
natfrp领流量.js
- 证明可以
hook
为其他类型签到,决定签到方式
- 修改了
site_config
的格式 - 修复了更新
domain
时,sites
内索引不对的情况 - 改变部分
var
为let
,主要是函数内地局部变量 - 增加
update_config()
dev,用来自动更新配置参数
- 支持在
hook
中引入param
- 支持
pipe
,hook
间相互通信 - 增加
asserts
,支持适应不同参数列表,主要是有无 @param - 支持
configs
,存储传入的参数,site_config
¶m_config
- 增加
debugs
- 增加
system_log()
,方便调试,record_log()
也会调用它 - 增加
debug()
,支持根据等级输出
- 支持
hook
,可能能支持其他网站类型了
- 形成模板
- 修改‘域名’文本框提示的文本
- 修改‘登录后应该有的关键字’文本框提示的文本
- 支持配置多个域名
- 支持配置检查在线的关键字
1.1.0stable
- 修复检测在线的问题
- 发布脚本
所有给予灵感和帮助的人儿们