自动签到,每天只要打开浏览器就可以自动签到,不用填写账号密码,不用手动抓取cookie,只需要 添加脚本+登录账号
firefox 安装
20181207: 支持用户填写参数,用于用户填写账号密码进行自动登录的场景。使用方法参考 public/demos/m.jd.js
, 需要版本1.0.4+
20190326: 支持引用外部js,支持获取指定网页的cookie
示例/public/demo/xiami.js
20190428: 支持域名模糊匹配, *.baidu.com 将匹配 xxoo.baidu.com 或 www.baidu.com 但不能匹配 baidu.com
20191205: 代码重构,清理了一些逻辑,将任务管理等操作统一到了后端,保证数据一至性;增加导入导出功能;增强脚本安全性,新增@grant用于权限申请
20191208: 增加了返利捐赠开关, 访问https://www.jd.com/
时将跳转到作者的返利链接
20191218: 优化代码结构,支持脚本导出/导入,增加脚本网站
20200827: 支持 查看日志
页面
20200831: 支持类似puppeteer模拟点击等功能, 使用说明
示例:
// ==UserScript==
// @name v2ex签到
// @namespace https://github.com/inu1255/soulsign-chrome
// @version 1.0.0
// @author inu1255
// @loginURL https://www.v2ex.com/signin
// @expire 900e3
// @domain www.v2ex.com
// ==/UserScript==
/**
* 签到接口,可以使用axios库发起请求,请求url域名必须通过@domain声明
* throw 签到失败并抛出失败原因
* return 签到成功并返回成功信息
*/
exports.run = async function() {
var ret = await axios.get('https://www.v2ex.com/mission/daily');
if (ret.status != 200) throw '需要登录';
if (/每日登录奖励已领取/.test(ret.data)) return '已领取';
let m = /redeem\?once=(.*?)'/.exec(ret.data);
if (!m) throw '失败1';
await axios.get('https://www.v2ex.com/mission/daily/redeem?once=' + m[1]);
var ret = await axios.get('https://www.v2ex.com/mission/daily');
if (/每日登录奖励已领取/.test(ret.data)) return '成功';
throw '失败2';
};
/**
* 检查是否在线接口,可以使用axios库发起请求,请求url域名必须通过@domain声明
* return true 代表在线
*/
exports.check = async function() {
var ret = await axios.get('https://www.v2ex.com/mission/daily');
return ret.status == 200;
};
说明:
更多demos ps: 作者自己写的脚本用到了async/await不支持低版本浏览器
预览:
示例:
输出
指export.run()
的返回值
标准输出格式object
{
summary: "签到成功", // `执行结果`,可渲染 `html`
detail: [
{
domain: "www.example.com", // `细节/日志` 中的 `域名`
url: "https://www.example.com", // `细节/日志` 中的 `域名` 的跳转链接
message: "获得 1 积分", // `细节/日志` 中的 `消息`,格式同 `执行结果`
errno: false, // 成功,errno = (false || 0);失败,errno = (true || !0)
log: {
data: "some_data",
param: {
param1: 1,
param2: "some_string",
},
}, // 或任何其他的额外属性,类型和数量不限,其将会在 `表单展开项` 中出现
},
],
}
兼容输出格式string
"签到成功"
// 将默认转化为 `标准输出格式`,如下所示
//
// {
// summary: "签到成功",
// detail: [
// {
// domain: @domain[0],
// url: @loginUrl,
// message: "签到成功",
// errno: throw ? true : false,
// },
// ],
// }
说明:
标准输出格式
开发,请尽量使用 tools.version
{ inputLower: 1, inputEqual: 0, inputHigher: -1 } = function (string) 对输出格式做兼容处理,object
在旧版本插件中会以 JSON
形式展示在 执行结果
处,观感可能会很差。.log | 额外的其他属性
的内容完全由脚本内部定义,初衷是更好地开发和请求用户反馈信息,为非必要选项,所以默认不可复制。细节/日志
页面可以 复选
分域名 复制
,默认可复制的信息中有 domain
, url
, message
, errno
,其他信息需要用户自行开启选项,添加后复制。细节/日志
中的 域名
不仅拥有 执行结果
的两种颜色,还支持 errno = 2 : orange
、errno = 3 : orchid
、errno = 4 : pink
、errno = 5 : brown
。表单展开项
中的 JSON
树默认仅展开一层。作者以前用puppeteer做过一套签到工具,用nodejs做过签到站点,不过两者都有一个短板--拿cookie不方便。做成插件的好处就是不用管理cookie,插件不用记录cookie信息,用户不用抓取cookie只需要在浏览器登录账号就行了。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型