Skip to content

Commit b04cc9b

Browse files
szeroRealDolos
authored andcommittedMar 24, 2019
Fixes to ownerdelete (#12)
* 3 changes to ownerdelete - there was strange bug while calling getInfo async function, when timeout won in the Promise.race, the exception got raised and even when it was caught, the save_checksums func was never called after more files were queried so I moved it to the getInfo - add support for rekting greens and whites specifically (useful for nick imposters), also the script was timeing out yourself when you suplied it with your own nick. Greens can be rekt by prepending their nicks with `@` - more verbose messages when using /rekt /unrekt and /showrekts commands * bump version * save after awaiting * check for rekt greens and whites idependently
1 parent 804674a commit b04cc9b

File tree

1 file changed

+32
-10
lines changed

1 file changed

+32
-10
lines changed
 

‎ownerdelete.user.js

+32-10
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// ==UserScript==
22
// @name Mod EVERYTHING better, because reasons!
33
// @namespace http://not.jew.dance/
4-
// @version 3
4+
// @version 4
55
// @description try to take over the world!
66
// @author You
77
// @match https://volafile.org/r/*
@@ -92,8 +92,12 @@ dry.once("dom", () => {
9292
if (!isOwner || !data || !data.id) {
9393
return;
9494
}
95-
96-
if (rekt.has(nick.toLowerCase().trim())) {
95+
nick = nick.toLowerCase().trim();
96+
if (options.user && rekt.has(`@${nick}`)) {
97+
dry.exts.connection.call("timeoutChat", data.id, 3600 * 24);
98+
return;
99+
}
100+
if (!options.user && rekt.has(nick)) {
97101
dry.exts.connection.call("timeoutChat", data.id, 3600 * 24);
98102
return;
99103
}
@@ -114,6 +118,10 @@ dry.once("dom", () => {
114118
return true;
115119
}
116120
user = user.toLowerCase().trim();
121+
if (rekt.has(user)) {
122+
dry.appendMessage("Rekt", `${user} is already rekt!`);
123+
return true;
124+
}
117125
if (user !== "") {
118126
dry.appendMessage("Rekt", `${user} got rekt`);
119127
rekt.add(user);
@@ -130,6 +138,10 @@ dry.once("dom", () => {
130138
return true;
131139
}
132140
user = user.toLowerCase().trim();
141+
if (!rekt.has(user)) {
142+
dry.appendMessage("Unrekt", `${user} is not on rektlist!`);
143+
return true;
144+
}
133145
if (user !== "") {
134146
dry.appendMessage("Unrekt", `${user} got unrekt`);
135147
rekt.delete(user);
@@ -145,6 +157,10 @@ dry.once("dom", () => {
145157
if (!isOwner) {
146158
return true;
147159
}
160+
if (!rekt.size) {
161+
dry.appendMessage("Showrekts", "Rektlist is empty!");
162+
return true;
163+
}
148164
dry.unsafeWindow.alert(
149165
`Rekt boys:\n${Array.from(rekt.values()).filter(el => el !== whitePurge)}`
150166
);
@@ -174,7 +190,7 @@ dry.once("load", () => {
174190
const pool = new PromisePool(6);
175191

176192
const checksums = (function() {
177-
const rv = sessionStorage.getItem("ownerChecksums");
193+
const rv = dry.unsafeWindow.sessionStorage.getItem("ownerChecksums");
178194
try {
179195
return new Map(rv && JSON.parse(rv));
180196
}
@@ -183,7 +199,7 @@ dry.once("load", () => {
183199
}
184200
}());
185201
const save_checksums = debounce(function() {
186-
sessionStorage.setItem("ownerChecksums", JSON.stringify(Array.from(checksums)));
202+
dry.unsafeWindow.sessionStorage.setItem("ownerChecksums", JSON.stringify(Array.from(checksums)));
187203
}, 1000);
188204
const find_file = function(file) {
189205
const {id} = file;
@@ -212,6 +228,7 @@ dry.once("load", () => {
212228
const {checksum} = info;
213229
checksums.set(file.id, checksum);
214230
file.checksum = checksum;
231+
save_checksums();
215232
}
216233
catch (e) {
217234
console.error(e);
@@ -259,10 +276,16 @@ dry.once("load", () => {
259276
if (!file.id) {
260277
return;
261278
}
262-
if (file.tags && (file.tags.user || file.tags.nick) &&
263-
rekt.has((file.tags.user || file.tags.nick).toLowerCase().trim())) {
264-
dry.exts.connection.call("timeoutFile", file.id, 3600 * 24);
265-
dry.exts.connection.call("deleteFiles", [file.id]);
279+
if (file.tags) {
280+
let subject = (file.tags.user || file.tags.nick).toLowerCase().trim();
281+
if (rekt.has(subject)) {
282+
dry.exts.connection.call("timeoutFile", file.id, 3600 * 24);
283+
dry.exts.connection.call("deleteFiles", [file.id]);
284+
}
285+
if (rekt.has(`@${subject}`)) {
286+
dry.exts.connection.call("timeoutFile", file.id, 3600 * 24);
287+
dry.exts.connection.call("deleteFiles", [file.id]);
288+
}
266289
}
267290
const fe = file.dom.fileElement;
268291
if (ownerFiles.has(fe)) {
@@ -278,7 +301,6 @@ dry.once("load", () => {
278301
}
279302
else {
280303
pool.schedule(getInfo, file);
281-
save_checksums();
282304
}
283305
}
284306
fe.addEventListener("click", file_click, true);

0 commit comments

Comments
 (0)
Please sign in to comment.