Last active
December 24, 2020 01:08
-
-
Save guicaulada/c093c7c0a5364f4150c2d2003f1e7579 to your computer and use it in GitHub Desktop.
Discord Console Functions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Use CTRL + SHIFT + I to open Discord Developer Console | |
| let _$$ = $$ // Setup jQuery | |
| // Forever utilities | |
| let forevers = {} | |
| let startForever = async (id, f, t) => { | |
| f() | |
| forevers[id] = setTimeout(() => startForever(id, f, t), t) | |
| } | |
| let stopForever = id => { | |
| clearTimeout(forevers[id]) | |
| delete forevers[id] | |
| } | |
| // Verify message group username | |
| let verifyUsername = (username, message, index, messages) => { | |
| if (!username) return true; | |
| while(index >= 0 && !messages[index].attributes.class.value.includes('groupStart-')) { | |
| index -= 1 | |
| } | |
| return messages[index].textContent.startsWith(username) | |
| } | |
| // Lookup messages | |
| let lastLookupMessages = [] | |
| let lookupMessage = async (lookup={}, interval=1000) => { | |
| const messages = _$$('[class^="message-"]') | |
| const lastMessage = messages.filter((m, i) => | |
| (!lastLookupMessages.includes(m)) && | |
| (!lookup.text || m.textContent.includes(lookup.text)) && | |
| (verifyUsername(lookup.username, m, i, messages))).pop() | |
| if (lastMessage) { | |
| lastLookupMessages.push(lastMessage) | |
| return lastMessage.textContent | |
| } else { | |
| throw Error("Message not found!") | |
| } | |
| } | |
| // Lookup reactions | |
| let lastLookupReactions = [] | |
| let lookupReaction = async (lookup={}, interval=1000) => { | |
| const messages = _$$('[class^="message-"]') | |
| const reactions = _$$('[class^="reactionInner-"]') | |
| const lastReaction = reactions.filter(e => | |
| (!lastLookupReactions.includes(e)) && | |
| (!lookup.emote || e.outerHTML.includes(lookup.emote))).pop() | |
| const lastMessage = messages.filter((m, i) => | |
| (!lookup.text || m.textContent.includes(lookup.text)) && | |
| (verifyUsername(lookup.username, m, i, messages)) && | |
| m.querySelector('[class^="reactionInner-"]') == lastReaction).pop() | |
| if (lastReaction && lastMessage) { | |
| lastLookupReactions.push(lastReaction) | |
| return lastReaction | |
| } else { | |
| throw Error("Reaction not found!") | |
| } | |
| } | |
| // Get the REMOVED information from the Network tab on the "messages" request | |
| // Also... the referrer number might change.. to be honest I didn't figure out what that is | |
| let sendMessage = (channel, content) => { | |
| return fetch(`https://discord.com/api/v8/channels/${channel}/messages`, { | |
| "headers": { | |
| "accept": "*/*", | |
| "accept-language": "en-US", | |
| "authorization": "REMOVED", | |
| "content-type": "application/json", | |
| "sec-fetch-dest": "empty", | |
| "sec-fetch-mode": "cors", | |
| "sec-fetch-site": "same-origin", | |
| "x-super-properties": "REMOVED" | |
| }, | |
| "referrer": `https://discord.com/channels/757958131618676897/${channel}`, | |
| "referrerPolicy": "no-referrer-when-downgrade", | |
| "body": `{"content":"${content}","tts":false}`, | |
| "method": "POST", | |
| "mode": "cors", | |
| "credentials": "include" | |
| }); | |
| } | |
| // Example of message lookup | |
| startForever("send", () => lookupMessage({text: "text to lookup", username: "Username"}).then(() => sendMessage("785989864826863617", "text to send")).catch(() => {}), 1000) | |
| startForever("smile", () => lookupReaction({emote: "😊", username: "Username"}).then((e) => e.click()).catch(() => {}), 1000) | |
| // Use to clear interval | |
| stopForever("send") | |
| stopForever("smile") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment