-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.js
95 lines (78 loc) · 2.51 KB
/
index.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
(() => {
let messagesLength = -1;
let lastMessageLength = -1;
let events = {};
window.chatbot = {
sendMessage: function(...args) {
let message = document.querySelector("#bfTqV");
let button = message.parentElement.parentElement.parentElement.children[1].querySelector('button');
button.disabled = false;
if (message && button) {
let lastValue = message.value + "";
message.value = args.join("");
button.ariaDisabled = null
button.click();
let success = message.value === "";
message.value = lastValue;
return success;
}
return false;
},
on: function(event, f) {
if (!events[event] && typeof(f) == "function")
events[event] = f
},
emit: function(event, ...args) {
if (events[event])
events[event](...args);
}
}
if (window.messagesInterval)
try {
clearInterval(messagesInterval);
} catch (err) {}
window.messagesInterval = setInterval(() => {
var messages = document.querySelectorAll('[data-sender-name]');
if (messages) {
if (messages.length > 0)
var message = messages[messages.length - 1];
if (messagesLength === -1) {
messagesLength = messages.length;
lastMessageLength = message ? message.childNodes[1].childNodes.length : 0;
} else if (messagesLength != messages.length || (message && lastMessageLength != message.childNodes[1].childNodes.length)) {
let messageText = message.childNodes[1].childNodes[message.childNodes[1].childNodes.length - 1].dataset.messageText;
messagesLength = messages.length;
lastMessageLength = message.childNodes[1].childNodes.length;
window.chatbot.emit("message", message.dataset.senderName, messageText, parseInt(message.dataset.timestamp));
}
}
}, 100);
})();
// Sample
var prefix = '.';
chatbot.on("message", (username, message, date) => {
let m_prefix = message.slice(0, prefix.length);
let splitted = message.slice(prefix.length).toLowerCase().split(' ');
if (m_prefix === prefix) {
switch (splitted[0]) {
case "ping":
chatbot.sendMessage("Pong!");
break;
case "calc":
let expression = splitted.slice(1).join("").replace(/[^-()\d/*+.]/g, "");
let value = eval(expression);
if (value)
chatbot.sendMessage("Expression: ", expression, "\nResult: ", value);
break;
case "hi":
chatbot.sendMessage("Hello, ", username, '!');
break;
case "invite":
chatbot.sendMessage("Invite URL: ", window.location.href.split('?')[0]);
break;
default:
chatbot.sendMessage("Command not found.");
break;
}
}
});