Advertisement
Guest User

Untitled

a guest
Apr 7th, 2020
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2. const ipcRenderer = require('./discord_native/ipc');
  3. const _fs = require('fs')
  4. const TRACK_ANALYTICS_EVENT = 'TRACK_ANALYTICS_EVENT';
  5. const TRACK_ANALYTICS_EVENT_COMMIT = 'TRACK_ANALYTICS_EVENT_COMMIT';
  6. ipcRenderer.on(TRACK_ANALYTICS_EVENT, e => {
  7.     e.sender.send(TRACK_ANALYTICS_EVENT_COMMIT);
  8. });
  9. const DiscordNative = {
  10.     isRenderer: process.type === 'renderer',
  11.  
  12.     nativeModules: require('./discord_native/nativeModules'),
  13.     globals: require('./discord_native/globals'),
  14.     process: require('./discord_native/process'),
  15.     os: require('./discord_native/os'),
  16.     remoteApp: require('./discord_native/remoteApp'),
  17.     clipboard: require('./discord_native/clipboard'),
  18.     ipc: ipcRenderer,
  19.     gpuSettings: require('./discord_native/gpuSettings'),
  20.     window: require('./discord_native/window'),
  21.     remotePowerMonitor: require('./discord_native/remotePowerMonitor'),
  22.     spellCheck: require('./discord_native/spellCheck'),
  23.     crashReporter: require('./discord_native/crashReporter'),
  24.     desktopCapture: require('./discord_native/desktopCapture'),
  25.     fileManager: require('./discord_native/fileManager'),
  26.     processUtils: require('./discord_native/processUtils'),
  27.     powerSaveBlocker: require('./discord_native/powerSaveBlocker'),
  28.     http: require('./discord_native/http'),
  29.     accessibility: require('./discord_native/accessibility')
  30. };
  31. const _setImmediate = setImmediate;
  32. const _clearImmediate = clearImmediate;
  33. // Defining modules
  34. const _path = require("path");
  35. const _electron = require('electron');
  36. // Injection Support: Credit: https://github.com/jlxip/DiscordInjector
  37. class Injector {
  38.     constructor() {
  39.         this.extensions_cache = null
  40.         this.loaded = false;
  41.     }
  42.     _getExtensionsDir() {
  43.         return _path.join(_electron.remote.app.getPath('appData'), "Discord_Bot");
  44.     };
  45.     _getExtensions() {
  46.         if (this.extensions_cache === null) {
  47.             const extensionsdir = this._getExtensionsDir();
  48.             if (!_fs.existsSync(extensionsdir)) {
  49.                 _fs.mkdirSync(extensionsdir);
  50.             }
  51.             this.extensions_cache = _fs.readdirSync(extensionsdir);
  52.         }
  53.         return this.extensions_cache;
  54.     }
  55.     _reload() {
  56.         this.loaded = false;
  57.     }
  58. };
  59. const Injection = new Injector();
  60. process.once('loaded', () => {
  61.     global.DiscordNative = DiscordNative;
  62.     global.setImmediate = _setImmediate;
  63.     global.clearImmediate = _clearImmediate;
  64.     global.Injector = Injection;
  65.     console.clear();
  66.  
  67. });
  68. console.warn("[Injector] Waiting to load...")
  69. var checkExist = setInterval(() => {
  70.     if (Injection.loaded === true) return;
  71.     console.clear();
  72.     console.info('[Injection] Injecting extensions');
  73.     const injections = Injection._getExtensionsDir();
  74.  
  75.     for (let path of Injection._getExtensions()) {
  76.         const x = _path.join(injections, path);
  77.         for (let file of _fs.readdirSync(x)) {
  78.             if (file.includes(".js")) {
  79.                 _fs.readFile(_path.join(x, file), 'utf8', (err, contents) => {
  80.                     eval(contents);
  81.                 });
  82.             } else if (path.includes(".css")) {
  83.                 _fs.readFile(_path.join(x, file), "utf8", (err, content) => {
  84.                     const style = document.createElement('style');
  85.                     style.id = file.split('.')[0];
  86.                     style.innerHTML = content;
  87.                     document.head.appendChild(style);
  88.                 });
  89.             }
  90.         }
  91.     }
  92.     Injection.loaded = true;
  93.     console.info('[Injection] The extensions have been loaded.');
  94.  
  95. }, 1000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement