您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
通用脚本
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/411278/847384/H2P%3A%20%E9%80%9A%E7%94%A8%E8%84%9A%E6%9C%AC.js
// ==UserScript== // @name H2P: 通用脚本 // @namespace http://tampermonkey.net/ // @version 0.0.1 // @icon http://www.douyutv.com/favicon.ico // @description 通用脚本 // @author H2P // @compatible chrome // ==/UserScript== (() => { 'use strict'; // 在字符串前(后)添加 0 function add0(s = '', len = 0, isAddFront = true) { s = s.toString(); while (s.length < len) { s = isAddFront ? '0' + s : s + '0'; } return s; } // 返回毫秒 function timeMS(num = 0) { num = Number.parseInt(num); return num < 946684800000 ? num * 1000 : num; } const $H2P = (xpath = 'body', queryOneElement = true) => queryOneElement ? document.querySelector(xpath) : Array.from(document.querySelectorAll(xpath)); const $LS = { init: (itemKey = '', itemPre = {}) => { let item = Object.assign({}, itemPre, $LS.get(itemKey)); for (let key in item) { if (!(key in itemPre)) { delete item[key]; } } localStorage.removeItem(itemKey); localStorage.setItem(itemKey, JSON.stringify(item)); return item; }, set: (itemKey = '', item = {}) => { localStorage.setItem(itemKey, JSON.stringify(item)); }, get: (itemKey = '') => JSON.parse(localStorage.getItem(itemKey)) || {}, remove: (itemKey = '') => { localStorage.removeItem(itemKey); } } const $INVL = { clear: (INVLID) => { clearInterval(INVLID); INVLID = null; } } const $TIME = { hms: (time = 0) => { let h = Number.parseInt(time / 3600000); let m = Number.parseInt(time % 3600000 / 60000); let s = Number.parseInt(time % 3600000 % 60000 / 1000); return { h: add0(h, 2), m: add0(m, 2), s: add0(s, 2) } } } // return millisecond Date.prototype.$timems = Date.prototype.getTime; // return second Date.prototype.$times = function() { return Number.parseInt(this.getTime() / 1000); } // format time: yyyy-MM-dd hh-mm-ss Date.prototype.$formatTime = function() { return `${this.getFullYear()}-${add0(this.getMonth() + 1, 2)}-${add0(this.getDate(), 2)} ${add0(this.getHours(), 2)}:${add0(this.getMinutes(), 2)}:${add0(this.getSeconds(), 2)}`; } // format date: yyyy-MM-dd Date.prototype.$formatDate = function() { return `${this.getFullYear()}-${add0(this.getMonth() + 1, 2)}-${add0(this.getDate(), 2)}`; } })();