// ==UserScript==
// @name 阅次元签到
// @namespace https://soulsign.inu1255.cn/scripts/174
// @version 1.0.6
// @author yi-Xu-0100
// @loginURL https://www.abooky.com/member.php?mod=logging&action=login
// @updateURL https://soulsign.inu1255.cn/script/yi-Xu-0100/阅次元签到
// @expire 1200000
// @domain www.abooky.com
// @param name 账户
// @param pwd 加密密码
// ==/UserScript==
/**
* @file 阅次元签到脚本
* @author yi-Xu-0100
* @author Vicrack
* @version 1.0.6
*/
/**
* @module 阅次元签到脚本
* @description 本脚本借鉴 [Vicrack 的鱼C论坛脚本](https://soulsign.inu1255.cn/scripts/167),提供设置用户名和密码方式自动登陆,其中密码为真实密码的 MD5 加密后的密钥。
*
* 脚本内容讨论请转至:[仓库 issue](https://github.com/yi-Xu-0100/soulsign-scripts/issues)
*
* 签到插件讨论请转至:[官方 issue](https://github.com/inu1255/soulsign-chrome/issues)
* @param {string|string[]} [domain = www.abooky.com] - 请求的域名
* @param {string} [expire = 1200000] - 在线检查频率
* @param {string} [namespace = https://soulsign.inu1255.cn/scripts/174] - 脚本主页
* @param {string} [loginURL = https://www.abooky.com/member.php?mod=logging&action=login] - 登录链接
* @param {string} [updateURL = https://soulsign.inu1255.cn/script/yi-Xu-0100/阅次元签到] - 脚本更新链接
* @param {string} name - 账户
* @param {string} pwd - 加密密码
*/
exports.run = async function (param) {
let resp = await axios.get('https://www.abooky.com/plugin.php?id=k_misign:sign');
let signhtml = resp.data;
if (signhtml.includes('您的签到排名')) return '重复签到';
let result = signhtml.match(/<a id="JD_sign" href="(.*?)"/);
if (result[1] == 'member.php?mod=logging&action=login') throw '未登录';
var { data } = await axios.get('https://www.abooky.com/' + result[1]);
if (/需要先登录/.test(data)) throw '未登录';
let resp1 = await axios.get('https://www.abooky.com/plugin.php?id=k_misign:sign');
let signhtml1 = resp1.data;
if (signhtml1.includes('您的签到排名')) {
let result1 = signhtml1.match(
/<input type="hidden" class="hidnum" id="lxreward" value="(.*?)"/
);
return '积分奖励: ' + result1[1] + ' 银币';
} else throw '未成功签到';
};
exports.check = async function (param) {
var resp = await axios.get('https://www.abooky.com/home.php?mod=spacecp&ac=usergroup', {
maxRedirects: 0
});
if (/我的用户组/.test(resp.data)) return true;
else {
var resp = await axios.get('https://www.abooky.com/member.php?mod=logging&action=login', {
maxRedirects: 0
});
let loginhash = resp.data.match(/<div id="layer_login_(.*?)"/);
let formhash = resp.data.match(/<input type="hidden" name="formhash" value="(.*?)"/);
var resp = await axios.post(
'https://www.abooky.com/member.php?mod=logging&action=login&loginsubmit=yes&inajax=1&loginhash=' +
loginhash[1],
{
formhash: formhash[1],
referer: 'https://www.abooky.com/./',
username: param.name,
cookietime: '2592000',
password: param.pwd,
questionid: 0,
answer: ''
},
{
transformRequest: [
function (data) {
let ret = '';
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&';
}
return ret.substring(0, ret.length - 1);
}
],
headers: {
Origin: 'https://www.abooky.com/',
'Upgrade-Insecure-Requests': '1',
Referer: 'https://www.abooky.com/member.php?mod=logging&action=login'
}
}
);
if (/errorhandle/.test(resp.data)) throw resp.data.match(/errorhandle_\('(.*?)',/)[1];
var resp = await axios.get('https://www.abooky.com/home.php?mod=spacecp&ac=usergroup', {
maxRedirects: 0
});
return /我的用户组/.test(resp.data) ? true : false;
}
};