Script này sẽ không được không được cài đặt trực tiếp. Nó là một thư viện cho các script khác để bao gồm các chỉ thị meta
// @require https://update.greasyfork.org/scripts/487608/1358675/SyntaxSimplified.js
// ==UserScript==
// @name SyntaxSimplified
// @version 2024/04/12
// @author Canaan HS
// @description Library for simplifying code logic and syntax
// @namespace https://greasyfork.org/users/989635
// @match *://*/*
// @license MIT
// ==/UserScript==
class Syntax{constructor(){this.Mark={};this.ListenerRecord={};this.Parser=new DOMParser;this.Buffer=document.createDocumentFragment();this.print={log:a=>console.log(a),warn:a=>console.warn(a),error:a=>console.error(a),count:a=>console.count(a)};this.query={Match:/[ .#=:]/,"#":(a,c)=>a.getElementById(c.slice(1)),".":(a,c,b)=>{a=a.getElementsByClassName(c.slice(1));return b?Array.from(a):a[0]},tag:(a,c,b)=>{a=a.getElementsByTagName(c);return b?Array.from(a):a[0]},"default":(a,c,b)=>b?a.querySelectorAll(c):a.querySelector(c)};this.StorageMatch={Type:a=>Object.prototype.toString.call(a).slice(8,-1),String:(a,c,b)=>null!=b?(a.setItem(c,JSON.stringify(b)),!0):JSON.parse(c),Number:(a,c,b)=>null!=b?(a.setItem(c,JSON.stringify(b)),!0):Number(c),Array:(a,c,b)=>null!=b?(a.setItem(c,JSON.stringify(b)),!0):(c=JSON.parse(c),Array.isArray(c[0])?new Map(c):c),Object:(a,c,b)=>null!=b?(a.setItem(c,JSON.stringify(b)),!0):JSON.parse(c),Boolean:(a,c,b)=>null!=b?(a.setItem(c,JSON.stringify(b)),!0):JSON.parse(c),Date:(a,c,b)=>null!=b?(a.setItem(c,JSON.stringify(b)),!0):new Date(c),Map:(a,c,b)=>(a.setItem(c,JSON.stringify([...b])),!0)}}$$(a,{all:c=!1,root:b=document}={}){const e=this.query.Match.test(a)?this.query.Match.test(a.slice(1))?"default":a[0]:"tag";return this.query[e](b,a,c)}DomParse(a){return this.Parser.parseFromString(a,"text/html")}NameFilter(a){return a.replace(/[\/\?<>\\:\*\|":]/g,"")}GetFill(a){return Math.max(2,`${a}`.length)}ExtensionName(a){try{return a.match(/\.([^.]+)$/)[1].toLowerCase()||"png"}catch{return"png"}}Mantissa(a,c,b="0",e=null){return e?`${++a}.${this.ExtensionName(e)}`.padStart(c,b):`${++a}`.padStart(c,b)}WorkerCreation(a){a=new Blob([a],{type:"application/javascript"});return new Worker(URL.createObjectURL(a))}sleep(a){return new Promise(c=>setTimeout(c,a))}async AddStyle(a,c="New-Style"){let b=document.getElementById(c);b||(b=document.createElement("style"),b.id=c,document.head.appendChild(b));b.appendChild(document.createTextNode(a))}async AddScript(a,c="New-Script"){let b=document.getElementById(c);b||(b=document.createElement("script"),b.id=c,document.head.appendChild(b));b.appendChild(document.createTextNode(a))}async AddListener(a,c,b,e={}){this.ListenerRecord[a]?.[c]||(a.addEventListener(c,b,e),this.ListenerRecord[a]||(this.ListenerRecord[a]={}),this.ListenerRecord[a][c]=b)}async RemovListener(a,c){const b=this.ListenerRecord[a]?.[c];b&&(a.removeEventListener(c,b),delete this.ListenerRecord[a][c])}async Listen(a,c,b,e={},f=null){try{a.addEventListener(c,b,e),f&&f(!0)}catch{f&&f(!1)}}async Observer(a,c,{mark:b=!1,subtree:e=!0,childList:f=!0,characterData:d=!1}={},g=null){if(b){if(this.Mark[b])return;this.Mark[b]=!0}b={subtree:e,childList:f,characterData:d};e=new MutationObserver(()=>{c()});e.observe(a,b);g&&g(e,b)}async WaitElem(a,c,b,e,{object:f=document.body,throttle:d=0}={}){let g,h,k;const l=new MutationObserver(this.Throttle(()=>{h=c?document.querySelectorAll(a):document.querySelector(a);if(k=c?0<h.length&&Array.from(h).every(m=>null!==m&&"undefined"!==typeof m):h)l.disconnect(),clearTimeout(g),e(h)},d));l.observe(f,{childList:!0,subtree:!0});g=setTimeout(()=>{l.disconnect();e(h)},1E3*b)}async WaitMap(a,c,b,{object:e=document.body,throttle:f=0}={}){let d,g;const h=new MutationObserver(this.Throttle(()=>{g=a.map(k=>document.querySelector(k));g.every(k=>null!==k&&"undefined"!==typeof k)&&(h.disconnect(),clearTimeout(d),b(g))},f));h.observe(e,{childList:!0,subtree:!0});d=setTimeout(()=>{h.disconnect();b(g)},1E3*c)}async log(a=null,c="print",b="log"){b="string"===typeof b&&this.print[b]?b:b="log";if(null==a)this.print[b](c);else console.groupCollapsed(a),this.print[b](c),console.groupEnd()}Runtime(a=null,c="Elapsed Time:",{style:b="\u001b[1m\u001b[36m%s\u001b[0m",log:e=!0}={}){return a?e?console.log(b,`${c} ${(Date.now()-a)/1E3}s`):Date.now()-a:Date.now()}Debounce(a,c=500){let b=null;return(...e)=>{clearTimeout(b);b=setTimeout(function(){a(...e)},c)}}Throttle(a,c){let b=0;return(...e)=>{const f=Date.now();f-b>=c&&(b=f,a(...e))}}ScopeParsing(a,c){const b=new Set,e=new Set,f=c.length;for(const d of a.split(/\s*,\s*/))if(/^\d+$/.test(d))b.add(Number(d)-1);else if(/^\d+(?:~\d+|-\d+)$/.test(d)){c=d.split(/-|~/);a=Number(c[0]-1);c=Number(c[1]-1);const g=a<=c;for(;g?a<=c:a>=c;g?a++:a--)b.add(a)}else/(!|-)+\d+/.test(d)&&e.add(Number(d.slice(1)-1));return[...b].filter(d=>!e.has(d)&&d<f&&0<=d).sort((d,g)=>d-g).map(d=>obj[d])}Storage(a,{type:c=sessionStorage,value:b=null,error:e}={}){let f;return null!=b?this.StorageMatch[this.StorageMatch.Type(b)](c,a,b):(f=c.getItem(a),void 0!=f?this.StorageMatch[this.StorageMatch.Type(JSON.parse(f))](c,f):e)}store(a,c=null,b=null,e=null){const f={verify:d=>void 0!==d?d:e,de:d=>GM_deleteValue(d),al:()=>f.verify(GM_listValues()),s:(d,g)=>GM_setValue(d,g),g:d=>f.verify(GM_getValue(d)),sj:(d,g)=>GM_setValue(d,JSON.stringify(g,null,4)),gj:d=>JSON.parse(f.verify(GM_getValue(d)))};return f[a](c,b)}async storeListen(a,c){a.forEach(b=>{this.Mark[b]||(this.Mark[b]=!0,GM_addValueChangeListener(b,function(e,f,d,g){c({key:e,ov:f,nv:d,far:g})}))})}async Menu(a,c="Menu",b=1){for(const [e,f]of Object.entries(a))GM_registerMenuCommand(e,()=>{f.func()},{title:f.desc,id:`${c}-${b++}`,autoClose:f.close,accessKey:f.hotkey})}};