Created
June 23, 2022 16:30
-
-
Save Raz-js/484db81031bd954a10e06c96dcfa6209 to your computer and use it in GitHub Desktop.
Grab Discord Bot's Invites using just their id
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
<!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">© 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