大家好,我是寒草😈,一只草系码猿🐒。间歇性热血🔥,持续性沙雕🌟。
如果喜欢我的文章,可以关注➕点赞,与我一同成长吧~
「本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!」
系列开篇词
前端冰可乐是我的新的专栏,虽然是新的专栏但是我也把之前的部分文章放在了这个专栏下,这个系列主要是分享我的一些好玩有趣或者有一些鬼点子的前端 demo。
口号是:把前端变成冰可乐一样让大家快乐的东西。
ps:两周内我还会发布一个内容满满的系列专栏,请大家依然保持期待,趣味性实践和硬核内容分享,草系前端全都要🔥
前奏🎵
我在本月发 掘金的镇站之宝们:掘金八大分类百强文章可视化分析 这篇文章之后被优弧大佬拉进了掘金技术群,在里面认识了很多大佬,其中就包括 洛竹🎋,与其相谈甚欢,就在我前几天发了我与前端有场约会🌟 | 工作一周年经验总结,洛竹也给了我祝福和鼓励,就在我们谈天说地的时候他说他要发新的文章了,顺便提到了他应该把文章发出来大概率就是lv5了。
我想既然如此,那我就当你升上lv5的关键先生吧,可是能他发文章的时候我一定在努力工作 💪 ,我不能一直在他的主页一直挂着,那咋办呢,于是我想到那我就写个 Nodejs 脚本,帮我在洛竹倔力值到 9999 的时候点个赞吧。
嘿嘿嘿,我也说别期待,我周末很忙的,但是我还是做了,好兄弟吧~
仓库地址:luozhu-auto-digg
ps:或许本篇文章的名字应该改成 震惊,草系前端为了不影响工作居然在周末对洛竹🎋做这种事!
间奏🎵
代码其实很简单,在这里发出来就是想激发一下大家,其实我们平时用的技术也可以用来做一些工作之外的好玩的事情,怎么说呢,既能锻炼编码能力,又能让你对技术保持热情。
先说说我的思路:
ps:此处我特意取消了之前给洛竹🎋文章的点赞,让他升级晚一点,别升级太早了让我的程序没有用武之地,我就是一个心机满满的草系前端。所以此文的标题应该改成 震惊!草系前端因嫉妒洛竹🎋取消了之前的点赞,没想到他是这样的人
下面我们一起看看我的代码吧~
const superagent = require('superagent');
const COOKIE = 'COOKIE不给你看';
const LV5_POWER = 10000;
const THRESHIOLD_VALUE = 20;
const NEARLY_DELAY = 5000;
const UN_NEARLY_DELAY = 60000;
// 倔力值计算公式
const computedPower = (digg, view) => {
return digg + Math.floor(view / 100);
}
// 获取洛竹的信息数据
const getLuoZhuPower = async () => {
const resData = await superagent.get('https://api.juejin.cn/user_api/v1/user/get?aid=2608&user_id=325111174662855¬_self=1');
const { got_digg_count, got_view_count } = JSON.parse(resData.text).data;
return computedPower(got_digg_count, got_view_count);
}
// 给洛竹的🍉点赞
const diggLuoZhu = () => {
superagent.post('https://api.juejin.cn/interact_api/v1/digg/save').send({
client_type: 2608,
item_id: "6983854006124675108",
item_type: 2
}).set('Cookie', COOKIE);
}
// 判断是否已经接近 10000 倔力值了
const getIsNearly = (luozhuPower) => {
if( LV5_POWER - luozhuPower <= THRESHIOLD_VALUE ) return true;
return false;
}
// 根据是否已经接近 10000 倔力值,确定轮询时间
const getDelayTime = (isNearly) => {
if(isNearly) return NEARLY_DELAY;
return UN_NEARLY_DELAY;
}
// 程序的入口方法
const generateDigg = async () => {
// 获取信息
let luozhuPower = await getLuoZhuPower();
let isNearly = getIsNearly(luozhuPower);
setTimeout(() => {
// 如果倔力值是 9999,趁现在点赞(兼容运气不好,没有点到的情况)
if(luozhuPower >= LV5_POWER - 1) {
diggLuoZhu();
} else {
generateDigg();
}
}, getDelayTime(isNearly));
}
generateDigg();
代码中我为了避免给掘金造成更多负担,设置了一个 isNearly 属性,如果洛竹🎋 已经快要升级了,我才会去把轮询周期缩短。
ps:或许本篇文章的名字应该改成 震惊,草系前端为了成为洛竹🎋升级的关键先生,居然恨不得五秒钟刷一次页面!
尾奏🎵
在结尾,首先提前预祝 洛竹🎋 伙伴成为lv5作者,倔力值正式变成五位数,也期待你未来更多优秀的文章。
我在这里也希望我在这里发文可以为掘金带来更多的活力🔥 ,不仅仅是分享技术,也要用技术实现一些好玩的东西,(可以做更多好玩的东西)或许就是我们这个行业的魅力吧,当然这一期代码很简单,但是写这种趣味性的小 demo 很有乐趣~
就像大帅的:
- 三种前端实现VR全景看房的方案!说不定哪天就用得上!
- 产品经理:你能不能用div给我画条龙?
- ... 这种文章我就感觉很有意思哈哈哈,而且还都是我的知识盲区
说白了,技术就是用来实现或者创造一些东西的
有深度的技术分享✨
好玩有趣的实践吐槽✨
寒草🌳 这里都有,欢迎 👍 关注 ➕ ,这是对我最大的支持~
大家,新的一周要开开心心的哦☀️