Show Virtual Munzee Name

Show the virtual munzee names

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Show Virtual Munzee Name
// @namespace    none
// @version      2020.06.26.1022
// @description  Show the virtual munzee names
// @author       technical13
// @match        https://www.munzee.com/m/*/*
// @match        https://www.munzee.com/map/*
// @match        https://www.munzee.com/specials/*
// ==/UserScript==
// jshint esversion: 6
// @basedon  CzPeet's https://greasyfork.org/en/scripts/373533-showvirtualmunzeename

const ver = '2020.06.26.1022';
const scriptName = 'Show Virtual Munzee Name v' + ver;
var isDebug = false;
var intVerbosity = 0;

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 = { unknownParams: [] };
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 );
    } else if ( strParamName === 'debug' ) {
        isDebug = toBoolean( arrParam[ 1 ] );
        intVerbosity = 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' );

var objMunzees = {
    airmystery: 'Air Mystery',
    canoe: 'Submarine Evolution (Stage 1)',
    carnationseed: 'Carnation Evolution (Stage 1)',
    carrot: 'Carrot Evolution (Stage 3)',
    carrotseed: 'Carrot Evolution (Stage 1)',
    carrotplant: 'Carrot Evolution (Stage 2)',
    championshiphorse: 'Horse Evolution (Stage 3)',
    chick: 'Eggs Evolution (Stage 1)',
    coldflatrob: 'Cold Flat Rob',
    colt: 'Horse Evolution (Stage 1)',
    czechrepubliciconiclocation: 'Iconic Location (Czech Republic)',
    dwarfleprechaun: 'Leprechaun (Dwarf)',
    electricmystery: 'Electric Mystery',
    ephyralarva: 'Jellyfish Evolution (Stage 4)',
    farmer: 'Family Evolution (Stage 1)',
    firstwheel: 'Car Evolution (Stage 1)',
    flathammock: 'Flat Hammock',
    flatlou: 'Flat Lou',
    flatmatt: 'Flat Matt',
    flatrob: 'Flat Rob',
    icemystery: 'Ice Mystery',
    joystickvirtual: 'Virtual Joystick',
    limebutterfly: 'Lime Butterfly',
    motorboat: 'Submarine Evolution (Stage 2)',
    munzee: 'Greenie',
    nightvisiongoggles: 'Night Vision Goggles',
    peas: 'Peas Evolution (Stage 3)',
    peasplant: 'Peas Evolution (Stage 2)',
    peasseed: 'Peas Evolution (Stage 1)',
    poiairport: 'Airport POI',
    poibank: 'Bank POI',
    poibeach: 'Beach POI',
    poicampground: 'Campground POI',
    poicemetery: 'Cemetery POI',
    poicinema: 'Cinema POI',
    poifaithplace: 'Faith Place POI',
    poifirstresponders: 'First Responder POI',
    poigolf: 'Golf POI',
    poihistoricalplace: 'Historical Place POI',
    poihospital: 'Hospital POI',
    poilibrary: 'Library POI',
    poimuseum: 'Museum POI',
    poiplaypark: 'Play Park POI',
    poipostoffice: 'Post Office POI',
    poitransportation: 'Transportation POI',
    poisports: 'Sports POI',
    poiuniqueattraction: 'Unique Attraction POI',
    poiuniversity: 'University POI',
    poiwildlife: 'Wildlife POI',
    poivirtualgarden: 'Virtual Garden POI',
    pottedplant: 'Field Evolution (Stage 1)',
    reptoidyeti: 'Yeti (Reptoid variant)',
    rosegrowth: 'Rose Evolution (Stage 3)',
    safaritruck: 'Safari Bus Evolution (Stage 1)',
    skyland: 'Skyland (empty)',
    skyland1: 'Skyland (1 guest)',
    skyland2: 'Skyland (2 guests)',
    skyland3: 'Skyland (3 guests)',
    skyland4: 'Skyland (4 guests)',
    skyland5: 'Skyland (5 guests)',
    skyland6: 'Skyland (6 guests)',
    skyland7: 'Skyland (glitch!)',
    sirprizewheel: 'Sir Prizewheel',
    temporaryvirtual: 'Temporary Virtual',
    theunicorn: 'Unicorn',
    timeshareroom: 'Timeshare Room',
    travelernomad: 'Traveler Nomad',
    treehouse: 'Treehouse (empty)',
    treehouse1: 'Treehouse (1 guest)',
    treehouse2: 'Treehouse (2 guests)',
    treehouse3: 'Treehouse (3 guests)',
    treehouse4: 'Treehouse (4 guests)',
    treehouse5: 'Treehouse (5 guests)',
    treehouse6: 'Treehouse (6 guests)',
    treehouse7: 'Treehouse (glitch!)',
    trojanunicorn: 'Trojan Unicorn',
    tuxflatrob: 'Tux Flat Rob',
    virtual: 'Virtual White',
    vacationcondo: 'Vacation Condo',
    vacationcondoroom: 'Vacation Condo Room',
    virtualcitrine: 'Virtual Citrine',
    virtualonyx: 'Virtual Onyx',
    virtualsapphire: 'Virtual Sapphire'
};

function getMunzeeType( srcUrl ) {
    var strRawColorName = srcUrl.slice( ( srcUrl.lastIndexOf( '/' ) + 1 ), srcUrl.lastIndexOf( '.' ) ).replace( /_/g, ' ' );
    var strColorName = ( objMunzees[ strRawColorName ] || strRawColorName );
    if ( strColorName === strRawColorName ) {
        var arrColorName = strRawColorName.split( ' ' );
        arrColorName.forEach( ( thisWord, word ) => {
            arrColorName[ word ] = thisWord[ 0 ].toUpperCase() + thisWord.substr( 1 );
        } );
        strColorName = arrColorName.join( ' ' );
    }
    return strColorName;
}
function specialsFilter() {
    $( 'div#filterimgs > img' ).each( ( ndx, imgFilterPin ) => {
        var strColorNameFilter = getMunzeeType( $( imgFilterPin ).attr( 'src' ) );
        $( imgFilterPin ).attr( 'title', strColorNameFilter );
    } );
}

( function() {
    'use strict';
    log( 0, 'info', 'Script loaded.' );

    var arrPins = [];
    $( 'img.qd-img' ).each( ( ndxQdImg, imgPinQdImg ) => { arrPins.push( imgPinQdImg ); } );
    $( 'img.pin' ).each( ( ndxPin, imgPinPin ) => { arrPins.push( imgPinPin ); } );
    arrPins.forEach( ( domPin, ndx ) => {
        var pinSection = $( domPin ).parents( 'section' );
        var strColorName = getMunzeeType( $( domPin ).attr( 'src' ) );

        $( 'div.unicorn > img' ).each( ( ndxUnicorn, domPinUnicorn ) => {
            var strColorNameUnicorn = getMunzeeType( $( domPinUnicorn ).attr( 'src' ) );
            $( domPinUnicorn ).attr( 'title', strColorNameUnicorn );
        } );
        if ( pinSection.length > 0 ) {
            $( pinSection ).attr( 'title', strColorName );
        } else {
            $( domPin ).attr( 'title', strColorName );
        }
    } );

    specialsFilter();

    $( document ).on( 'mouseup', '#map_span', function( e ) { specialsFilter(); } );
    $( document ).on( 'click', '#map-box-specials-zoom-in', function( e ) { specialsFilter(); } );
    $( document ).on( 'click', '#map-box-specials-zoom-out', function( e ) { specialsFilter(); } );
} )();