缘由

个人比较喜欢在起点读书,但是推荐票需要经验值等级23级才能获得3张实在有点顶不住,查了一下只有网页版每天在线时长120个经验值领取比较靠谱,但是领取时间一共要185分钟,所以就查了一下代码做了一个自动领取经验值的Chrome插件。

原理

原理很简单,到时间直接向起点api发送请求即可领取经验值,但是起点最近又更新完善了安全措施以后会验证所有请求的ip地址导致无法将这个程序扔到服务器上(起点新电脑登录有很多步的验证),所以只能做成插件在本地跑了。

可以看到URL就是https://my.qidian.com/ajax/Score/Receive再加两个参数:token和referobject,也就是第几个经验值,那么就很好办了,做了个倒计时的function以及一个get的function。主要代码如下:

链接起点api的函数:writeLog和stop是我的日志函数以及停止倒计时的函数

const sourceURL = "https://my.qidian.com/ajax/Score/Receive";// 获取经验值
function getEXP(callback){writeLog("尝试领取第 " + referObject + " 个在线时长奖励");$.get(sourceURL, {"_csrfToken": token, "referObject": referObject}, function(data){console.log(data);if(data.msg != null){if(data.msg == successMsg){console.log("领取成功");writeLog("领取成功:第 " + referObject + " 个在线时长成功领取");callback(0);}else{console.log(data.msg);stop("失败:原因" + data.msg + ",第 " + referObject + " 个在线时长未领取");callback(10);}}else{console.log("账户失效,无法访问");stop("失败:原因账户失效,请重新登录,程序已暂停");}// 网络错误}).fail(function(err){stop("失败:原因网络错误:" + err.status + ": " + err.statusText);console.log("网络错误 " + err.status + ": " + err.statusText);reconnect();});
}

倒计时的函数就很简单了,这边设置的时间间隔是1秒目的是为了更新我在popup页面的显示,refresh是我更新下一个倒计时的函数。

// 领取倒计时
function countdown(){writeLog("计划于 " + timeleft + " 秒后领取在线时长奖励");if(p2countdown != null){clearTimeout(p2countdown);console.log("p2countdown: clear");}p2countdown = setInterval (function () {timeleft--;console.log("timeleft: " + timeleft);if(timeleft <= 0){clearTimeout(p2countdown);console.log("p2countdown: clear");getEXP(function(time){refresh(time);});}}, 1000);
}

几点说明:

  1. 这个插件完全是在你前端浏览器上运行的,所以你不能关闭浏览器,但可以去访问其他页面,整体运行时间是185分钟,也就是3个多小时,你每天打开浏览器的时间应该就够了
  2. 这个插件只会访问你起点的两个cookie:一个是你的token,一个是你的阅文账号,token的有效期大约在48-60小时,所以最好1-2天检查一下起点登录状态,插件里我也进行了自动检查账户有效性。

其它

个人兴趣(纯属闲的),又去获取了起点历史经验值记录然后做了一个可视化图表出来,觉得挺好看:

大家有什么想法欢迎留言或者QQ群交流:511101539

起点在线时长经验值自动领取插件相关推荐

  1. android 统计app使用时间,android开发之app在线时长统计sdk开发

    引言: 很多app的在线时长统计都是通过在activity的生命周期中埋点来完成的.我这里既然是封装成sdk,当然就不能这样来了.封装sdk的规则,我想大家都清楚,入参尽量少,回调尽量全,权限尽量不要 ...

  2. QQ在线时长等级说明

    腾讯QQ 2004II beta1全新推出在线时长功能,通过累积在线时长,您就可以获取相应的QQ等级.累积在线时长等级将有机会参加我们即将推出的奖励活动和享受相关的优惠服务,而不影响正常的QQ使用. ...

  3. mysql 统计时长_使用 mysql 统计平均用户在线时长

    在表中,记录了用户 login/logout 的时间点(unix时间).现在需要确定当日用户的在线时长总和,与平均在线时长. 简单的说,就是要求出匹配 userid 的 login/logout ti ...

  4. 时间大盗:用ac -d查看用户每天在线时长,居然高于24小时

    ac是linux下很有意思的命令,可以统计用户的在线时长 按man ac的解释 AC(1) General Commands Manual AC(1)NAMEac - print statistics ...

  5. 统计app用户在线时长_「云工作普及系列」2.如何实时统计工作时长,提高工作效率

    记上节我们讲了[1.如何注册云工作平台]之后,接下来一起探索下该平台提供的各个产品功能.今天主要讲一下如何它的实时统计工作时长是怎么实现的? 我们先来了解一下它的工作时长实时统计的功能. 一,从web ...

  6. 统计app用户在线时长_优质的APP推广渠道,应该如何筛选?

    本文3187字,阅读时间约8分钟 随着移动互联网行业的快速发展,APP的推广渠道越来越多样化,但是对于APP运营推广人员来说,渠道的质量远比数量更加重要,有时候投放一百个普通渠道都不如投放一个优质渠道 ...

  7. 设置自动关门时长_自动上锁,鹿客智能指纹锁classic2s,双十一值得买

    国内智能门锁领军品牌鹿客三年前携爆款产品Classic亮相,销售火爆.好评如潮,时至今日依旧畅销.如今Classic 2S升级来袭,除了延续Classic的经典,还进行了全方位升级,包括自动上锁.离合 ...

  8. php统计在线时长,js统计网站运行时长

    js统计网站运行时长 第一种: 网站 function siteTime(){ window.setTimeout("siteTime()", 1000); var seconds ...

  9. java 统计在线时长_如何有效统计app用户在线时长?

    Android平台: sdk版本v5.2.0及之后: app的单次使用时长=本次启动的结束时间减去本次启动的开始时间,即end_time减去start_time. 如果在本次启动过程中,应用退到后台运 ...

最新文章

  1. NodeJS学习笔记: RESTful —— 为本系列做个小结
  2. linux终端传文件,如何使用Linux FTP命令传输文件
  3. Oracle dbtimezone与os时区不一致的解决办法
  4. MobileNet论文阅读笔记
  5. python设计自定义函数_python
  6. 资料分享 | 数据挖掘实例资料分享来袭
  7. Android高手的六大境界
  8. setheading指令_set命令
  9. 外贸网站需要ERP系统吗?
  10. html 好看的英文字体,23款网页设计师必备:经典私藏英文字体
  11. 安工大matlab实验报告王朋飞,计算机仿真实验
  12. word批量设置图片大小和对齐,使用宏定义
  13. AFNetWorking下载视频文件
  14. 【SAP消息号M8147】
  15. Linux编程和windows编程的区别
  16. 美食杰项目-登录注册
  17. Java中的BigDecimal,你真的会用吗?
  18. 欧文工学院计算机,UCI的EECS「加州大学欧文分校电气工程与计算机科学系」
  19. 匹配标签的正则(用于抽取纯文本)
  20. SpringBoot + Vue 的物流仓库管理系统源码

热门文章

  1. 十二星座运势查询微信小程序源码支持多流量主提前查看
  2. Node.js | 全栈开发必经之路
  3. yii2使用Model无刷新验证rule自定义方法
  4. ToLua的案例学习笔记
  5. JavaScript 三元运算符原理 +案例
  6. Mysql是国产化么_项目国产化,mysql替换为神通数据库记录
  7. 车间生产如何实现数字化管理,答案全在这里
  8. saas系统用的什么语音_为什么越来越多的人选择SaaS模式的crm客户管理系统?
  9. PBOC/EMV-交易流程详解--POS与卡片的数据交互进行分析
  10. 学习日记:2022年2月15日