您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
changes the styling of the segment and venue messages
当前为
// ==UserScript== // @name WME Simple Alert Messages // @namespace https://fxzfun.com/ // @version 2.0 // @description changes the styling of the segment and venue messages // @author FXZFun // @match https://*.waze.com/*/editor* // @match https://*.waze.com/editor* // @exclude https://*.waze.com/user/editor* // @icon https://www.google.com/s2/favicons?sz=64&domain=waze.com // @grant none // @license GNU GPL v3 // ==/UserScript== /* global W, OpenLayers */ (function() { 'use strict'; function fxzAddLockMessage(maxLock) { document.querySelector("#fxzMessages").insertAdjacentHTML("beforeEnd", `<span class="fxzMessage locked"><i class="w-icon w-icon-lock-fill"></i> Locked to L${maxLock}</span>`); document.querySelector(".fxzMessage.locked").addEventListener("click", () => { var url = fxzGetUrl(); var city = document.querySelector(".location-info").innerText.split(",")[0]; if (document.querySelector(".wmecitiesoverlay-region") != null) city = document.querySelector(".wmecitiesoverlay-region").innerText; var discordFormat = `:unlock${maxLock}: ${city} - *reason* - <${url}>`; copyText(discordFormat); document.querySelector(".fxzMessage.locked").innerHTML = `<span class="fxzMessage locked"><i class="w-icon w-icon-copy"></i> Copied!</span>`; }); document.querySelector(".fxzMessage.locked").title = "Copy unlock request for Discord"; } function fxzAddEAMessage() { document.querySelector("#fxzMessages").insertAdjacentHTML("beforeEnd", `<span class="fxzMessage ea"><i class="w-icon w-icon-alert-fill"></i> Out of your EA</span>`); } function fxzAddMixedMessage() { document.querySelector("#fxzMessages").insertAdjacentHTML("beforeEnd", `<span class="fxzMessage mixed"><i class="w-icon w-icon-round-trip"></i> Mixed A/B</span>`); } function fxzAddPurMessage() { document.querySelector("#fxzMessages").insertAdjacentHTML("beforeEnd", `<span class="fxzMessage pur"><i class="w-icon w-icon-location-update-fill"></i> PUR Request</span>`); document.querySelector(".fxzMessage.pur").addEventListener("click", () => { document.querySelector(".venue-alerts wz-alert span[slot=action]").click(); }); document.querySelector(".fxzMessage.pur").title = JSON.parse(document.querySelector("#localeStrings").innerText).edit.venue.update_requests.pending; } function fxzAddClosureMessage() { document.querySelector("#fxzMessages").insertAdjacentHTML("beforeEnd", `<span class="fxzMessage closure"><i class="w-icon w-icon-closure"></i> Has Closures</span>`); document.querySelector(".fxzMessage.closure").addEventListener("click", () => { document.querySelector("wz-tabs").shadowRoot.querySelectorAll(".wz-tab-label")[1].click(); }); } function fxzAddSimpleMessagesContainer(mode) { var fxzMessagesDiv = document.createElement("div"); fxzMessagesDiv.id = "fxzMessages"; if (mode == "segment") document.querySelector("#edit-panel .panel-header-component").insertAdjacentElement("afterEnd", fxzMessagesDiv); else if (mode == "venue") document.querySelector(".venue-panel-header").insertAdjacentElement("afterEnd", fxzMessagesDiv); } function fxzGetUrl() { var lonlat = new OpenLayers.LonLat(W.map.getCenter().lon, W.map.getCenter().lat); lonlat.transform(new OpenLayers.Projection('EPSG:900913'), new OpenLayers.Projection('EPSG:4326')); var zoom = W.map.getZoom(); var segments = []; var venues = []; W.selectionManager.getSelectedFeatures().forEach(item => { if (item.model.type == "segment") { segments.push(item.model.attributes.id); } else if (item.model.type == "venue") { venues.push(item.model.attributes.id); } }); var url = location.href.split("?")[0] + `?env=${W.map.wazeMap.regionCode}&lat=${lonlat.lat}&lon=${lonlat.lon}&zoomLevel=${zoom}`; if (segments.length > 0) url += "&segments=" + segments.join(","); if (venues.length > 0) url += "&venues=" + venues.join(","); return url; } function copyText(textContent) { var text = document.createElement("textarea"); text.style = "position: fixed;top:0;left:0;width:2px;height:2px;"; text.innerHTML = textContent; document.body.appendChild(text); text.select(); document.execCommand("copy"); text.style = "display: none"; } function fxzSelectionChange() { if (W.selectionManager.getSelectedFeatures().length > 0) { var mode = W.selectionManager.getSelectedFeatures()[0].model.type; // wait for panel to open var i2Count = 0; var i2 = setInterval(()=>{ if (document.querySelector("#edit-panel").style.display != "none" || i2Count++ > 20) clearInterval(i2); else return; var msgBox = document.getElementById("fxzMessages"); if (msgBox) msgBox.innerHTML = ""; else fxzAddSimpleMessagesContainer(mode); // clear other messages if (mode == "segment") document.querySelector(".segment-alerts").style.display = "none"; else if (mode == "venue") document.querySelector(".venue-alerts").style.display = "none"; // locked message var maxLock = Math.max(...Array.from(W.selectionManager.getSelectedFeatures()).map(item => item.model.attributes.lockRank)); var segDetails = document.querySelector(".segment-alerts"); // out of ea if (mode == "segment" && segDetails.innerText.includes("You can only edit segments in your driven area")) { fxzAddEAMessage(); } if (W.loginManager.user.rank < maxLock) { fxzAddLockMessage(maxLock + 1); } // mixed segments if (document.querySelector("wz-alerts-group").innerText.includes("not in the same direction")) { fxzAddMixedMessage(); } // pur if (document.querySelector("wz-alerts-group").innerText.includes("pending update")) { fxzAddPurMessage(); } // closure if (document.querySelector("wz-alerts-group").innerText.includes("closure")) { fxzAddClosureMessage(); } }, 100); } } function initialize() { console.log("WME Simple Alert Messages Loaded"); W.selectionManager.events.register('selectionchanged', this, fxzSelectionChange); // run preselected from url if (W.selectionManager.getSelectedFeatures().length > 0) fxzSelectionChange(); // add styling var style = document.createElement("style"); style.innerHTML = `/* WME Simple Alert Messages Styling */ #fxzMessages {margin-top: 5px; margin-left: 10px;} .fxzMessage {padding: 7px 10px; border-radius: 10px; width: fit-content; margin-left: 5px; white-space: nowrap;} .fxzMessage .w-icon {font-size: 20px;vertical-align: middle;} .fxzMessage.locked {background-color: #FE5F5D; cursor: pointer;} .fxzMessage.ea {background-color: #FF9800;} .fxzMessage.mixed {background-color: #42A5F5;} .fxzMessage.pur {background-color: #C9B5FF; cursor: pointer;} .fxzMessage.closure {background-color: #FE5F5D; cursor: pointer;}`; document.body.appendChild(style); } // bootstrap W?.userscripts?.state?.isReady ? initialize() : document.addEventListener("wme-ready", initialize, { once: true }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址