您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Owner is MapOMatic. Translation by me. Mostra a contagem diária de suas edições realizadas no WME. Alerta se está acelerado. Original link: https://greasyfork.org/en/scripts/19941-waze-edit-count-monitor
// ==UserScript== // @name Waze Edit Count Monitor (pt-BR) // @namespace // @version 0.9.2 // @description Owner is MapOMatic. Translation by me. Mostra a contagem diária de suas edições realizadas no WME. Alerta se está acelerado. Original link: https://greasyfork.org/en/scripts/19941-waze-edit-count-monitor // @author GabiruDriverX // @include https://beta.waze.com/*editor/* // @include https://www.waze.com/*editor/* // @exclude https://www.waze.com/*user/editor/* // @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js // @grant GM_xmlhttpRequest // @connect www.waze.com // @icon https://wiki.waze.com/wiki/images/3/31/Wazer-with-premission.png // original link: https://greasyfork.org/en/scripts/19941-waze-edit-count-monitor // ==/UserScript== function WECM_Injected() { var debugLevel = 0; var $outputElem = null; var $outputElemContainer = null; var pollingTime = 1000; // Time between checking for saves (msec). var lastEditCount = null; var lastCanSave = true; var userName = null; var savesWithoutIncrease = 0; var lastURCount = null; var tooltipText = 'Contagem diária de suas edições. Clique para abrir seu perfil.'; function log(message, level) { if (message && level <= debugLevel) { console.log('Monitor de contagem de edição: ' + message); } } function checkForSave() { var canSave = W.model.actionManager.canSave(); var canRedo = W.model.actionManager.canRedo(); if (lastCanSave && !canSave && !canRedo) { window.postMessage(JSON.stringify(['wecmGetCounts',userName]),'*'); } lastCanSave = canSave; } // This is a hack, because I haven't had time to figure out how to listen for a 'save' event yet. function loopCheck() { checkForSave(); setTimeout(loopCheck, pollingTime); } function updateEditCount(editCount, urCount) { var textColor; var bgColor; var tooltipTextColor; log('edit count = ' + editCount + ', UR count = ' + urCount.count, 1); if (lastEditCount !== editCount || lastURCount !== urCount.count) { savesWithoutIncrease = 0; } else { savesWithoutIncrease += 1; } switch (savesWithoutIncrease) { case 0: case 1: textColor = ''; bgColor = ''; tooltipTextColor = 'white'; break; case 2: textColor = ''; bgColor = 'yellow'; tooltipTextColor = 'black'; break; default: textColor = 'white'; bgColor = 'red'; tooltipTextColor = 'white'; } $outputElemContainer.css('background-color', bgColor); $outputElem.css('color', textColor).html('Edições: ' + editCount); var urCountText = "<div style='margin-top:8px;padding:3px;'>UR's fechadas: " + urCount.count + " \n(desde " + (new Date(urCount.since)).toLocaleDateString() + ")</div>"; var warningText = (savesWithoutIncrease > 0) ? "<div style='border-radius:8px;padding:3px;margin-top:8px;margin-bottom:5px;color:"+ tooltipTextColor + ";background-color:" + bgColor + ";'>" + savesWithoutIncrease + ' Consecutivos saves sem aumentar. (Você está acelerado?)</div>' : ''; $outputElem.attr('data-original-title', tooltipText + urCountText + warningText); lastEditCount = editCount; lastURCount = urCount.count; } function receiveMessage(event) { var msg; try { msg = JSON.parse(event.data); } catch (err) { // Do nothing } if (msg && msg[0] === "wecmUpdateUi") { var editCount = msg[1][0]; var urCount = msg[1][1]; updateEditCount(editCount, urCount); } } function init() { 'use strict'; userName = W.loginManager.user.userName; $outputElemContainer = $('<div>', {style:'border-radius: 23px; height: 23px; display: inline; float: right; padding-left: 10px; padding-right: 10px; margin: 9px 5px 8px 5px; font-weight: bold; font-size: medium;'}); $outputElem = $('<a>', {id: 'wecm-count', href:'https://www.waze.com/user/editor/' + userName.toLowerCase(), target: "_blank", style:'text-decoration:none', 'data-original-title': tooltipText}); $outputElemContainer.append($outputElem); $('.waze-icon-place').parent().prepend($outputElemContainer); $outputElem.tooltip({ placement: 'auto top', delay: {show: 100, hide: 100}, html: true, template: '<div class="tooltip" role="tooltip" style="opacity:0.95"><div class="tooltip-arrow"></div><div class="my-tooltip-header"><b></b></div><div class="my-tooltip-body tooltip-inner" style="font-weight: 600; !important"></div></div>' }); window.addEventListener('message', receiveMessage); loopCheck(); log('Initialized.',0); } function bootstrap() { if (W && W.loginManager && W.loginManager.events && W.loginManager.events.register && W.map && W.loginManager.isLoggedIn()) { log('Inicializando...', 0); init(); } else { log('Bootstrap falhou. Tente novamente...', 0); window.setTimeout(function () { bootstrap(); }, 1000); } } bootstrap(); } /* Code that is NOT injected into the page */ (function(){ var alertUpdate = true; var wecmVersion = GM_info.script.version; var wecmChangesHeader = "Waze Edit Count Monitor foi atualizado.\nv" + wecmVersion + "\n\nO que há de novo\n-------------------------"; var wecmChanges = wecmChangesHeader + "\n- Agora deve funcionar em FF Greasemonkey e em WME beta."; function getEditorProfileFromSource(source) { var match = source.match(/W.EditorProfile.data\s=\s+JSON.parse\('(.*?)'\)/i); return JSON.parse(match[1]); } function getEditCountFromProfile(profile) { var editingActivity = profile.editingActivity; return editingActivity[editingActivity.length-1]; } function getURCountFromProfile(profile) { var editsByType = profile.editsByType; for (i=0; i < editsByType.length; i++) { if (editsByType[i].key == 'mapUpdateRequest') { return editsByType[i].value; } } return -1; } // Listen for a message from the page. function receiveMessage(event) { var msg; try { msg = JSON.parse(event.data); } catch (err) { // Do nothing } if (msg && msg[0] === "wecmGetCounts") { var userName = msg[1]; GM_xmlhttpRequest({ method: "GET", url: 'https://www.waze.com/user/editor/' + userName, onload: function(res) { var profile = getEditorProfileFromSource(res.responseText); window.postMessage(JSON.stringify(['wecmUpdateUi',[getEditCountFromProfile(profile), getURCountFromProfile(profile)]]),'*'); } }); } } $(document).ready(function() { /* Check version and alert on update */ if (alertUpdate && ('undefined' === window.localStorage.wecmVersion || wecmVersion !== window.localStorage.wecmVersion)) { alert(wecmChanges); window.localStorage.wecmVersion = wecmVersion; } }); var WECM_Injected_script = document.createElement("script"); WECM_Injected_script.textContent = "" + WECM_Injected.toString() + " \n" + "WECM_Injected();"; WECM_Injected_script.setAttribute("type", "application/javascript"); document.body.appendChild(WECM_Injected_script); window.addEventListener('message', receiveMessage); })();