baipiaoyun.xyz.js

// ==UserScript==
// @name              白嫖云签到
// @namespace         https://soulsign.inu1255.cn/scripts/293
// @version           1.0.2
// @author            yi-Xu-0100
// @loginURL          https://baipiaoyun.xyz/auth/login
// @updateURL         https://soulsign.inu1255.cn/script/yi-Xu-0100/白嫖云签到
// @expire            900000
// @domain            baipiaoyun.xyz
// @param            name 账户
// @param            pwd 密码
// ==/UserScript==

/**
 * @file 白嫖云签到脚本
 * @author yi-Xu-0100
 * @author marvolo666
 * @version 1.0.2
 */

/**
 * @module 白嫖云签到脚本
 * @description 本脚本借鉴 [marvolo666 的通用 demo 模板](https://github.com/inu1255/soulsign-chrome/blob/master/public/demos/ShadowSocksR.js),提供设置用户名和密码方式自动登陆。
 *
 * 脚本内容讨论请转至:[仓库 issue](https://github.com/yi-Xu-0100/soulsign-scripts/issues)
 *
 * 签到插件讨论请转至:[官方 issue](https://github.com/inu1255/soulsign-chrome/issues)
 * @param {string|string[]} [domain = baipiaoyun.xyz] - 请求的域名
 * @param {string} [expire = 900000] - 在线检查频率
 * @param {string} [namespace = https://soulsign.inu1255.cn/scripts/293] - 脚本主页
 * @param {string} [loginURL = https://baipiaoyun.xyz/auth/login] - 登录链接
 * @param {string} [updateURL = https://soulsign.inu1255.cn/script/yi-Xu-0100/白嫖云签到] - 脚本更新链接
 * @param {string} name - 账户
 * @param {string} pwd - 密码
 */

const _domain = 'baipiaoyun.xyz';
const _remember_me = 'week';

let run = async function (param) {
  if (!check(param)) throw '需要登录';
  var resp = await axios.post(`https://${_domain}/user/checkin`);
  if (/成功/.test(resp.data.msg)) return resp.data.msg;
  else if (/您似乎已经签到过了/.test(resp.data.msg)) return '重复签到';
  else if (/获得了 \d+MB 流量/.test(resp.data.msg)) return resp.data.msg;
  else throw resp.data;
};

let check = async function (param) {
  var resp = await axios.get(`https://${_domain}/user`);
  if (/用户中心/.test(resp.data)) return true;
  else {
    let resp = await axios.post(`https://${_domain}/auth/login`, {
      email: param.name,
      passwd: param.pwd,
      remember_me: _remember_me
    });
    return /登录成功/.test(resp.data.msg);
  }
};

module.exports = { run, check };