最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • ❤️❤️为你统计掘金活动更文进度❤️❤️ - 掘金

    正文概述 掘金(forever_Mamba)   2021-10-15   47

    小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

    前言

    参加了掘金的 "小知识,大挑战!"活动,精英矿工 需要 发布 32 篇合格文章,且更文天数 ≥ 14 天。如果我们的文章达到一定的数量,我们就不好去统计参与当前活动的进度,发布几篇文章?更新了几天?再也不用担心参与进度问题啦??

    why

    为了让我们更加的清晰的知道自己已经发布了多少片文章,更新的天数。通过一个脚本代码去快速的分析出来结果,对自己参加活动的进度有个清晰的认识,再也不用一个个的去翻页统计了。

    完整代码

    /**
     * @param {string} user_id 从页面 Network 的 Request Payload 中获取
     * @param {string} aid 从页面 Network 的 Query String Parameters 中获取
     * @param {string} uuid 从页面 Network 的 Query String Parameters 中获取
     * @return {*}
     */
    function spider({ user_id, aid, uuid }) {
      // 入参 cursor 代表分页的数据 [0, 10, 20]
      const cursors = ['0', '10', '20'];
    
      const payload = { user_id: user_id, sort_type: 2, cursor: '0' };
      const url =
        `https://api.juejin.cn/content_api/v1/article/query_list?aid=${aid}&uuid=${uuid}`;
    
      // 获取用户的cookie
      const cookie = document.cookie;
      // 活动开始时间
      const startDate = new Date('2021-09-24').getTime();
      // 截止目前的文章数量
      let counts = 0;
      // 文章创建时间
      let createDate = [];
    
      const maxCounts = 32;
      const maxDays = 14;
    
      const getData = async (cursor) => {
        // 获取文章数据
        const { data, err_no, has_more } = await fetch(url, {
          method: 'POST',
          body: JSON.stringify({ ...payload, cursor: cursor }),
          headers: { cookie: cookie, 'content-type': 'application/json' },
          credentials: 'include',
        }).then((res) => res.json()).catch(e => {
          console.log('error', e)
        });
    
        // console.log(data);
        data.forEach((element) => {
          // 获取文章创建时间 ctime 为 10 位长度的时间戳,需要转为 13位
          const ctime = element.article_info.ctime * 1000;
          // const title = element.article_info.title;
          // 判断是是否是开始时间之后的
          if (ctime > startDate) {
            counts++;
            const ctimeTemp = new Date(ctime);
            const time = `${ctimeTemp.getFullYear()}-${
              ctimeTemp.getMonth() + 1
            }-${ctimeTemp.getDate()}`;
            createDate.push(time);
          }
        });
      };
      // 获取分页数据
      Promise.all(cursors.map((ele) => getData(ele))).then(() => {
        console.log(
          '??精英矿工奖:',
          `发布 ${maxCounts} 篇合格文章,且更文天数 ≥ ${maxDays} 天`
        );
        console.log(
          `??你已经发布 ${counts} 篇文章,且更文天数 = ${
            [...new Set(createDate)].length
          } 天`
        );
      });
    }
    
    

    使用

    1. 将上面代码拷贝到浏览器控制台的 console
    2. network中去获取一下用户的数据 user_id, aid, uuid 作为入参。
    3. 执行spider({user_id: '', aid: '', uuid: ''})函数

    如下图:

    ❤️❤️为你统计掘金活动更文进度❤️❤️ - 掘金

    执行结果

    ❤️❤️为你统计掘金活动更文进度❤️❤️ - 掘金

    结语

    如果这篇文章帮到了你,欢迎点赞?和关注⭐️。

    文章如有错误之处,希望在评论区指正??。


    起源地 » ❤️❤️为你统计掘金活动更文进度❤️❤️ - 掘金

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元