您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
This script contains some simple basic-functions.
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/547732/1651464/BasicLib.js
// ==UserScript== // @name BasicLib // @description This script contains some simple basic-functions. // @grant none // @run-at document-start // @version 1.0.1 // @author Cyrano68 // @license MIT // @namespace http://greasyfork.icu/users/788550 // ==/UserScript== (function() { "use strict"; function getZeroFilledMillisecs(dateNow) { const millisecs = dateNow.getMilliseconds(); return ("00" + millisecs).slice(-3); } function consoleLog(text, showLog = true) { if (showLog) { const dateNow = new Date(); //const now = dateNow.toISOString(); const now = dateNow.toLocaleString() + "." + getZeroFilledMillisecs(dateNow); console.log(`${now} ${text}`); } } function getMathRandomInteger(val1, val2) { let min = 0; let max = 100; const val1IsValid = ((val1 !== undefined) && (val1 !== undefined)); const val2IsValid = ((val2 !== undefined) && (val2 !== undefined)); consoleLog(`==> BasicLib: getMathRandomInteger - val1IsValid=${val1IsValid}, val2IsValid=${val2IsValid}`); if (val1IsValid || val2IsValid) { if (val1IsValid && val2IsValid) { min = val1; max = val2; } else { min = 0; max = (val1IsValid ? val1 : val2); } } if (max < min) { const tmp = min; min = max; max = tmp; } consoleLog(`==> BasicLib: getMathRandomInteger - min=${min}, max=${max}`); return Math.floor(Math.random() * (max - min)) + min; } function generateID() { // NOTE-1: The function "toString(36)" converts the number to a base-36 string (i.e. a string containing digits 0-9 and letters a-z). // NOTE-2: THe function "substring(2)" is used to remove the "0." from the start of the random number string. const ID = Date.now().toString(36) + "_" + Math.random().toString(36).substring(2); consoleLog(`==> BasicLib: generateID - ID='${ID}'`); return ID; } function setInterval2(callback, interval_ms, execCallbackNow) { // I defined a new "setInterval" function because I want to call the "setInterval" function and then // (if required) call immediately the callback function, instead of wait for the first timeout. // // Call the "setInterval" for the periodic timer. consoleLog(`==> BasicLib: setInterval2 - STARTING TIMER - interval_ms=${interval_ms}`); const timerId = setInterval(callback, interval_ms); consoleLog(`==> BasicLib: setInterval2 - TIMER STARTED - timerId=${timerId}`); if (execCallbackNow) { // Call immediately the callback function. callback(timerId); } return timerId; } function textMatchesArray(text, array, index) { // This function returns true if there is an element in the array that matches with "text". // // IMPORTANT: The input "index" must be an object with a field named "value". For example: // let index = {value: -1}; // At the end the "index.value" will contain the index of the element of the array that matched with "text" (or -1 if there is no match). // for (let i = 0; i < array.length; ++i) { if (text.startsWith(array[i])) { index.value = i; return true; } } index.value = -1; return false; } const myVersion = "1.0.1"; // It must be the same value indicated in @version. consoleLog(`==> BasicLib: HELLO! Loading script (version: ${myVersion})...`); function getVersion() { return myVersion; } // Expose the public interface by returning an object. window.BasicLib = { consoleLog: consoleLog, getMathRandomInteger: getMathRandomInteger, generateID: generateID, setInterval2: setInterval2, textMatchesArray: textMatchesArray, getVersion: getVersion }; consoleLog("==> BasicLib: Script loaded"); })();