您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Simple Tool to Help Name Undeployed Munzees Quicker
// ==UserScript== // @name nameZee // @namespace Rynee // @author hugosoft // @author technical13 // @version 1.3 // @include http://www.munzee.com/* // @include https://www.munzee.com/* // @grant unsafeWindow // @grant GM_xmlhttpRequest // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @description Simple Tool to Help Name Undeployed Munzees Quicker // ==/UserScript== // // // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function go() { var isDebugMode = false; var version = '1.3'; var baseURL = 'https://www.munzee.com'; var virtualImg = 'virtual'; var strParams, objParams; var currentURL = new String( document.URL ); if ( currentURL.lastIndexOf( '?' ) !== -1 ) { objParams = {}; strParams = currentURL.split( '#' )[ 0 ].substr( currentURL.lastIndexOf( '?' ) + 1 ); var arrParams = strParams.split( '&' ); for ( var param = 0; param < arrParams.length; param++ ) { var arrPair = arrParams[ param ].split( '=' ); objParams[ arrPair[ 0 ] ] = ( arrPair[ 1 ] || true ); } if ( objParams.debug ) { isDebugMode = true; } currentURL = currentURL.substr( 0, currentURL.lastIndexOf( '?' ) ); } var username = null; var logonUsername = null; var ignoreChars = [ '#', '(', ')', '[', ']', '{', '}' ]; /** * is value numeric? */ function isNumeric( val ){ return !isNaN( val ); } console.log( 'nameZee Version: ' + version ); Number.decPoint = '.'; Number.thousand_sep = ','; /** * endsWith */ String.prototype.endsWith = function( suffix ) { return this.indexOf( suffix, this.length - suffix.length ) !== -1; }; /** * startsWith * */ String.prototype.startsWith = function( prefix ) { return this.substring( 0, prefix.length ) === prefix; } /** * replaceAll */ String.prototype.replaceAll = function ( find, replace ) { var str = this; return str.replace( new RegExp( find, 'g' ), replace ); }; /** * contains * */ String.prototype.contains = function() { return String.prototype.indexOf.apply( this, arguments ) !== -1; }; /** * extract logonUsername from profile link * */ function getLogonUsername() { try { //search menu (ul) var container = $( $( '.user-menu' ) ); //first li container = $( container.children().first() ); //first a container = $( container.children().first() ); //attribute href container = container.attr( 'href' ); if ( isDebugMode ) { console.log( 'getLogonUsername() container is: %s', container ); } //token with username in href var res = container.split( '/' ); if ( isDebugMode ) { console.log( 'getLogonUsername() res is: %o', res ); } var logonUsername = res[ res.length - 2 ]; return logonUsername; } catch ( errLogonUN ) { alert( 'Error attempting to extract logon username from profile link.\n\n\tPlease check the console for details.' ); console.log( errLogonUN ); } } $( document ).ready( function() { //checkForUpdate(); if ( !currentURL.endsWith( '/' ) ) { currentURL = currentURL + '/'; } username = $( '.avatar-username' ).text(); if (username==undefined || username.length<1) { username = null; } logonUsername = getLogonUsername(); if ( logonUsername == undefined || logonUsername.length < 1 ) { logonUsername = null; } //rename undeploys if ( username != null && logonUsername == username && currentURL.toLowerCase().startsWith( baseURL + '/m/' + username.toLowerCase() + '/undeploys/' ) ) { //new action button var container = $( '.page-header' ); container = $( container ).find( '.pull-right' ); var buttonCode = '<div class="pull-right"><a id="renumberUndeploys" class="btn green" style="margin-left:10px;margin-right:10px">renumber</a></div>'; var optionCode = '<div class="pull-right"><select id="selBracket" class="form-control"><option value="curlyBracket">{ }</option><option value="squareBracket">[ ]</option><option value="roundBracket">( )</option><option selected value="hash">#</option><option value="blank"> </option></select></div>'; $( container ).append( optionCode + buttonCode ); //button event $( '#renumberUndeploys' ).click( function() { doRenumber(); } ); } //rename deploys /*if ( username != null && logonUsername == username && currentURL.toLowerCase().startsWith( baseURL + '/m/' + username.toLowerCase() + '/deploys/' ) ) { //new action button var container = $( '.page-header' ); container = $( container ).find( 'h2' ); $( container ).append( ' <div class="pull-right"><a id="renumberDeploys" class="btn green" style="margin-left:10px">renumber</a></div><div class="clearfix"></div> '); //button event $( '#renumberDeploys' ).click( function() { doRenumber(); } ); }*/ } ); /** * prefix for number * */ function getPrefix() { switch ( $( '#selBracket' ).val() ) { case 'curlyBracket': return '{'; case 'squareBracket': return '['; case 'roundBracket': return '('; case 'hash': return "#"; case 'blank': default: return ''; } } /** * suffix for number * */ function getSuffix() { switch ( $( '#selBracket' ).val() ) { case 'curlyBracket': return '}'; case 'squareBracket': return ']'; case 'roundBracket': return ')'; case 'hash': case 'blank': default: return ''; } } /** * rename undeploys and deploys * */ function doRenumber() { var sections = $( 'section' ).get(); var count = 0; //inspect each section for ( var i = 0; i < sections.length; i++ ) { if ( isRenumber( getFriendlyName( sections[ i ] ), getLfdNr( sections[ i ] ) ) && !isVirtual( sections[ i ] ) ) { parseSectionTimeoutWrapper( count++, sections[ i ] ); } else { if ( isDebugMode ) { console.log( 'doRenumber() IGNRORED::' + getFriendlyName( sections[ i ] ) + ' virtual=' + isVirtual( sections[ i ] ) ); } } } } /** just a wrapper for parseSection with timeout*/ function parseSectionTimeoutWrapper( i, section ) { setTimeout( function() { parseSection( i, section ); }, 1500 * i ); } /** * parseSection of munzees and call post-method for renumbering */ function parseSection( i, section ) { var lfdNr = getLfdNr( section ); var originalFriendlyName = getFriendlyName( section ); if( isRenumber( originalFriendlyName, getLfdNr( section ) ) && !isVirtual( section ) ) { var adminURL = 'https://www.munzee.com/m/' + username + '/' + lfdNr + '/admin/'; var oldFriendlyName = removeGeneratedNumber( originalFriendlyName ); var newFriendlyName = oldFriendlyName + " " + getPrefix() + lfdNr + getSuffix(); if ( isDebugMode ) { console.log( 'parseSection() section: %o', section ); console.log( 'parseSection(): ' + adminURL + ':: ' + originalFriendlyName + '->' + newFriendlyName ); } $.post( adminURL, { friendly_name: '' + newFriendlyName, notes: '' }, function( result ) { if ( isDebugMode ) { if ( result.match( /This munzee has been updated!/ ) !== -1 ) { section.getElementsByClassName( 'munzee-name' )[ 0 ].children[ 1 ].innerText = newFriendlyName; } } } ); } } /** * remove the generated Number of friendly name */ function removeGeneratedNumber( friendlyName ) { while ( friendlyName.length > 0 && isNumeric( friendlyName[ friendlyName.length - 1 ] )) { friendlyName = friendlyName.substr( 0, friendlyName.length - 1 ); if ( isDebugMode ) { console.log( 'removeGeneratedNumber() is returning: ' + friendlyName ); } } return friendlyName; } /** get lfdNr of current section*/ function getLfdNr( section ) { var munzeeURL = baseURL + $( section ).find( 'a' ).attr( 'href' ); var arr = munzeeURL.split( '/' ); if ( isDebugMode ) { console.log( 'getLfdNr() is returning: ' + arr[ 5 ] ); } return arr[ 5 ]; } /** get friendlyName of current section*/ function getFriendlyName( section ) { var friendlyName = $( section ).find( 'a' )[ 1 ]; if ( isDebugMode ) { console.log( 'getFriendlyName() is returning: ' + $( friendlyName ).text() ); } return $( friendlyName ).text(); } /** renumbering permitted? */ function isRenumber( friendlyName, munzeeNumber ) { friendlyName = friendlyName.trim(); //for ( var i = 0; i < ignoreChars.length; i++ ) { if ( friendlyName.contains( munzeeNumber ) ) { return false; } //} return true; } function isVirtual( section ) { var imgageSrc = $( section ).find( '.pin' ).attr( 'src' ); if ( isDebugMode ) { console.log( 'getFriendlyName() is returning: ' + imgageSrc.contains( virtualImg ) ); } return imgageSrc.contains( virtualImg ); } } // end go // jQuery workaround for Chrome // a function that loads jQuery and calls a callback function when jQuery has finished loading function addJQuery( callback ) { var script = document.createElement( 'script' ); script.textContent = '(' + callback.toString() + ')();'; document.body.appendChild( script ); } // load jQuery and execute addJQuery( go );
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址