您需要先安装一个扩展,例如 篡改猴、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 );