Verify Waze landmarks linked to Google POI
// ==UserScript==
// @name WME Google POI verifier
// @name:cs WME Kontrola Google POI
// @version 1.51
// @description Verify Waze landmarks linked to Google POI
// @description:cs Kontroluje landmarky ve Waze nalinkované na Google POI
// @author Kebb01
// @include https://www.waze.com/editor/*
// @include https://www.waze.com/*/editor/*
// @include https://editor-beta.waze.com/*
// @include https://beta.waze.com/*/editor/*
// @namespace https://greasyfork.org/cs/scripts/19122-wme-google-poi-verifier
// @grant none
// ==/UserScript==
function gpoi_bootstrap()
{
var bGreasemonkeyServiceDefined = false;
try
{
if ("object" === typeof Components.interfaces.gmIGreasemonkeyService)
{
bGreasemonkeyServiceDefined = true;
}
}
catch (err)
{
//Ignore.
}
if ( "undefined" === typeof unsafeWindow || ! bGreasemonkeyServiceDefined)
{
unsafeWindow = ( function ()
{
var dummyElem = document.createElement('p');
dummyElem.setAttribute ('onclick', 'return window;');
return dummyElem.onclick ();
} ) ();
}
/* begin running the code! */
console.log("GPOI: GPOI bootstrap init");
coolscript_init();
}
// =========
function coolscript_init()
{
function gpoiFunc(){
function readTextFile(file, callback) {
var rawFile = new XMLHttpRequest();
rawFile.overrideMimeType("text/plain");
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4 && rawFile.status == "200") {
callback(rawFile.responseText);
}
};
rawFile.send(null);
}
setInterval(function(){ gpoiRun(); }, 3000);
function gpoiRun() {
var gLoop = 0;
var gUrlArray = [];
var gCodeArray = [];
var gpoiDataArray = [];
var gLinkArray = [];
var hostName = window.location.hostname;
var neKat = ["FOREST_GROVE", "RIVER_STREAM"];
var neKatCount = neKat.length;
var missingGPOI = " MISSING LINKED GOOGLE MAP POI ";
console.log("missingGPOI = " + missingGPOI);
function GPOICreateElement () {
var element = document.createElement("div");
element.style.color = '#FF0000';
element.style.fontWeight = "bold";
element.appendChild(document.createTextNode(missingGPOI));
var missingGPOIs = document.getElementsByClassName("form-group")[12].appendChild(element);
}
var gpoiCount = document.getElementsByClassName("select2-chosen");
gpoiCount = gpoiCount.length;
var jeTamText = document.getElementsByClassName("form-group")[12].innerText;
var place = W.selectionManager.selectedItems[0].model;
var kat = W.selectionManager.selectedItems[0].model.attributes.categories;
console.log("neKat = " + neKat + ", kat = " + kat);
// tu jsem skončil
if (place.type === "venue") {
if (kat != "FOREST_GROVE" || kat != "RIVER_STREAM") {
if (jeTamText.includes("LINKED")) {
} else {
if (gpoiCount === 0) {
GPOICreateElement();
}
}
}
}
for (i = 0; i < gpoiCount; i++) {
var gCode = document.getElementsByClassName("placeId")[i].innerHTML;
gCodeArray.push(gCode); // kódy WME
}
for (x = 0; x < gpoiCount; x++) {
var gpoiData = "https://" + hostName + "/maps/api/place/details/json?placeid=" + gCodeArray[x] + "&key=AIzaSyBIfV0EMXrTDjrvD92QX5bBiyFmBbT-W8E";
gpoiDataArray.push(gpoiData); /// linky k json datům
}
for (y = 0; y < gpoiCount; y++) {
readTextFile(gpoiDataArray[y], function(text){
var data = JSON.parse(text);
console.log("gpoiData = " + gpoiData);
var url = data.result.url;
gUrlArray.push(url);
for (y1 = 0; y1 < gpoiCount; y1++) {
// var gLink = '<a href = "' + gUrlArray[y1] + '" target = "_blank">' + gCodeArray[y1] + '</a>';
var gLink = '<a href = "' + gUrlArray[y1] + '" target = "_blank">' + "» GoogleMap POI #" + [y1+1] + '</a>';
gLinkArray.push(gLink);
}
if (gpoiCount == 1) {
for (z = 0; z < gpoiCount; z++) {
document.getElementsByClassName("placeId")[z].innerHTML = gLinkArray[z];
}
}
if (gpoiCount > 1) {
for (z = gpoiCount; z < gpoiCount+gpoiCount; z++) {
document.getElementsByClassName("placeId")[z-gpoiCount].innerHTML = gLinkArray[z];
}
}
});
}
}
}
gpoiFunc();
}
// then at the end of your script, call the bootstrap to get things started
gpoi_bootstrap();