-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrecyclescript.user.js
78 lines (70 loc) · 3.42 KB
/
recyclescript.user.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
// ==UserScript==
// @name RecycleScript
// @version 1.0
// @description Allows you to quote without quotes
// @author Jomity
// @match *://artofproblemsolving.com/*
// ==/UserScript==
(function() {
'use strict';
function waitForElementToDisplay(selector, callback, checkFrequencyInMs, timeoutInMs) {
var startTimeInMs = Date.now();
(function loopSearch() {
if (document.querySelector(selector) != null) {
callback();
return;
}
else {
setTimeout(function () {
if (timeoutInMs && Date.now() - startTimeInMs > timeoutInMs) {
return;
}
loopSearch();
}, checkFrequencyInMs);
}
})();
}
window.addEventListener('load', function() {
for (let i = 0; i < 60000; i++) {
setTimeout(function timer() {
let posts = document.getElementsByClassName("cmty-post-right");
for (let j = 0; j < posts.length; j++) {
if (posts[j].children[posts[j].children.length-1].innerHTML !== 'r') {
let element = document.createElement("span");
posts[j].appendChild(element);
element.title="Repost this post";
element.innerHTML = "r";
element.classList.add("cmty-post-repost");
element.classList.add("aops-font");
element.onclick = function() {
var quote = element.parentNode.getElementsByClassName("cmty-post-quote")[0];
var lastValue = null;
if (document.getElementsByClassName("cmty-post-textarea").length > 0) {
if (quote.closest("#feed-left") == null) {
lastValue = document.getElementsByClassName("cmty-post-textarea")[0].value;
}
else if (quote.closest("#feed-left").querySelector("textarea")) {
lastValue = quote.closest("#feed-left").querySelector("textarea").value;
}
}
quote.click();
if (quote.closest("#feed-left") == null) {
waitForElementToDisplay(".cmty-post-textarea", function() {
let t = document.getElementsByClassName("cmty-post-textarea")[0].value;
t = t.replace(lastValue,'');
document.getElementsByClassName("cmty-post-textarea")[0].value = t.substring(t.indexOf(']') + 1).slice(0, -10);
}, 5, 200);
}
else {
setTimeout(function() {
let t = quote.closest("#feed-left").querySelector("textarea").value;
quote.closest("#feed-left").querySelector("textarea").value = t.substring(t.indexOf(']') + 1).slice(0, -10);
}, 20);
}
};
}
}
}, i * 200);
}
}, false);
})();