您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically reload the page at ?interval=
// ==UserScript== // @name Refresher // @namespace none // @version 2020.07.16.1823 // @description Automatically reload the page at ?interval= // @author technical13 // @supportURL https://Discord.me/TheShoeStore // @match https://www.munzee.com/m/* // @grant none // ==/UserScript== // jshint esversion: 6 var isDebug = false; var intVerbosity = 0; const ver = '2020.07.16.1823'; const scriptName = 'Refresher v' + ver; function toBoolean( val ) { const arrTrue = [ undefined, null, '', true, 'true', 1, '1', 'on', 'yes' ]; val = ( typeof( val ) === 'string' ? val.toLowerCase() : val ); log( 4, 'log', 'toBoolean() is returning: %o', ( arrTrue.indexOf( val ) !== -1 ? true : false ) ); return ( arrTrue.indexOf( val ) !== -1 ? true : false ); } function log( intV, strConsole, strLog, ...arrArgs ) { if ( strConsole === undefined ) { strConsole = 'log'; } if ( strLog === undefined ) { strLog = '%o'; } if ( intVerbosity >= intV && ( strConsole === 'groupEnd' ) ) { console[ strConsole ](); } if ( intV === 0 || ( isDebug && intVerbosity >= intV ) ) { console[ strConsole ]( '[%i]: %s: ' + strLog, intV, scriptName, ...arrArgs ); } } const intParamsStart = ( document.URL.indexOf( '?' ) + 1 ); const strParams = document.URL.substr( intParamsStart ); const arrParamSets = strParams.split( '&' ); var objParams = {}; arrParamSets.forEach( function( strParam ) { let arrParam = strParam.split( '=' ); let strParamName = ( arrParam[ 0 ].toLowerCase() || '' ); if ( strParamName === 'verbosity' ) { isDebug = true; intVerbosity = ( arrParam[ 1 ] ? ( parseInt( arrParam[ 1 ] ) < 0 ? 0 : ( parseInt( arrParam[ 1 ] ) > 9 ? 9 : parseInt( arrParam[ 1 ] ) ) ) : 9 ); log( 2, 'info', 'Found parameter `%s` with a value of: %o', strParamName, objParams[ strParamName ] ); } else if ( strParamName === 'debug' ) { isDebug = toBoolean( arrParam[ 1 ] ); intVerbosity = 1; log( 2, 'info', 'Found parameter `%s` with a value of: %o', strParamName, objParams[ strParamName ] ); } else if ( strParamName === 'refresh' || strParamName === 'interval' ) { objParams.interval = parseInt( arrParam[ 1 ] ); log( 2, 'info', 'Found parameter `%s` with a value of: %o', strParamName, objParams.interval ); } else { log( 2, 'info', 'Found parameter `%s` with a value of: %o', strParamName, arrParam[ 1 ] ); } } ); log( 1, 'warn', 'Debug mode is on with verbosity level: %o', intVerbosity ); log( 1, 'groupCollapsed', 'Verbosity options: (click to expand)' ); log( 1, 'log', '1) Summary\n2) Parameters retrieved from URL\n3) Variables set to objParams\n4) Function returns\n9) ALL debugging info and this notice.' ); log( 1, 'groupEnd' ); function createFogOfWar( options = {} ) { if ( !options.color ) { options.color = '#000000'; } if ( !options.opacity ) { options.opacity = '67%'; } if ( !options.zIndex && !options[ 'z-index' ] ) { options.zIndex = '100'; } var fogOfWar = document.createElement( 'div' ); fogOfWar.id = 'fog-of-war'; fogOfWar.style.width = '100%'; fogOfWar.style.height = '100%'; fogOfWar.style.position = 'fixed'; fogOfWar.style.top = '0px'; fogOfWar.style.backgroundColor = options.color; fogOfWar.style.opacity = options.opacity; fogOfWar.style.zIndex = options.zIndex; $( 'body' ).append( fogOfWar ); } function doConfig() { createFogOfWar(); var closeButton = document.createElement( 'button' ); closeButton.style.padding = '2px 6px'; closeButton.classList = 'btn btn-danger'; closeButton.addEventListener( 'click', () => { $( 'div#fog-of-war' ).remove(); configBox.remove(); } ); closeButton.innerText = 'Cancel'; var goButton = document.createElement( 'button' ); goButton.style.padding = '2px 6px'; goButton.classList = 'btn green'; goButton.addEventListener( 'click', () => { if ( window.location.search === '' ) { window.location.assign( window.location.href + '?interval=' + getInterval.value ); } else { window.location.assign( window.location.href.replace( window.location.search, '?interval=' + getInterval.value ) ); } } ); goButton.innerText = 'Refresh!'; var getInterval = document.createElement( 'input' ); getInterval.type = 'number'; getInterval.style.width = '50px'; getInterval.style.color = '#000000'; getInterval.style.textAlign = 'right'; getInterval.style.paddingRight = '2px'; getInterval.min = 3; getInterval.max = 300; getInterval.value = 7; var getIntervalBox = document.createElement( 'div' ); getIntervalBox.style.width = '100%'; getIntervalBox.style.padding = '10px'; getIntervalBox.append( document.createTextNode( 'Refresh page every ' ), getInterval, document.createTextNode( ' seconds ' ), document.createElement( 'br' ), document.createElement( 'br' ), goButton, document.createTextNode( ' ' ), closeButton ); var configBox = document.createElement( 'div' ); configBox.style.width = '320px'; configBox.style.top = '20%'; configBox.style.right = '20%'; configBox.style.position = 'fixed'; configBox.style.textAlign = 'center'; configBox.style.fontWeight = 'bold'; configBox.style.fontSize = 'larger'; configBox.style.color = '#71B33C'; configBox.style.backgroundColor = '#000000'; configBox.style.border = '1px solid #FF00FF'; configBox.style.zIndex = '250'; configBox.append( getIntervalBox ); $( 'body' ).append( configBox ); } function favTitle( pinImage ) { if ( ( new RegExp( '(skyland|treehouse)' ) ).test( pinImage ) ) { var intUnicorns = parseInt( pinImage.split( '/' ).pop().split( '.' )[ 0 ].replace( /(skyland|treehouse)/, '0' ) ); $( 'title' ).text( '(' + intUnicorns + ') ' + $( 'title' ).text() ); } var link = ( document.querySelector( "link[rel*='icon']" ) || document.createElement( 'link' ) ); link.type = 'image/x-icon'; link.rel = 'shortcut icon'; link.href = pinImage; document.getElementsByTagName( 'head' )[ 0 ].appendChild( link ); } ( function() { 'use strict'; log( 0, 'info', 'Script loaded.' ); favTitle( $( 'img.pin' ).attr( 'src' ) ); var reloadButton = document.createElement( 'button' ); reloadButton.classList = 'btn green pull-right'; reloadButton.style.marginBottom = '10px'; reloadButton.title = 'Click to reload now!'; reloadButton.addEventListener( 'click', () => { window.location.reload(); } ); if ( $.isNumeric( objParams.interval ) ) { $( 'p.status-date' )[ 0 ].style.color = '#000000'; $( 'p.status-date' )[ 0 ].style.fontWeight = 'bold'; reloadButton.id = 'Refresher-' + objParams.interval; reloadButton.style.margin = '0px 3px 10px 0px'; reloadButton.innerText = 'Reloading in: ' + ( objParams.interval - 1 ) + ' second' + ( objParams.interval === 1 ? '' : 's' ); var stopButton = document.createElement( 'button' ); stopButton.id = 'Refresher-stop'; stopButton.classList = 'btn btn-danger pull-right'; stopButton.style.margin = '0px 0px 10px 3px'; stopButton.title = 'Click to stop reloading!'; stopButton.addEventListener( 'click', () => { window.location.assign( window.location.href.replace( window.location.search, '' ) ); } ); stopButton.innerText = '×'; $( 'div#munzee-name' ).prepend( stopButton, reloadButton ); var doReload = objParams.interval; window.setInterval( () => { if ( reloadButton.innerText !== 'Reloading now!' ) { var strLastSecond = reloadButton.innerText.match( /Reloading in: ([\d]+) seconds?/i )[ 1 ]; var intLastSecond = parseInt( strLastSecond ); var intNextSecond = intLastSecond - 1; doReload = intNextSecond; if ( intNextSecond === 0 ) { reloadButton.innerText = 'Reloading now!'; } else if ( intNextSecond === 1 ) { reloadButton.innerText = 'Reloading in: 1 second'; } else { reloadButton.innerText = reloadButton.innerText.replace( strLastSecond, intNextSecond ); } } else if ( doReload <= 0 ) { window.location.reload(); } }, 1000 ); } else { reloadButton.style.margin = '0px 0px 10px 3px'; reloadButton.style.color = '#000000'; reloadButton.style.fontWeight = 'bolder'; reloadButton.innerText = '⟳'; var configButton = document.createElement( 'button' ); configButton.id = 'Refresher-Config'; configButton.classList = 'btn btn-warning pull-right'; configButton.style.color = '#000000'; configButton.style.fontWeight = 'bold'; configButton.style.margin = '0px 3px 10px 0px'; configButton.title = 'Click to start automatic refresh of this page!'; configButton.addEventListener( 'click', () => { doConfig(); } ); configButton.innerText = 'Refresher!?'; $( 'div#munzee-name' ).prepend( reloadButton, configButton ); } } )();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址