-
Notifications
You must be signed in to change notification settings - Fork 8
/
Am_I_Replied.js
98 lines (83 loc) · 2.99 KB
/
Am_I_Replied.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// ==UserScript==
// @name:zh-CN 我回过贴了吗
// @name Am_I_Replied
// @namespace https://blog.chrxw.com
// @supportURL https://blog.chrxw.com/scripts.html
// @contributionURL https://afdian.net/@chr233
// @version 1.7
// @description 判断是否已经回过贴
// @description:zh-CN 判断是否已经回过贴
// @author Chr_
// @include https://keylol.com/forum.php?*
// @include https://keylol.com/t*
// @include https://bbs.nga.cn/read.php?*
// @include https://ngabbs.com/read.php?*
// @include https://nga.178.com/read.php?*
// @license AGPL-3.0
// @icon https://blog.chrxw.com/favicon.ico
// @grant GM_registerMenuCommand
// ==/UserScript==
(async () => {
"use strict";
const inlineMode = window.localStorage.getItem("air_inline") ?? "关";
GM_registerMenuCommand(`行内显示已回复: 【${inlineMode}】`, () => {
window.localStorage.setItem(
"air_inline",
inlineMode === "开" ? "关" : "开"
);
window.location.reload();
});
if ((location.pathname === "/forum.php" && !location.search.includes("tid")) || location.search.includes("authorid")) {
return;
}
const isDiscuz = typeof discuz_uid != "undefined";
const userId = isDiscuz ? discuz_uid : __CURRENT_UID;
const testUrl = location.href + (location.search ? `&authorid=${userId}` : `?authorid=${userId}`);
fetch(testUrl)
.then((res) => res.text())
.then((html) => {
const replied = !(html.includes("未定义操作") || html.includes("ERROR:"));
const text = replied ? "✅已经回过贴了" : "❌还没回过贴子";
const tips = document.createElement("a");
tips.textContent = text;
if (replied) {
tips.href = testUrl;
} else {
tips.addEventListener("click", () => {
if (isDiscuz) {
showError("❌还没回过贴子");
}
else {
alert("❌还没回过贴子");
}
});
}
if (isDiscuz) {
const btnArea = inlineMode !== "开" ?
document.querySelector("#pgt") :
document.querySelector("#postlist td.plc div.authi>span.none") ??
document.querySelector("#postlist td.plc div.authi>span.pipe");
if (btnArea === null) {
return;
}
if (btnArea.tagName === "SPAN") {
const span = document.createElement("span");
span.textContent = "|";
span.className = "pipe";
const bar = btnArea.parentNode;
bar.insertBefore(span, btnArea);
bar.insertBefore(tips, btnArea);
} else {
btnArea.appendChild(tips);
}
} else {
const btnArea = document.querySelector("#m_nav>.nav");
const anchor = btnArea.querySelector("div.clear");
if (btnArea === null || anchor === null) {
return;
}
tips.className = "nav_link";
btnArea.insertBefore(tips, anchor);
}
});
})();