Discord encryption

Encrypt and decrypt messages on Discord on the fly.

当前为 2019-02-21 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Discord encryption
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description Encrypt and decrypt messages on Discord on the fly.
  6. // @author You
  7. // @match https://discordapp.com/channels/477776237964689432/*
  8. // @require https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. var password = "adfaldskfjlkadsf";
  13.  
  14. // Replace any messages we manage to decrypt.
  15. function decryptDiscordMessages(password) {
  16. var nodes = document.getElementsByClassName('markup-2BOw-j');
  17. for (var i = nodes.length; i--;) {
  18. var text = nodes[i].innerText;
  19. var decrypted = CryptoJS.AES.decrypt(text, password);
  20. try {
  21. var message = decrypted.toString(CryptoJS.enc.Utf8);
  22. if (message == "") continue;
  23. nodes[i].innerText += ' {' + message + '}';
  24. } catch (error) {}
  25. }
  26. }
  27.  
  28. function registerObserver() {
  29. var targetNode = document.getElementsByClassName('messagesWrapper-3lZDfY')[0];
  30. if (targetNode == undefined) {
  31. setTimeout(registerObserver, 10);
  32. return;
  33. }
  34.  
  35. var config = { childList: true, subtree: true };
  36. var callback = function(mutationsList, observer) {
  37. for(var mutation of mutationsList) {
  38. if (mutation.type != 'childList') return;
  39. decryptDiscordMessages(password);
  40. }
  41. };
  42. var observer = new MutationObserver(callback);
  43. observer.observe(targetNode, config);
  44. }
  45.  
  46. registerObserver();