SlashJs

No need for javascript with this library. Use commands inside of elements such as /time, /animate, and more!

当前为 2024-05-24 提交的版本,查看 最新版本

此脚本不应直接安装,它是供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/496001/1382605/SlashJs.js

  1. // ==UserScript==
  2. // @name SlashJs
  3. // @namespace http://tampermonkey.net/
  4. // @version Alpha 1.0.0
  5. // @description No need for javascript with this library. Use commands inside of elements such as /time, /animate, and more!
  6. // @author James D Melix
  7. // @match *
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=discord.com
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. let slash = (func) => {
  13. // Variable Set up -- For Now
  14. let date = new Date();
  15. let hour;c
  16. let second;
  17. let minute;
  18. let type;
  19. if (func[0] + func[1] == '//') {
  20. type = '//';
  21. } else if (func[0] == '/' && func[1] != '/') {
  22. type = '/';
  23. } else {
  24. type = func;
  25. }
  26. switch(type) {
  27. case '/':
  28. switch(func) {
  29. case '/time':
  30. hour = date.getHours();
  31. if (hour > 12) {
  32. hour -= 12;
  33. }
  34. minute = date.getMinutes();
  35. if (minute < 10) {
  36. minute = `0${minute}`;
  37. }
  38. return `${hour}:${minute}`;
  39. case '/timefull':
  40. hour = date.getHours();
  41. if (hour > 12) {
  42. hour -= 12;
  43. }
  44. minute = date.getMinutes();
  45. if (minute < 10) {
  46. minute = `0${minute}`;
  47. }
  48. second = date.getSeconds();
  49. if (second < 10) {
  50. second = `0${second}`;
  51. }
  52. return `${hour}:${minute}:${second}`;
  53. default:
  54. let funcE = func.split('/')[1];
  55. return `function unknown @ ${funcE}`;
  56. }
  57. break;
  58. case '//':
  59. // Edit Function
  60. break;
  61. case 'update':
  62. // Find all commands and update
  63. var els = document.getElementsByAttribute('slash.autoupdate');
  64. for (let p = 0; p < els.length; p++) {
  65. els[p].innerHTML = slash(els[p].attributes['slash.vari'].value);
  66. }
  67. break;
  68. case 'exe':
  69. var els = document.getElementsByTagName('*');
  70. for (let i = 0; i < els.length; i++) {
  71. let elsInnerHTML = els[i].innerHTML;
  72. let fin = '';
  73. elsInnerHTML = elsInnerHTML.split(' ');
  74. for (let o = 0; o < elsInnerHTML.length; o++) {
  75. var word = elsInnerHTML[o];
  76. if (word[0] == '/' && word[1] != '/') {
  77. fin = fin + '<span slash.autoupdate="true" slash.vari="' + word + '"></span>';
  78. } else {
  79. fin = fin + ' ' + word;
  80. }
  81. }
  82. els[i].innerHTML = fin;
  83. }
  84. break;
  85. default:
  86. console.error(`function not found @ ${func}()`);
  87. break;
  88. }
  89. };
  90. setTimeout( function() {
  91. setInterval( function() { slash('exe');slash('update'); }, 250);
  92. }, 150);