记完成《JUEJIN FRIENDS 好好生活计划》连续打卡脚本过程

前言:hello,大家好,今天给大家分享一下我模仿完成《JUEJIN FRIENDS 好好生活计划》连续打卡脚本的过程。

一、事情起因

事情源于我参加了掘金前一阵(为啥是前一阵?因为我也不知道活动啥时候开始的)发布的《JUEJIN FRIENDS 好好生活计划》沸点活动,6天之前我就开始我为期21天(应该不止)的生活打卡之旅,哎~ 就在我昨天在沸点中遨游的时候看到了一篇快速检测自己打卡活动是否满 21 天脚本”的沸点,这沸点看的我是初见惊艳,再见依然

二、仿写脚本

ok,为啥是“仿”字加粗了?因为仿的不完全,想法是人家的,脚本先驱是人家的,但是我从中思考了并得到了,所以说仿。

沸点楼主

初见原文,看到底下很多掘友确认自己连续打卡的天数,但我高傲,我并没问,我看了一遍楼主的代码,决定自己实现一个(也发个沸点火一把,哈哈)

分解任务

  • 找到掘金查询沸点的接口
  • 用$(ajax)来进行前端请求
  • 最后把获取到的答案,打印出来,以便与掘友们分享
    ok,简简单单,2个小时,也就一个小时吧!

1.首先,找到掘金沸点请求接口

接口请求成功

2.前端请求

$.ajax({
    url: "https://api.juejin.cn/content_api/v1/short_msg/query_list?aid=2608&uuid=6989073187007956487&spider=0",
    type: "post",
    contentType: "application/json",
    asycn: true,
    data: {
      cursor: "0",
      limit: 20,
      sort_type: 4,
      user_id: "4222596374865550",
    },
    dataType: "json",
    success: function (data) {
      console.log("请求返回数据", data);
    },
    error: function () {},
});

跨域报错

跨域问题?试试楼主的“fetch”请求 — 还是跨域
这不骗人呢么?看抖音拆盲盒去了,不整了。

第二天(也就是今天),我又不要脸的仔细观看楼主脚本中的细节,甚至低下我高傲的头颅在底下评论了俩个问题

评论:大佬,有俩个问题想问下!您是怎么解决前端请求掘金接口跨域问题的?cookie需要获取哪些字段呢?
我在评论完15分钟左右删除了我的评论,因为我找到了答案,

  • 楼主接口不需要跨域,因为是在掘金页面开发者工具console里面运行的脚本
  • cookie就是接口携带的headers请求头里面的cookie,并不是“我所想”的需要本地存储cookie中特定的字段拼接

三、拨开云雾

效果图

前端开发工程师请求出战掘金动态图

代码

const date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
month = month > 9 ? month : "0" + month;
const today = year + "/" + month + "/" + day;
const cookie =
		"_ga=GA1.2.1847236612.1627270411; __tea_cookie_tokens_2608=%257B%2522web_id%2522%253A%25226989073187007956487%2522%252C%2522ssid%2522%253A%252291051704-5bca-40c1-adbc-f4761cc2c698%2522%252C%2522user_unique_id%2522%253A%25226989073187007956487%2522%252C%2522timestamp%2522%253A1627270411223%257D; n_mh=8LoNp6sbZZmuZk3mTMPSciX39zmtL_bwixPCRz7KjR8; sid_guard=4a32b8a1b39dd8147c1747bc04a3d225%7C1663477702%7C31536000%7CMon%2C+18-Sep-2023+05%3A08%3A22+GMT; uid_tt=5fec574a1ccb89386b91c1e9118de903; uid_tt_ss=5fec574a1ccb89386b91c1e9118de903; sid_tt=4a32b8a1b39dd8147c1747bc04a3d225; sessionid=4a32b8a1b39dd8147c1747bc04a3d225; sessionid_ss=4a32b8a1b39dd8147c1747bc04a3d225; sid_ucp_v1=1.0.0-KGM4OWY2NjY5YmQ3YmU4NDM4NmQ5MzRiYWQ2MDE4NGRjMWRmZmYxZmUKFwiOzdCn3Y3ABxDGz5qZBhiwFDgCQPEHGgJsZiIgNGEzMmI4YTFiMzlkZDgxNDdjMTc0N2JjMDRhM2QyMjU; ssid_ucp_v1=1.0.0-KGM4OWY2NjY5YmQ3YmU4NDM4NmQ5MzRiYWQ2MDE4NGRjMWRmZmYxZmUKFwiOzdCn3Y3ABxDGz5qZBhiwFDgCQPEHGgJsZiIgNGEzMmI4YTFiMzlkZDgxNDdjMTc0N2JjMDRhM2QyMjU; MONITOR_WEB_ID=0a0043ef-e80f-47b3-9d58-0b7e2ba7abe1; _gid=GA1.2.1767904775.1669599310; _tea_utm_cache_2608={%22utm_source%22:%22gold_browser_extension%22}; msToken=v_AYc12f08Spc7SHqqNOJhZPap_0Kj8of5FtstZ8E_dT4kKZbcxkckPD_zrGXIG5ZJjsp890dGl3WMnQs4CNSAzqIcc_xfKEFIUkF8CQaLQ=";
const uid = "4222596374865550";
fetch("https://api.juejin.cn/content_api/v1/short_msg/query_list", {
	method: "POST",
	headers: {
	  "Content-Type": "application/json",
	  cookie: cookie,
	},
	body: JSON.stringify({
	  cursor: "0",
	  limit: 20,
	  sort_type: 4,
	  user_id: uid,
	}),	
  })
  .then((response) => response.json())
  .then((data) => {
    const result = [];
    const isContinuityTime = true;
    let isToday = false;
    data.data.forEach((value) => {
      if (value.theme.name === "JUEJIN FRIENDS 好好生活计划") {
        result.push(
          new Date(value.msg_Info.mtime * 1000).toLocaleString()
        );
      }
  });
  result.map((value, index, arr) => {
    if (
      new Date(arr[index + 1]).getTime() != NaN &&
      new Date(arr[index + 1]).getTime() -
        new Date(arr[index]).getTime() >=
        86400000
    ) {
      isContinuityTime = false;
    }
    if (index == 0 && value.includes(today)) isToday = true;
  });
  let descResult = [...result];
  descResult.sort((a, b) => {
    return new Date(a).getTime() - new Date(b).getTime();
  });
  console.log("签到天数汇总:", descResult);
  console.log("是否连续签到:", isContinuityTime);
  console.log("连续签到天数:", result.length + "天");
  console.log("第一次签到日期:", result[result.length - 1]);
  console.log("最近签到日期:", result[0]);
  console.log(
    "是否完成21天连续打卡:",
    isContinuityTime && result.length >= 21 ? true : false
  );
  console.log("今天是否签到:", isToday);
});

总结

当我们遇到可以使我们进步的问题时,不论人潮如何汹涌,必要勇往直前!

相关资料


  • https://juejin.cn/pin/topic/7163537723910225960
  • https://juejin.cn/pin/7172067604108935199#comment-list

水平有限,还不能写到尽善尽美,希望大家多多交流,跟春野一同进步!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值