Skip to content

Instantly share code, notes, and snippets.

@Raz-js
Created June 23, 2022 16:30
Show Gist options
  • Save Raz-js/484db81031bd954a10e06c96dcfa6209 to your computer and use it in GitHub Desktop.
Save Raz-js/484db81031bd954a10e06c96dcfa6209 to your computer and use it in GitHub Desktop.
Grab Discord Bot's Invites using just their id
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta name="description" content="A small calculator that generates Discord OAuth invite links"> <meta name="author" content="abalabahaha"> <meta name="keywords" content="Discord, bot, permissions, api"> <link rel="icon" type="image/ico" href="https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/RedDot.svg/1200px-RedDot.svg.png" /> <title>Get Any Bot's Invite Link!</title> <style>@font-face{font-family:Roboto;font-weight:400;font-style:normal;src:local("Roboto"),local("Roboto-Regular"),url(font/roboto-v16-latin-regular.woff2) format("woff2"),url(font/roboto-v16-latin-regular.woff) format("woff")}body,html{height:100%;width:100%;margin:0;outline:0;padding:0;font-family:Roboto,sans-serif;font-size:16px}body{background-color:#2c2f33;color:#ddd}h3{color:#fff;font-weight:400}a.disabled{color:#999;cursor:not-allowed}a{color:#fff}.light{background-color:#fff;color:#2c2f33}.light h3{color:#000;font-weight:400}.light a{color:#00f}.light .eyes{filter:invert(1)}input[type=text]{background-color:transparent;border:none;border-bottom:2px solid #7289da;color:#fff;outline:0;padding:.25em}input[type=text].error{border-bottom:2px solid red}input[type=text].success{border-bottom:2px solid #2f2}.small{font-size:.8em}.container{margin:0 auto;max-width:1280px;padding:.5em}.footer,.header{background-color:#7289da;color:#fff}.header{max-height:3rem;text-align:center;z-index:1}.header .logo{height:100%;width:auto;max-height:2.5rem;max-width:100%;object-fit:contain;vertical-align:middle}.header .right-link{float:right;padding:.75em 1em;text-decoration:none;z-index:1}.header .right-link.eyes{padding:0 .5em}.header .eyes img{height:100%;width:auto;max-height:3rem;max-width:100%;object-fit:contain;vertical-align:middle}.header .title{font-size:1.5rem;line-height:3rem;height:100%;vertical-align:middle}.result .equation{font-size:.8em}.result .permissions{font-size:1.5em}.selector{margin-bottom:1em;overflow:auto;margin-left:-.5em;margin-right:-.5em}.selector .col-me-maybe{float:left;margin:0 auto;min-height:1px;box-sizing:border-box;padding:0 .5em;width:100%}ul{display:inline-block;list-style:none;margin:0;padding:0}input[type=checkbox i]{box-sizing:border-box;color:inherit;margin:0;padding:0}input[type=checkbox i]:checked,input[type=checkbox i]:not(:checked){position:absolute;left:-9999em;opacity:0}input[type=checkbox i]+label{position:relative;padding-left:1.75em;cursor:pointer;display:inline-block;height:2em;line-height:1.375em}input[type=checkbox i]+label:after,input[type=checkbox i]+label:before{content:'';position:absolute;top:0;left:0;width:1em;height:1em;border:2px solid #888;border-radius:2px;transition:.2s;z-index:0}input[type=checkbox i]+label:before{border:2px solid transparent}input[type=checkbox i]:checked+label:after,input[type=checkbox i]:checked+label:before{content:"";left:0;position:absolute}input[type=checkbox i]:checked+label:after{background-color:#7289da;border-color:#7289da}input[type=checkbox i]:checked+label:before{top:0;left:-.1em;width:.2em;height:.6em;border-top:.2em solid transparent;border-right:.2em solid #fff;border-bottom:.2em solid #fff;border-left:.2em solid transparent;transform:rotateZ(45deg);transform-origin:100% 100%;z-index:1}.footer{box-sizing:border-box;height:3em;max-height:3em;font-size:.8em;margin:0;padding:1em}.large-only{display:none}.oauth a{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:initial;word-wrap:break-word}.orangutan-not-orange{color:#faa61a}.light .orangutan-not-orange{color:#c88414}.container.stacky-footer{box-sizing:border-box;z-index:0;min-height:calc(100vh - 3em - 3em)}@media only screen and (min-width:640px){.footer{font-size:1em}.large-only{display:inline-block}span.large-only{display:inline}.selector .col-me-maybe{width:33.3333333333%}}</style> </head> <body> <div class="header"> <img class="logo" src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/RedDot.svg/1200px-RedDot.svg.png" alt="Discord" /> <span class="title">Get Any Bot's Invite Link</span> <a class="right-link eyes" href="https://the-red-hand.com" onclick="swapTheme()"> <img src="https://rmhcsc.org/img/icons/icn-home.png" alt="theme" /> </a> </div> <div class="container stacky-footer"> <div class="result"> <p> <span class="permissions">Permissions: <code id="number">0</code></span> <br /> <span class="equation">Equation: <code id="equation">0x0</code></span> </p> </div> <div class="selector"> <div class="col-me-maybe"> <h3>General Permissions</h3> <ul> <li> <input id="generalViewChannels" type="checkbox" onclick="recalculate()"> <label for="generalViewChannels">View Channels</label> </li> <li> <input id="generalManageChannels" type="checkbox" onclick="recalculate()"> <label class="orangutan-not-orange" for="generalManageChannels">Manage Channels</label> </li> <li> <input id="generalManageRoles" type="checkbox" onclick="recalculate()"> <label class="orangutan-not-orange" for="generalManageRoles">Manage Roles</label> </li> <li> <input id="generalManageEmojis" type="checkbox" onclick="recalculate()"> <label class="orangutan-not-orange" for="generalManageEmojis">Manage Emojis and Stickers</label> </li> <li> <input id="generalViewAuditLog" type="checkbox" onclick="recalculate()"> <label for="generalViewAuditLog">View Audit Log</label> </li> <li> <input id="generalViewGuildInsights" type="checkbox" onclick="recalculate()"> <label for="generalViewGuildInsights">View Server Insights</label> </li> <li> <input id="generalManageWebhooks" type="checkbox" onclick="recalculate()"> <label class="orangutan-not-orange" for="generalManageWebhooks">Manage Webhooks</label> </li> <li> <input id="generalManageGuild" type="checkbox" onclick="recalculate()"> <label class="orangutan-not-orange" for="generalManageGuild">Manage Server</label> </li> <li> <input id="generalCreateInvite" type="checkbox" onclick="recalculate()"> <label for="generalCreateInvite">Create Invite</label> </li> <li> <input id="generalChangeNickname" type="checkbox" onclick="recalculate()"> <label for="generalChangeNickname">Change Nickname</label> </li> <li> <input id="generalManageNicknames" type="checkbox" onclick="recalculate()"> <label for="generalManageNicknames">Manage Nicknames</label> </li> <li> <input id="generalKickMembers" type="checkbox" onclick="recalculate()"> <label class="orangutan-not-orange" for="generalKickMembers">Kick Members</label> </li> <li> <input id="generalBanMembers" type="checkbox" onclick="recalculate()"> <label class="orangutan-not-orange" for="generalBanMembers">Ban Members</label> </li> <li> <input id="generalManageEvents" type="checkbox" onclick="recalculate()"> <label class="orangutan-not-orange" for="generalManageEvents">Manage Events</label> </li> <li> <input id="generalAdministrator" type="checkbox" onclick="recalculate()"> <label class="orangutan-not-orange" for="generalAdministrator">Administrator</label> </li> </ul> </div> <div class="col-me-maybe"> <h3>Text Permissions</h3> <ul> <li> <input id="textSendMessages" type="checkbox" onclick="recalculate()"> <label for="textSendMessages">Send Messages</label> </li> <li> <input id="textSendMessagesThreads" type="checkbox" onclick="recalculate()"> <label for="textSendMessagesThreads">Send Messages in Threads</label> </li> <li> <input id="textCreatePublicThreads" type="checkbox" onclick="recalculate()"> <label for="textCreatePublicThreads">Create Public Threads</label> </li> <li> <input id="textCreatePrivateThreads" type="checkbox" onclick="recalculate()"> <label for="textCreatePrivateThreads">Create Private Threads</label> </li> <li> <input id="textEmbedLinks" type="checkbox" onclick="recalculate()"> <label for="textEmbedLinks">Embed Links</label> </li> <li> <input id="textAttachFiles" type="checkbox" onclick="recalculate()"> <label for="textAttachFiles">Attach Files</label> </li> <li> <input id="textAddReactions" type="checkbox" onclick="recalculate()"> <label for="textAddReactions">Add Reactions</label> </li> <li> <input id="textUseExternalEmojis" type="checkbox" onclick="recalculate()"> <label for="textUseExternalEmojis">Use External Emoji</label> </li> <li> <input id="textUseExternalStickers" type="checkbox" onclick="recalculate()"> <label for="textUseExternalStickers">Use External Stickers</label> </li> <li> <input id="textMentionEveryone" type="checkbox" onclick="recalculate()"> <label for="textMentionEveryone">Mention @everyone, @here, and All Roles</label> </li> <li> <input id="textManageMessages" type="checkbox" onclick="recalculate()"> <label class="orangutan-not-orange" for="textManageMessages">Manage Messages</label> </li> <li> <input id="textManageThreads" type="checkbox" onclick="recalculate()"> <label class="orangutan-not-orange" for="textManageThreads">Manage Threads</label> </li> <li> <input id="textReadMessageHistory" type="checkbox" onclick="recalculate()"> <label for="textReadMessageHistory">Read Message History</label> </li> <li> <input id="textSendTTSMessages" type="checkbox" onclick="recalculate()"> <label for="textSendTTSMessages">Send Text-to-Speech Messages</label> </li> <li> <input id="textUseSlashCommands" type="checkbox" onclick="recalculate()"> <label for="textUseSlashCommands">Use Application Commands</label> </li> </ul> </div> <div class="col-me-maybe"> <h3>Voice Permissions</h3> <ul> <li> <input id="voiceConnect" type="checkbox" onclick="recalculate()"> <label for="voiceConnect">Connect</label> </li> <li> <input id="voiceSpeak" type="checkbox" onclick="recalculate()"> <label for="voiceSpeak">Speak</label> </li> <li> <input id="voiceStream" type="checkbox" onclick="recalculate()"> <label for="voiceStream">Video</label> </li> <li> <input id="voiceStartActivities" type="checkbox" onclick="recalculate()"> <label for="voiceStartActivities">Start Activities</label> </li> <li> <input id="voiceUseVAD" type="checkbox" onclick="recalculate()"> <label for="voiceUseVAD">Use Voice Activity</label> </li> <li> <input id="voicePrioritySpeaker" type="checkbox" onclick="recalculate()"> <label for="voicePrioritySpeaker">Priority Speaker</label> </li> <li> <input id="voiceMuteMembers" type="checkbox" onclick="recalculate()"> <label for="voiceMuteMembers">Mute Members</label> </li> <li> <input id="voiceDeafenMembers" type="checkbox" onclick="recalculate()"> <label for="voiceDeafenMembers">Deafen Members</label> </li> <li> <input id="voiceMoveMembers" type="checkbox" onclick="recalculate()"> <label for="voiceMoveMembers">Move Members</label> </li> <li> <input id="voiceStageRequestSpeak" type="checkbox" onclick="recalculate()"> <label for="voiceStageRequestSpeak">Request to Speak</label> </li> </ul> </div> </div> <p><span class="orangutan-not-orange">The Red Hand Discord: <a href="dsc.gg/trh">Invite Link</a>.</span> <hr /> <div class="oauth"> <h3>Discord invite link Generator</h3> <p> <span>Bot ID: <input id="clientID" type="text" placeholder="Insert Bot ID here" onkeyup="recalculate()"></span> <br /> <div class="selector"> <div class="col-me-maybe"> <input id="oauthCodeGrant" type="checkbox" onclick="recalculate()"> <label for="oauthCodeGrant">Require Code Grant</label> </div> <div class="col-me-maybe"> <span>Redirect URI: <input id="oauthRedirect" type="text" placeholder="(optional)" onkeyup="recalculate()"></span> </div> <div class="col-me-maybe"> <span>Scope: <input id="oauthScopes" type="text" placeholder="bot" onkeyup="recalculate()"></span> </div> </div> <span>Link: <a href="#" id="invite"></a></span> </p> </div> </div> <div class="footer"> <span class="credit">&copy; Made by The Red Hand | TRH</span> </div> <script type="text/javascript">var perms={generalViewChannels:1024,generalCreateInvite:1,generalKickMembers:2,generalBanMembers:4,generalAdministrator:8,generalManageChannels:16,generalManageGuild:32,generalChangeNickname:67108864,generalManageNicknames:134217728,generalManageRoles:268435456,generalManageWebhooks:536870912,generalManageEmojis:1073741824,generalViewAuditLog:128,generalViewGuildInsights:524288,generalManageEvents:8589934592,textAddReactions:64,textSendMessages:2048,textSendMessagesThreads:274877906944,textCreatePublicThreads:34359738368,textCreatePrivateThreads:68719476736,textSendTTSMessages:4096,textManageMessages:8192,textManageThreads:17179869184,textEmbedLinks:16384,textAttachFiles:32768,textReadMessageHistory:65536,textMentionEveryone:131072,textUseExternalEmojis:262144,textUseExternalStickers:137438953472,textUseSlashCommands:2147483648,voiceConnect:1048576,voiceSpeak:2097152,voiceStream:512,voiceMuteMembers:4194304,voiceDeafenMembers:8388608,voiceMoveMembers:16777216,voiceUseVAD:33554432,voiceStartActivities:549755813888,voicePrioritySpeaker:256,voiceStageRequestSpeak:4294967296},darkTheme=!0;function swapTheme(){darkTheme=!darkTheme,document.body.className=darkTheme?"":"light"}function recalculate(e,t,n){t=t||0;var a=[];for(var s in perms)"voiceViewChannel"!==s&&document.getElementById(s).checked&&(t+=perms[s],a.push("0x"+perms[s].toString(16)));if(a=" = "+a.join(" | "),document.getElementById("number").innerHTML=""+t,document.getElementById("equation").innerHTML=t+a,n||setHash(""+t),document.getElementById("clientID").value){var o=document.getElementById("clientID").value;o.match(/^\d{17,18}$/)?(document.getElementById("clientID").className="success",document.getElementById("invite").className=""):(document.getElementById("clientID").className="error",document.getElementById("invite").className="disabled");var i=document.getElementById("oauthScopes").value,c="https://discord.com/oauth2/authorize?client_id="+o+"&scope="+(i=i?encodeURIComponent(i.trim()):"bot")+"&permissions="+t;document.getElementById("oauthCodeGrant").checked&&(c+="&response_type=code"),document.getElementById("oauthRedirect").value&&(c+="&redirect_uri="+encodeURIComponent(document.getElementById("oauthRedirect").value)),document.getElementById("invite").className="",document.getElementById("invite").innerHTML=document.getElementById("invite").href=c}else document.getElementById("clientID").className="error",document.getElementById("invite").className="disabled",document.getElementById("invite").innerHTML="https://discord.com/oauth2/authorize?client_id=INSERT_CLIENT_ID_HERE&scope=bot&permissions="+(t+"").split("=")[0].trim(),document.getElementById("invite").href="#"}function getHash(e){return(e=e||window.location.hash)&&1<e.length?e.substring(1):null}function setHash(e){history.pushState?history.pushState(null,null,"#"+e):window.location.hash="#"+e}function syncCheckboxes(e){var t=Math.floor(e/4294967296),n=Math.floor(e%4294967296);for(var a in perms)4294967296<=perms[a]&&t&Math.floor(perms[a]/4294967296)||perms[a]<4294967296&&n&perms[a]?document.getElementById(a).checked=!0:document.getElementById(a).checked=!1}window.onpopstate=function(e){syncCheckboxes(+getHash(e.target.location.hash)),recalculate(null,null,!0)},window.onhashchange=function(e){syncCheckboxes(+getHash(e.target.location.hash)),recalculate(null,null,!0)},syncCheckboxes(+getHash()),recalculate(null,null,!0)</script> </body> </html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment