Last active
September 6, 2024 22:39
-
-
Save dirtycajunrice/0a0bc1349a333ddb826149236cd5ef58 to your computer and use it in GitHub Desktop.
Script to pull users from discord server
This file contains 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
// ==UserScript== | |
// @name Get Discord Server Members | |
// @namespace DirtyCajunRice | |
// @match https://discord.com/channels/* | |
// @grant GM_log | |
// @grant GM_registerMenuCommand | |
// @version 1.0.1 | |
// @author DirtyCajunRice | |
// @description Gets all visible member IDs in a discord server | |
// @run-at document-idle | |
// @require https://cdn.jsdelivr.net/npm/@violentmonkey/shortcut@1 | |
// @downloadURL https://gist.githubusercontent.com/dirtycajunrice/0a0bc1349a333ddb826149236cd5ef58/raw/getDiscordServerMembers.js | |
// @homepageURL https://gist.github.com/dirtycajunrice/0a0bc1349a333ddb826149236cd5ef58 | |
// ==/UserScript== | |
const AvatarURLPrefix = "https://cdn.discordapp.com/avatars/" | |
var GuildMembers = {}; | |
var GuildMembersPane = {}; | |
GM_registerMenuCommand("Get Member List", collect); | |
VM.shortcut.register('c-s-q', collect); | |
function collect() { | |
let member_count = Object.keys(GuildMembers).length | |
let added = 0 | |
let avatars = Array.from(document.querySelectorAll("img[src^='" + AvatarURLPrefix + "']")).filter(item => !item.className.includes("clickable")) | |
for (i of avatars) { | |
try { | |
let mid = i.src.split("/")[4] | |
} catch (e) { | |
console.log(`Error Kind: ${e.name}`) | |
console.log(`Message: ${e.message}`) | |
console.log(`Location: ${e.fileName}:${e.lineNumber}:${e.columnNumber}`) | |
console.log(`Stack Trace: ${e.stack}`) | |
console.log(`Current Data:`) | |
console.log(avatars) | |
console.log(i) | |
continue | |
} | |
GuildMembers[mid] = i.parentElement.parentElement.parentElement.parentElement.getAttribute("aria-label").split(",")[0] | |
} | |
avatars[avatars.length-1].scrollIntoView() | |
let new_member_count = Object.keys(GuildMembers).length | |
added = new_member_count - member_count | |
member_count = new_member_count | |
if (added > 0) attempts = 0 | |
GM_log(`Members - Added: ${added} | Total ${member_count}`) | |
GM_log(GuildMembers) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I get only visible users is it possible to get all?