前端冰可乐🥤|用 50 行代码成为洛竹🎋升级lv5的关键先生

你们好,我是寒草😈,一只草系码猿🐒。间歇性热血🔥,持续性沙雕🌟。
若是喜欢个人文章,能够关注➕点赞,与我一同成长吧~前端

「本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!git

系列开篇词

前端冰可乐是个人新的专栏,虽然是新的专栏可是我也把以前的部分文章放在了这个专栏下,这个系列主要是分享个人一些好玩有趣或者有一些鬼点子的前端 demogithub

口号是:把前端变成冰可乐同样让你们快乐的东西后端

ps:两周内我还会发布一个内容满满的系列专栏,请你们依然保持期待,趣味性实践和硬核内容分享,草系前端全都要🔥api

前奏🎵

我在本月发 掘金的镇站之宝们:掘金八大分类百强文章可视化分析 这篇文章以后被优弧大佬拉进了掘金技术群,在里面认识了不少大佬,其中就包括 洛竹🎋,与其相谈甚欢,就在我前几天发了我与前端有场约会🌟 | 工做一周年经验总结,洛竹也给了我祝福和鼓励,就在咱们谈天说地的时候他说他要发新的文章了,顺便提到了他应该把文章发出来大几率就是lv5了。markdown

我想既然如此,那我就当你升上lv5的关键先生吧,但是能他发文章的时候我必定在努力工做 💪 ,我不能一直在他的主页一直挂着,那咋办呢,因而我想到那我就写个 Nodejs 脚本,帮我在洛竹倔力值到 9999 的时候点个赞吧。async

嘿嘿嘿,我也说别期待,我周末很忙的,可是我仍是作了,好兄弟吧~oop

仓库地址:luozhu-auto-diggpost

ps:或许本篇文章的名字应该改为 震惊,草系前端为了避免影响工做竟然在周末对洛竹🎋作这种事!ui

间奏🎵

代码其实很简单,在这里发出来就是想激发一下你们,其实咱们平时用的技术也能够用来作一些工做以外的好玩的事情,怎么说呢,既能锻炼编码能力,又能让你对技术保持热情

先说说个人思路:

  • 经过轮询获取洛竹🎋的信息
  • 由于倔力值更新可能有延迟,因此此处倔力值我要本身经过总点赞和阅读数去计算
  • 洛竹🎋倔力值到达 9999,给我以前没有点过赞的文章点个赞,诶,我这样就成了关键先生!

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&not_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:或许本篇文章的名字应该改为 震惊,草系前端为了成为洛竹🎋升级的关键先生,竟然巴不得五秒钟刷一次页面!

尾奏🎵

image.png

在结尾,首先提早预祝 洛竹🎋 伙伴成为lv5做者,倔力值正式变成五位数,也期待你将来更多优秀的文章。

我在这里也但愿我在这里发文能够为掘金带来更多的活力🔥 ,不只仅是分享技术,也要用技术实现一些好玩的东西,(能够作更多好玩的东西)或许就是咱们这个行业的魅力吧,固然这一期代码很简单,可是写这种趣味性的小 demo 颇有乐趣~

就像大帅的:

这种文章我就感受颇有意思哈哈哈,并且还都是个人知识盲区

说白了,技术就是用来实现或者创造一些东西的

有深度的技术分享✨
好玩有趣的实践吐槽✨

寒草🌳 这里都有,欢迎 👍 关注 ➕ ,这是对我最大的支持~

你们,新的一周要开开心心的哦☀️

相关文章
相关标签/搜索