Code Monkey home page Code Monkey logo

soulsign-chrome's Introduction

soulsign-chrome

autoRelease

功能

自动签到,每天只要打开浏览器就可以自动签到,不用填写账号密码,不用手动抓取 cookie,只需要 添加脚本+登录账号

使用方法

  1. 手动安装: 下载build.zip并解压,选项->更多工具->扩展程序->开发者模式->加载已解压的扩展程序
  2. chrome 网上应用店安装(由于不能通过审核,没有更新了)

firefox 安装

安装脚本

  1. 最简单的方法,点击插件图标->任务管理->脚本推荐->挑选安装
  2. 第三方或者自用脚本安装方法, 点击插件图标->任务管理->添加脚本->上传脚本文件/粘贴脚本代码/拖拽脚本文件/粘贴脚本链接

更新:

20181207: 支持用户填写参数,用于用户填写账号密码进行自动登录的场景。使用方法参考 static/demos/music.163.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: 支持 查看日志 页面
image 20200831: 支持类似puppeteer模拟点击等功能, 使用说明
20230817: 支持 localStorage 权限

计划:

  1. 低版本支持(自带 babel) 无明显需求,所以放弃
  2. 脚本更新(手动/自动) ✅
  3. 脚本发布站点

脚本开发

示例:

// ==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;
};

说明:

  1. 前面的 ==UserScript== 不可少
  2. @name 脚本名称
  3. @namespace 脚本官方网址
  4. @version 脚本版本
  5. @author 脚本作者
  6. @loginURL 登录链接(帮助用户通过这个链接去登录)
  7. @expire 会话过期时间(毫秒),系统会隔一段时间调用一次 check 接口检查在线状态并保持会话活跃
  8. @freq 脚本执行频率(毫秒),系统会隔一段时间调用一次 run 接口执行签到(默认每天调一次)
  9. @domain 请求域名(向用户申明该脚本会访问的域名)
  10. @domain 另一个请求域名(@domain 支持多个)
  11. @param 参数键 [参数类型,选填,默认 text] 参数说明
  12. (@author,@name)唯一确定一个脚本,重复会被当成一个脚本
  13. 后面的 ==/UserScript== 不可少

更多demos

日志配置

预览:

image

示例:

输出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,
    //         },
    //     ],
    // }

说明:

  1. 如果你利用 标准输出格式 开发,请尽量使用 tools.version{ inputLower: 1, inputEqual: 0, inputHigher: -1 } = function (string) 对输出格式做兼容处理,object 在旧版本插件中会以 JSON 形式展示在 执行结果 处,观感可能会很差。
  2. .log | 额外的其他属性 的内容完全由脚本内部定义,初衷是更好地开发和请求用户反馈信息,为非必要选项,所以默认不可复制。
  3. 细节/日志 页面可以 复选 分域名 复制,默认可复制的信息中有 domain, url, message, errno,其他信息需要用户自行开启选项,添加后复制。
  4. 细节/日志 中的 域名 不仅拥有 执行结果 的两种颜色,还支持 errno = 2 : orangeerrno = 3 : orchiderrno = 4 : pinkerrno = 5 : brown
  5. 表单展开项 中的 JSON 树默认仅展开一层。

模拟点击

请参考 demo 脚本 网易云音乐

思路

作者以前用puppeteer做过一套签到工具,用 nodejs 做过签到站点,不过两者都有一个短板--拿 cookie 不方便。做成插件的好处就是不用管理 cookie,插件不用记录 cookie 信息,用户不用抓取 cookie 只需要在浏览器登录账号就行了。

soulsign-chrome's People

Contributors

dependabot[bot] avatar greenskinmonster avatar inu1255 avatar kukat avatar laev avatar litecoder avatar marvolo666 avatar miiwu avatar sununs avatar sunzehui avatar sy-records avatar teaim avatar winrey avatar yi-xu-0100 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

soulsign-chrome's Issues

bilibili直播签到在线状态判断出错

如题,每次打开浏览器就会提示bilibili直播在线状态为未登陆,打开登陆网页发现其实已经登陆了,但脚本的登陆状态仍然是未登录。签到功能及签到状态获取正常。因此每次必须在插件里面手动执行一次签到脚本才能签到。

吾爱破解论坛签到bug

我的吾爱破解论坛签到总是提示不在线(其实是在线的),然而任务还是自动做了的,就是提示不在线,是不是检测在线状态有点问题,不知道怎么调查相关的错误,感谢作者制作!

能否增加一个动态控制运行周期的机制(脚本定义下次执行时间)

你好,目前通过固定的周期频率控制脚本定期运行,效果很好;
但在使用中有一种周期性的任务,其频率并不是固定不变化的,希望能增加脚本指定下一次运行时间的功能。能够指定时间去执行也能让脚本玩出非常多的花样……
另外脚本如何持久化存储变量的方式没搞懂。。。看了别的脚本,好像也没用到。
感谢

举2个例子:
1.某网站允许每8小时领取一次奖励,当天脚本第一次在00:00:00运行,如果本次是00:00:01这个时间领取成功的,下次就要08:00:02才能领取,下次领取的时间是不固定的,当然了,我们可以给它足够大的间隔时间,比如每8小时1分钟运行一次,或者每8小时运行一次然后让脚本去判断去延时执行(从页面判断需要等待多久,然后等待这个时间过去再继续执行脚本),缺点是脚本复杂性增加,脚本执行时间不确定。。。
2.还是例子1中的问题,看起来问题解决了,其实并不是,因为实际的奖励领取时间间隔,是跨日的,所以虽然第一次是在00:00:00执行,实际领取奖励的时机可能第二天就会被第一天的延时影响,导致第二天可能要00:02:00,以此类推,如果脚本的运行时间是固定的频率,脚本执行所需要等待的时间越来越长(见下面的预测)
第一天
00:00:01
08:00:02
16:00:05
第二天
00:00:06
08:00:07
16:00:10
第N天
00:30:01
(如果还是固定在00:00:00运行,这个代码就要一直等待半小时才能继续执行完成,实在是不好)

提问

类似www.chinapyg.com这样的论坛网站要怎么写脚本?

希望能有一个脚本制作教程

如果能有一个大致步骤来引导签到脚本的制作可能会更好地有更多的脚本 减轻作者负担
或者说能够利用qiandao.today的公开脚本来进行改造 以适配魂签?
希望作者有所采纳!

连续签到失败提醒功能

希望能加入连续签到失败后,弹窗或图标改变,提醒使用者的相关功能。

1、虽然任务管理里面有显示,但在配置好脚本后,再打开任务管理的频率很低。
2、在线状态检测的提醒,可以变相解决这个问题,但不够直接,也有潜在问题
(1)当签到接口变化,而在线状态接口无变化时
(2)对过于频繁访问的担忧(v2ex 的限制)

大神,能否增加一个优酷“零钱+”的签到脚本?

优酷APP的“会员免费送”里有个“零钱+”的活动,是优酷和苏州银行联合搞的活动,
分享网址如下:https://ebank.suzhoubank.com/channel/WalletActivity/dist/index.html?Channel=YOUKU&sharekey=d0aee283993dbdb8f423c6e130e09e2e6#/index

我计算了一下,里面1999元的那个套餐性价比挺高,也能随时取出,因为这点钱扔余额宝里一年利息也才70不到,放到这个活动里还能每天领日卡,比买优酷一年VIP划算多了,就是每天领太麻烦 -_-||

求大神做个脚本可好?这个脚本我不会啊 T_T

Firefox 版无法签到

扩展版本 :1.0.5
Firefox 版本:69.0.3 (64 位)

@inu1255

所有签到脚本对应的网站均已登陆,但扩展的任务管理中均显示“不在线”,执行脚本也出现类似“请先登陆”的提示,我刚从 Chrome 转到 Firefox ,发现 Firefox 的扩展版本比 Chrome 低了好多,上一次的更新时间也有点久了,麻烦请更新一下,谢谢

请问能不能自定义签到频率,按小时,按分钟之类的

你好,目前翻看了设置和Issues,没有找到控制签到频率的地方,比如设置一天签到几次,或者多少秒,多少分钟签一次(一方面有少数的网站一天可以签多次,有了频率控制后,也可以做很多其他的事情了,不再限于签到),谢谢

脚本的 param 在哪里传进去?

支持用户填写参数,用于用户填写账号密码进行自动登录的场景。使用方法参考 public/demos/m.jd.js

看了m.jd.js的脚本,没看明白这个param.name / param.pwd 在哪里传?

张大妈脚本失效

RT,SMZDM的签到在大概两个星期前失效了…有时间的话麻烦修复一下呀

domain 配置失败

按照大佬给的脚本格式 模仿写自用脚本的时候
不知道签到接口后面的一些网址怎么填写
小白一个 希望大佬能指点一下,研究了半天 无论怎么填写都是domain 配置失败

希望可增加贴吧签到脚本

你好,很感谢开源此插件,对于我来说确实方便不少,这边有一个需求,就是如果能够满足贴吧一键签到就更好了。

soulsign-chrome/src/common/utils.js

能否在判断 @Domain 的时候支持二级域名的的泛行?否则京东PC端,店铺签到没法做啊;目前我自己改,碰到的问题是 chrome 开发者安装解压版 出现问题,所以目前卡在这儿了

什么值得买签到失败

似乎是更改了入口导致的失效。
默认是定位到个人中心,但个人中心已经不能签到了。

请问如何模拟执行js方法,来签到

首先感谢您开发的插件,非常棒!
1.我尝试学习写了几个脚本,直接访问某个url的,来签到可以实现。
2.请问有的网站,签到是执行js方法的,该如何编写脚本,看了您的那些示例,没找到可以模仿的,能否提供下帮助,写个例子,谢谢。
<a class="label label-default" href="#" onclick="do_signin(this);"><b>签 到</b></a>

脚本发布平台有bug

bug1:
修改的时候切到基础一次下面就会有一个
};
打开的时候会多出两个
};
};
越来越多要手动删除

bug2:
脚本发布平台公开的脚本改成私有以后仍旧会显示。但是报错。

问题1:希望可以删除脚本

多domain支持有问题

多个doman会出现 domain配置不正确 例如京东app签到加翻牌 。你把两个domian 倒换下顺序他会报domain配置不正确 重新写一个脚本 exports.run = async function() { 请求两个不同的子站会出现domain配置不正确 }

请问如何解析axios返回的HTML数据

我自己写了个脚本,但是那个网站是登陆后自动签到,所以我需要直接访问登陆后的网站主页,然后通过判断返回的HTML数据中是否包含某个DOM来判断是否签到成功。

所以通过axios.get()获取这个网站的data数据是html,请问我应该怎么解析呢

我是个java程序员,对js、node了解不多。。

v2ex 的签到脚本会导致网页登录 v2ex 的时候一直提示验证码错误

具体表现就是用了一阵子之后 v2ex 自动登录会失效,然后手动登录会一直提示验证码失败。只要一关上魂签里的 v2ex 的脚本然后 Shift + F5 强制刷新页面再输入正确的验证码就可以登录成功。

这个问题已经是第二次出现,上次关掉很多拓展才登录上去不知道到底是谁的问题。今天只关掉魂签就可以,证明就是魂签的问题。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.