Greasy Fork is available in English.

「QQ 群」今天谁值日

用于确定值日生/doge

// ==UserScript==
// @name        「QQ 群」今天谁值日
// @namespace   wdssmq
// @version     1.2
// @author      沉冰浮水
// @description 用于确定值日生/doge
// @link        https://greasyfork.org/zh-CN/scripts/26812
// @null     ----------------------------
// @contributionURL    https://github.com/wdssmq#%E4%BA%8C%E7%BB%B4%E7%A0%81
// @contributionAmount 5.93
// @null     ----------------------------
// @link     https://github.com/wdssmq/userscript
// @link     https://afdian.net/@wdssmq
// @link     https://greasyfork.org/zh-CN/users/6865-wdssmq
// @null     ----------------------------
// @include     https://qun.qq.com/member.html*
// @grant       none
// ==/UserScript==
/* jshint esversion:6 */
(function () {
  "use strict";
  function $n(e) {
    return document.querySelector(e);
  }
  function $na(e) {
    return document.querySelectorAll(e);
  }
  function fnTime(type = "s", span = 1) {
    const curDate = new Date();
    //
    const curTime = parseInt(curDate.valueOf() / 1000);
    if (type === "s") {
      return curTime / span;
    }
    //
    const curDay = parseInt(curTime / 86400);
    if (type === "d") {
      return curDay / span;
    }
    //
    const curWeek = parseInt(curDay / 7);
    if (type === "w") {
      return curWeek / span;
    }
  }

  const fnGetMaster = () => {
    //
    const elImg = $n("a.group-master-a+img");
    return elImg.getAttribute("id").replace(/\D/g, "");
  };

  const fnGetMngs = () => {
    const elMngs = $na(".icon-group-manage");
    const idMngs = [fnGetMaster()];
    for (let i = 0; i < elMngs.length; i++) {
      idMngs.push(elMngs[i].dataset.id);
    }
    idMngs.sort((a, b) => {
      return parseInt(a) - parseInt(b);
    });
    return idMngs;
  };

  const config_num = 2;

  const fnPickMngs = () => {
    const curWeek = fnTime("w");
    const arrMngs = fnGetMngs();
    console.log("管理列表:");
    console.log(arrMngs);
    const arrIndex = (() => {
      const numSerial = curWeek % parseInt(arrMngs.length / config_num);
      const arrRlt = [];
      for (let i = 0; i < config_num; i++) {
        arrRlt.push((numSerial * config_num) + i);
      }
      console.log(curWeek, parseInt(arrMngs.length / config_num), numSerial);
      return arrRlt;
    })();
    const rltMngs = [];
    arrIndex.forEach((i) => {
      if (arrMngs[i]) {
        rltMngs.push(arrMngs[i]);
      }
    });
    console.log("选取:");
    console.log(rltMngs);
    return rltMngs;
  };

  const fnSetStyle = (pickMngs) => {
    pickMngs.forEach((id) => {
      const elMb = $n(`.mb${id}`);
      const elSpan = elMb.querySelector(".td-user-nick span");
      elSpan.style.color = "red";
    });
  };

  let config_done = false;
  function fnMain() {
    if ($n("a.group-master-a+img") && !config_done) {
      fnSetStyle(fnPickMngs());
      config_done = true;
    }
  }
  fnMain();

  // window.addEventListener('load', fnMain, false);
  window.addEventListener("scroll", function () {
    fnMain();
  });
})();