今天调整论坛的时候发现,有很多古老的帖子并没有进行锁帖,给论坛管理造成很大不便,然而手动锁帖又太过麻烦,刚好前两天的脚本改改就能用

那还等什么呢,go go go~~

主体

仔细分析可以发现,代码共分为两部分

  1. 找到该页面的所有帖子
  2. 执行post方法提交锁帖操作

找到所有帖子

这里参考了前两天的脚本

/**
 * @description 
 * @param {string} forumUrl 全局变量,手动设定
 * @returns {array} arrTopicId 返回一个存放所有未锁定帖子的id的数组
 */
function getIdList(forumUrl) {
  return superagent
    .get(forumUrl) // 这里需要基于发布获取链接分析url
    .set({
      'Cookie': cookie
    })
    .then(res => {
      let regPage = /(unlocked).+\s.*?(\d{4})/gm
      let arr = res.text.match(regPage) // 找到所有未锁定的帖子链接
      let reid = /(\d{4})/ 
      arrTopicId = arr.map(val => val.match(reid)[0]) // 存放所有id
    })
    .catch(err => {
      console.log(err)
    })
}

提交锁帖

这一步进行正常的post提交即可

方法执行时需要遍历上一步数组中的所有元素,这里使用了map

arrTopicId.map(val => {
  newPost(val)
    .then()
    ...
})

结语

多写写代码,总是有好处的!!!

Last modification:March 31st, 2020 at 06:01 pm
如果觉得我的文章对你有用,请随意赞赏