Skip to content

Instantly share code, notes, and snippets.

@dirtycajunrice
Last active September 6, 2024 22:39
Show Gist options
  • Save dirtycajunrice/0a0bc1349a333ddb826149236cd5ef58 to your computer and use it in GitHub Desktop.
Save dirtycajunrice/0a0bc1349a333ddb826149236cd5ef58 to your computer and use it in GitHub Desktop.
Script to pull users from discord server
// ==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)
}
@bajro17
Copy link

bajro17 commented Dec 14, 2021

I get only visible users is it possible to get all?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment