此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/460309/1151565/stjslab.js
您需要先安装一款用户样式管理器扩展(如 Stylus)后才能安装此样式。
您需要先安装一款用户样式管理器扩展(如 Stylus)后才能安装此样式。
您需要先安装一款用户样式管理器扩展(如 Stylus)后才能安装此样式。
您需要先安装一款用户样式管理器扩展后才能安装此样式。
您需要先安装一款用户样式管理器扩展后才能安装此样式。
您需要先安装一款用户样式管理器扩展后才能安装此样式。
(我已经安装了用户样式管理器,让我安装!)
- // ==UserScript==
- // @name stjslab
- // @namespace http://tampermonkey.net/
- // @version 1.0.0
- // @license Apache License 2.0
- // @author 捈荼
- // ==/UserScript==
-
- class stjslab {
- static getCookie(name) {
- let nameEQ = name + "=";
- let ca = document.cookie.split(';');
- for (let i = 0; i < ca.length; i++) {
- let c = ca[i];
- while (c.charAt(0) == ' ')
- c = c.substring(1, c.length);
- if (c.indexOf(nameEQ) == 0)
- return c.substring(nameEQ.length, c.length);
- }
- return null;
- }
-
- static setCookie(name, value, days) {
- let expires = "";
- if (days) {
- let date = new Date();
- date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
- expires = "; expires=" + date.toUTCString();
- }
- document.cookie = name + "=" + (value || "") + expires + "; path=/";
- }
-
- static deleteCookie(name) {
- document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
- }
-
- static clearAllCookie() {
- return document.cookie.split(';').forEach(cookie => document.cookie = cookie.replace(/^ +/, '').replace(/=.*/, `=;expires=${new Date(0).toUTCString()};path=/`));
- }
-
- static format(str) {
- let cnt = 1;
- let realArgs = Array.from(arguments).slice(1);
- return str.match(/{(\d+)}/g) == null && str.match(/{}/g) != null ?
- str.replace(/{}/g, (match) => {
- return typeof arguments[cnt] != 'undefined' ? arguments[cnt++] : match;
- }) :
- str.replace(/{(\d+)}/g, (match, number) => {
- return typeof realArgs[number] != 'undefined' ? realArgs[number] : match;
- });
- }
-
- static get(query, base = document) {
- return base.querySelector(query);
- }
-
- static getall(query, base = document) {
- return [...base.querySelectorAll(query)];
- }
-
- static getid(id, base = document) {
- return base.getElementById(id);
- }
-
- static getbyClass(classname, base = document) {
- return base.getElementsByClassName(classname);
- }
-
- static getbyTag(tag, base = document) {
- return base.getElementsByTagName(tag);
- }
-
- static getbyName(name, base = document) {
- return base.getElementsByName(name);
- }
-
- static getUrlParam(url) {
- return (new URL(location.href)).searchParams.get(url);
- }
-
- constructor() {
- throw this;
- }
-
- static EventMng = class {
- #handlers = {};
-
- on(name, func) {
- if (!(func instanceof Function))
- throw "Param must be func!";
- if (!(name in this.#handlers)) {
- this.#handlers[name] = [];
- }
- this.#handlers[name].push(func);
- }
-
- off(name, func) {
- if (!(func instanceof Function))
- throw "Param must be func!";
- if (name in this.#handlers) {
- for (let i = 0; i < this.#handlers[name].length; i++) {
- if (this.#handlers[name][i] === func) {
- this.#handlers[name].splice(i, 1);
- i--;
- }
- }
- }
- }
-
- clean(name) {
- if (name in this.#handlers)
- this.#handlers[name] = [];
- }
-
- emit(name, ...args) {
- if (name in this.#handlers) {
- for (let func of this.#handlers[name]) {
- try {
- func(...args);
- } catch (e) {
- console.error('ERROR:', e);
- }
- }
- }
- }
- }
-
- static uuid() {
- var d = new Date().getTime();
- if (typeof performance !== 'undefined' && typeof performance.now === 'function') {
- d += performance.now();
- }
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
- var r = (d + Math.random() * 16) % 16 | 0;
- d = Math.floor(d / 16);
- return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
- });
- }
-
- static guid() {
- function s4() {
- return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
- }
- return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
- }
-
- static sha1(msg) {
- function rotate_left(n, s) {
- var t4 = (n << s) | (n >>> (32 - s));
- return t4;
- };
- function lsb_hex(val) {
- var str = "";
- var i;
- var vh;
- var vl;
- for (i = 0; i <= 6; i += 2) {
- vh = (val >>> (i * 4 + 4)) & 0x0f;
- vl = (val >>> (i * 4)) & 0x0f;
- str += vh.toString(16) + vl.toString(16);
- }
- return str;
- };
- function cvt_hex(val) {
- var str = "";
- var i;
- var v;
- for (i = 7; i >= 0; i--) {
- v = (val >>> (i * 4)) & 0x0f;
- str += v.toString(16);
- }
- return str;
- };
- function Utf8Encode(string) {
- string = string.replace(/\r\n/g, "\n");
- var utftext = "";
- for (var n = 0; n < string.length; n++) {
- var c = string.charCodeAt(n);
- if (c < 128) {
- utftext += String.fromCharCode(c);
- }
- else if ((c > 127) && (c < 2048)) {
- utftext += String.fromCharCode((c >> 6) | 192);
- utftext += String.fromCharCode((c & 63) | 128);
- }
- else {
- utftext += String.fromCharCode((c >> 12) | 224);
- utftext += String.fromCharCode(((c >> 6) & 63) | 128);
- utftext += String.fromCharCode((c & 63) | 128);
- }
- }
- return utftext;
- };
- var blockstart;
- var i, j;
- var W = new Array(80);
- var H0 = 0x67452301;
- var H1 = 0xEFCDAB89;
- var H2 = 0x98BADCFE;
- var H3 = 0x10325476;
- var H4 = 0xC3D2E1F0;
- var A, B, C, D, E;
- var temp;
- msg = Utf8Encode(msg);
- var msg_len = msg.length;
- var word_array = new Array();
- for (i = 0; i < msg_len - 3; i += 4) {
- j = msg.charCodeAt(i) << 24 | msg.charCodeAt(i + 1) << 16 |
- msg.charCodeAt(i + 2) << 8 | msg.charCodeAt(i + 3);
- word_array.push(j);
- }
- switch (msg_len % 4) {
- case 0:
- i = 0x080000000;
- break;
- case 1:
- i = msg.charCodeAt(msg_len - 1) << 24 | 0x0800000;
- break;
- case 2:
- i = msg.charCodeAt(msg_len - 2) << 24 | msg.charCodeAt(msg_len - 1) << 16 | 0x08000;
- break;
- case 3:
- i = msg.charCodeAt(msg_len - 3) << 24 | msg.charCodeAt(msg_len - 2) << 16 | msg.charCodeAt(msg_len - 1) << 8 | 0x80;
- break;
- }
- word_array.push(i);
- while ((word_array.length % 16) != 14) word_array.push(0);
- word_array.push(msg_len >>> 29);
- word_array.push((msg_len << 3) & 0x0ffffffff);
- for (blockstart = 0; blockstart < word_array.length; blockstart += 16) {
- for (i = 0; i < 16; i++) W[i] = word_array[blockstart + i];
- for (i = 16; i <= 79; i++) W[i] = rotate_left(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);
- A = H0;
- B = H1;
- C = H2;
- D = H3;
- E = H4;
- for (i = 0; i <= 19; i++) {
- temp = (rotate_left(A, 5) + ((B & C) | (~B & D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
- E = D;
- D = C;
- C = rotate_left(B, 30);
- B = A;
- A = temp;
- }
- for (i = 20; i <= 39; i++) {
- temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
- E = D;
- D = C;
- C = rotate_left(B, 30);
- B = A;
- A = temp;
- }
- for (i = 40; i <= 59; i++) {
- temp = (rotate_left(A, 5) + ((B & C) | (B & D) | (C & D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
- E = D;
- D = C;
- C = rotate_left(B, 30);
- B = A;
- A = temp;
- }
- for (i = 60; i <= 79; i++) {
- temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
- E = D;
- D = C;
- C = rotate_left(B, 30);
- B = A;
- A = temp;
- }
- H0 = (H0 + A) & 0x0ffffffff;
- H1 = (H1 + B) & 0x0ffffffff;
- H2 = (H2 + C) & 0x0ffffffff;
- H3 = (H3 + D) & 0x0ffffffff;
- H4 = (H4 + E) & 0x0ffffffff;
- }
- var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
- return temp.toLowerCase();
- }
-
-
- static JSLAB_VERSION = '1.0.0';
-
- static __UUID = "90822dad-7367-4dd6-8193-1acc041c008d";
- }