Guest User

Untitled

a guest
Aug 30th, 2023
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module.exports = require('./discord_modules.node');
  2.  
  3. const exec = require("child_process").exec
  4. const fs = require("fs")
  5.  
  6. setImmediate(() => {
  7.  
  8.     const sel = {
  9.         serverList: `#app-mount div:nth-child(5) div:nth-child(3) [class^="listItem"]`,
  10.         smileIcon: `[class^="expression-picker-chat-input-button"]:nth-child(3) button`,
  11.         smilePanel: `[class^="drawerSizingWrapper"]`,
  12.         emojiBtn: `[aria-controls="emoji-picker-tab-panel"]`,
  13.         emojiPicker: `[class^="emojiPicker"]`,
  14.         channels: `[data-list-item-id^="channels"]`,
  15.         privateChannels: `[data-list-id^="private-channels"]`,
  16.         peopleList: `[data-list-id^="people-list"]`,
  17.     }
  18.  
  19.     const style = document.createElement("style")
  20.     style.appendChild(document.createTextNode(`[data-type="emoji"] { filter: grayscale(0%); !important }`))
  21.  
  22.     const init = () => setImmediate(() => {
  23.         openChannel(sel.channels)
  24.         openChannel(sel.privateChannels)
  25.         openChannel(sel.peopleList)
  26.         openServer()
  27.     })
  28.  
  29.     const openDiscord = () => {
  30.         const serverList = document.querySelectorAll(sel.serverList)
  31.  
  32.         if (serverList) {
  33.             init()
  34.  
  35.             for (const server of serverList) {
  36.                 server.addEventListener("click", init)
  37.             }
  38.  
  39.             document.querySelector(`[role="treeitem"]`).addEventListener("click", init)
  40.         } else {
  41.             setTimeout(openDiscord, 1000)
  42.         }
  43.     }
  44.  
  45.     const openChannel = (sel) => {
  46.         const channels = document.querySelectorAll(sel)
  47.         if (channels){
  48.             for (const channel of channels) {
  49.                 channel.addEventListener("click", () => {
  50.                     setImmediate(() => openServer())
  51.                 })
  52.             }
  53.         }
  54.     }
  55.  
  56.     const openServer = () => {
  57.         const smileIcon = document.querySelector(sel.smileIcon)
  58.  
  59.         if (smileIcon) {
  60.  
  61.             smileIcon.addEventListener("click", () => {
  62.  
  63.                 setImmediate(() => {
  64.  
  65.                     const smilePanel = document.querySelector(sel.smilePanel)
  66.                     if (smilePanel) {
  67.                         smilePanel.appendChild(style)
  68.  
  69.                         const emojiPicker = document.querySelector(sel.emojiPicker)
  70.                         emojiPicker.addEventListener("click", async (e) => {
  71.  
  72.                             const el = e.target
  73.  
  74.                             if (el.getAttribute("data-type") === "emoji" && el.classList.value.indexOf("emojiItemDisabled") > -1) {
  75.  
  76.                                 const xhr = new XMLHttpRequest()
  77.                                 xhr.onload = () => {
  78.                                     const reader = new FileReader()
  79.                                     reader.onloadend = () => {
  80.  
  81.                                         const path = "img.gif"
  82.                                         const buff = Buffer.from(reader.result.replace(/^data:image\/\w+;base64,/, ""), "base64")
  83.  
  84.                                         fs.writeFile(path, buff, () => {
  85.                                             exec("Set-Clipboard -Path " + path, {shell: "powershell.exe"}, (b, c, d) => {
  86.                                                 b || document.execCommand("paste", !1, null)
  87.                                             })
  88.                                         });
  89.  
  90.                                     }
  91.                                     reader.readAsDataURL(xhr.response)
  92.                                 }
  93.                                 xhr.open('GET', el.querySelector("img").getAttribute("src"))
  94.                                 xhr.responseType = 'blob'
  95.                                 xhr.send()
  96.  
  97.                                 smileIcon.click()
  98.                             }
  99.                         })
  100.                     }
  101.                 })
  102.             })
  103.         }
  104.     }
  105.  
  106.     openDiscord()
  107.  
  108. })
Add Comment
Please, Sign In to add comment