别看题解脚本怎么你了
  • 板块灌水区
  • 楼主Vitamin_B
  • 当前回复16
  • 已保存回复16
  • 发布时间2024/6/5 12:19
  • 上次更新2024/6/5 16:38:19
查看原帖
别看题解脚本怎么你了
743373
Vitamin_B楼主2024/6/5 12:19

rt,前天下午正常运行,前天晚上开始发现脚本失效了,昨天点进去一看发现代码全没了:https://im.popoim.com/upload/images/202406/04665f235c55b6.png(懒得放洛谷图床),只留下了This script was deleted from Greasy Fork, and due to its negative effects, it has been automatically removed from your browser.。

这是我原先的下载链接:https://greasyfork.org/zh-CN/scripts/460752-%E5%88%AB%E7%9C%8B%E9%A2%98%E8%A7%A3,却显示您请求的脚本已被删除。不过,这里有一些相关的脚本。

还好我事先存了源码:

// ==UserScript==
// @name         别看题解
// @namespace    http://tampermonkey.net/
// @version      1.2.1
// @description  在你看洛谷题解的时候把自己挂到犇犇。
// @author       0x3b800001
// @match        https://www.luogu.com.cn/problem/solution/*
// @icon         https://cdn.luogu.com.cn/upload/image_hosting/h0tj6wjl.png
// @grant        GM_xmlhttpRequest
// @connect      *
// @license      GPL
// ==/UserScript==

function mstt(ms) {
  ms = Number(ms);
  let res = "";
  res += String(Math.floor(ms / 86400000)) + "d ";
  res += String(Math.floor(ms % 86400000 / 3600000)) + "h ";
  res += String(Math.floor(ms % 3600000 / 60000)) + "min ";
  res += String(Math.floor(ms % 60000 / 1000)) + "s";
  return res;
}
function clearproblemcache() {
  if (confirm("是否清空重复挂 localStorage?")) {
    var w = [];
    for (let i = 0; i < localStorage.length; ++i) {
      if (localStorage.key(i).indexOf("bktj-problemcache-") != -1) {
        w.push(localStorage.key(i));
      }
    }
    for (let i = 0; i < w.length; ++i) {
      localStorage.removeItem(w[i]);
    }
    alert("清空成功。");
  }
}
function clearopentime() {
  if (confirm("是否清空开题时间 localStorage?")) {
    var w = [];
    for (let i = 0; i < localStorage.length; ++i) {
      if (localStorage.key(i).indexOf("bktj-opentime-") != -1) {
        w.push(localStorage.key(i));
      }
    }
    for (let i = 0; i < w.length; ++i) {
      localStorage.removeItem(w[i]);
    }
    alert("清空成功。");
  }
}
function modifyformat(format) {
  console.log(format);
  if (format.length != 0) {
    localStorage["bktj-format"] = format.replace(/\\n/g, "\n");
  } else {
    localStorage["bktj-format"] = "这个人在开题 bktjnumber bktjname bktjtime 后看了题解\n\n警钟长鸣。";
  }
  alert("更改成功!现在格式:\n" + localStorage["bktj-format"]);
}
function modifytimes(times) {
  if (Number(times).toString() != times) {
    localStorage["bktj-times"] = "1";
    alert("更改失败!不是数字。已经自动更改为 " + localStorage["bktj-times"]);
    return;
  }
  if (times.length != 0) {
    localStorage["bktj-times"] = times;
  } else {
    localStorage["bktj-times"] = "1";
  }
  alert("更改成功!现在次数:" + localStorage["bktj-times"]);
}
function gettype(lnk) {
  if (lnk.indexOf("https://www.luogu.com.cn/user/setting") != -1) {
    return "setting";
  }
  if (lnk.indexOf("https://www.luogu.com.cn/problem/solution/") != -1) {
    return "solution";
  }
  if (lnk.indexOf("https://www.luogu.com.cn/problem/P") != -1
    || lnk.indexOf("https://www.luogu.com.cn/problem/CF") != -1
    || lnk.indexOf("https://www.luogu.com.cn/problem/B") != -1
    || lnk.indexOf("https://www.luogu.com.cn/problem/SP") != -1
    || lnk.indexOf("https://www.luogu.com.cn/problem/AT") != -1
    || lnk.indexOf("https://www.luogu.com.cn/problem/UVA") != -1) {
    return "problem";
  }
  return "unimportant";
}
(function () {
  'use strict';
  let F = function () {
    console.log("loading");
    console.log(window.location.href);
    if (localStorage["bktj-QQ"] == undefined) {
      localStorage["bktj-QQ"] = "1";
      alert("欢迎你使用 别看题解 插件!如果有需要提的意见记得加入 QQ 群 711760690。该消息以后不会再显示,因此记得加入哦!");
    }
    if (localStorage["bktj-help"] == undefined) {
      localStorage["bktj-help"] = "1";
      if (confirm("看起来你是第一次使用 别看题解 插件!是否打开帮助?")) {
        window.open("https://www.luogu.com.cn/paste/xmiuzlml");
      }
    }
    if (localStorage["bktj-format"] == undefined) {
      localStorage["bktj-format"] = "这个人在开题 bktjnumber bktjname bktjtime 后看了题解\n\n警钟长鸣。";
    }
    if (localStorage["bktj-times"] == undefined) {
      localStorage["bktj-times"] = "1";
    }
    let lnk = window.location.href;
    if (lnk.indexOf("https://www.luogu.com.cn/user/setting") != -1) {
      let _1 = document.createElement("div");
      _1.className = "row";
      _1.setAttribute("data-v-581a38cc", "");
      let _2 = document.createElement("span");
      _2.setAttribute("data-v-1f8e37c2", "");
      _2.setAttribute("data-v-581a38cc", "");
      _2.innerText = "别看题解 设置";
      _1.append(_2);

      let _3 = document.createElement("div");
      _3.setAttribute("data-v-1f8e37c2", "");
      _3.setAttribute("data-v-581a38cc", "");

      let _4 = document.createElement("button");
      _4.className = "lfe-form-sz-middle";
      _4.setAttribute("data-v-7ade990c", "");
      _4.setAttribute("data-v-1f8e37c2", "");
      _4.type = "button";
      _4.style = "border-color: rgb(52, 152, 219); background-color: rgb(52, 152, 219);";
      _4.setAttribute("data-v-581a38cc", "");
      _4.innerText = "清空重复挂 localStorage";
      _4.addEventListener("click", clearproblemcache);

      let _5 = document.createElement("button");
      _5.className = "lfe-form-sz-middle";
      _5.setAttribute("data-v-7ade990c", "");
      _5.setAttribute("data-v-1f8e37c2", "");
      _5.type = "button";
      _5.style = "border-color: rgb(52, 152, 219); background-color: rgb(52, 152, 219);";
      _5.setAttribute("data-v-581a38cc", "");
      _5.innerText = "清空开题时间 localStorage";
      _5.addEventListener("click", clearopentime);

      let _6 = document.createElement("p");
      _6.setAttribute("data-v-0c8438e1", "");
      _6.setAttribute("data-v-581a38cc", "");
      _6.append(_4);
      let _7 = document.createElement("p");
      _7.setAttribute("data-v-0c8438e1", "");
      _7.setAttribute("data-v-581a38cc", "");
      _7.append(_5);
      _3.append(_6);

      _3.append(_7);

      let _8 = document.createElement("input");
      _8.className = "lfe-form-sz-middle";
      _8.setAttribute("data-v-66fcc50b", "");
      _8.type = "";
      _8.id = "bktj-input-1";
      _8.placeholder = "输入格式,留空则默认";
      let _9 = document.createElement("button");
      _9.className = "lfe-form-sz-middle";
      _9.setAttribute("data-v-7ade990c", "");
      _9.setAttribute("data-v-1f8e37c2", "");
      _9.type = "button";
      _9.style = "border-color: rgb(52, 152, 219); background-color: rgb(52, 152, 219);";
      _9.setAttribute("data-v-581a38cc", "");
      _9.innerText = "更改格式";
      _9.addEventListener("click", function () { modifyformat(document.getElementById("bktj-input-1").value); });
      let _10 = document.createElement("p");
      _10.setAttribute("data-v-0c8438e1", "");
      _10.setAttribute("data-v-581a38cc", "");
      _10.append(_8);
      _10.append(_9);
      _3.append(_10);

      let _11 = document.createElement("input");
      _11.className = "lfe-form-sz-middle";
      _11.setAttribute("data-v-66fcc50b", "");
      _11.type = "";
      _11.id = "bktj-input-2";
      _11.placeholder = "输入次数,留空则默认";
      let _12 = document.createElement("button");
      _12.className = "lfe-form-sz-middle";
      _12.setAttribute("data-v-7ade990c", "");
      _12.setAttribute("data-v-1f8e37c2", "");
      _12.type = "button";
      _12.style = "border-color: rgb(52, 152, 219); background-color: rgb(52, 152, 219);";
      _12.setAttribute("data-v-581a38cc", "");
      _12.innerText = "更改次数";
      _12.addEventListener("click", function () { modifytimes(document.getElementById("bktj-input-2").value); });
      let _13 = document.createElement("p");
      _13.setAttribute("data-v-0c8438e1", "");
      _13.setAttribute("data-v-581a38cc", "");
      _13.append(_11);
      _13.append(_12);

      _3.append(_13);

      let _14 = document.createElement("button");
      _14.className = "lfe-form-sz-middle";
      _14.setAttribute("data-v-7ade990c", "");
      _14.setAttribute("data-v-1f8e37c2", "");
      _14.type = "button";
      _14.style = "border-color: rgb(52, 152, 219); background-color: rgb(52, 152, 219);";
      _14.setAttribute("data-v-581a38cc", "");
      _14.innerText = "帮助";
      _14.addEventListener("click", function () { window.open("https://www.luogu.com.cn/paste/xmiuzlml"); });
      let _15 = document.createElement("p");
      _15.setAttribute("data-v-0c8438e1", "");
      _15.setAttribute("data-v-581a38cc", "");
      _15.append(_14);

      _3.append(_15);

      _1.append(_3);
      document.getElementsByClassName("card padding-default")[0].append(_1);
    } else if (lnk.indexOf("https://www.luogu.com.cn/problem/solution/") != -1) {
      var name = (document.getElementsByClassName('lfe-h1'))[0].innerHTML;
      let P = (name.split(' '))[0];
      name = name.substring(P.length + 1, name.length).split(" 题解")[0];
      console.log(P);
      console.log(name);
      GM_xmlhttpRequest({
        url: "https://www.luogu.com.cn/problem/" + P + "?_contentOnly=1",
        method: "GET",
        onload: function (response) {
          let rp = response.responseText;
          let qwww = rp.split("recommendations")[0];
          if (qwww.indexOf("\"submitted\":true") == -1) {
            console.log("未提交过");
            let see = true;
            for (let i = 1; i <= localStorage["bktj-times"]; ++i) {
              if (!confirm("您尚未提交过" + P + ",确认要看题解吗?")) {
                see = false;
                break;
              }
            }
            if (see) {
              if (localStorage["bktj-problemcache-" + P] == undefined) {
                if (localStorage["bktj-opentime-" + P] == undefined) localStorage["bktj-opentime-" + P] = Date.now();
                GM_xmlhttpRequest({
                  url: "https://www.luogu.com.cn/api/feed/postBenben",
                  headers: {
                    "content-type": "application/json",
                    "referer": "https://www.luogu.com.cn/",
                    "x-csrf-token": document.querySelector("meta[name=csrf-token]").content
                  },
                  data: JSON.stringify({
                    content: String(localStorage["bktj-format"])
                      .replace(/bktjnumber/g, P)
                      .replace(/bktjname/g, name)
                      .replace(/bktjtime/g, mstt(Date.now() - Number(localStorage["bktj-opentime-" + P])))
                  }),
                  method: "POST",
                });
                localStorage["bktj-problemcache-" + P] = 1;
              } else {
                console.log("已经挂过了");
              }
            } else {
              document.getElementsByClassName("lfe-form-sz-middle")[0].click();
              return;
            }
          } else {
            console.log("已提交");
          }
        }
      });
    } else if (lnk.indexOf("https://www.luogu.com.cn/problem/P") != -1
      || lnk.indexOf("https://www.luogu.com.cn/problem/CF") != -1
      || lnk.indexOf("https://www.luogu.com.cn/problem/B") != -1
      || lnk.indexOf("https://www.luogu.com.cn/problem/SP") != -1
      || lnk.indexOf("https://www.luogu.com.cn/problem/AT") != -1
      || lnk.indexOf("https://www.luogu.com.cn/problem/UVA") != -1) {
      let nm = lnk.substring(33);
      if (localStorage["bktj-opentime-" + nm] == undefined) {
        localStorage["bktj-opentime-" + nm] = Date.now();
      }
      console.log(nm);
    }
  };
  let Url = "";
  setInterval(
    function () {
      if (Url == gettype(window.location.href)) return;
      Url = gettype(window.location.href);
      let Ok = false;
      setInterval(function () {
        if (!Ok) {
          Ok = true;
          try {
            F();
          } catch (e) {
            Ok = false;
          } finally {
            if (Ok) {
              console.log("loaded");
            }
          }
        }
      }, 400);
    }, 400);
})();
2024/6/5 12:19
加载中...