// ==UserScript==
// @name WME Validator North Carolina Localization
// @namespace https://gf.qytechs.cn/users/6285
// @version 1.4.13
// @author s18slider
// @description This script localizes WME Validator for United States. You also need main package (WME Validator) installed.
// @match https://editor-beta.waze.com/*editor/*
// @match https://www.waze.com/*editor/*
// @grant none
// @run-at document-start
// ==/UserScript==
//
/*
See Settings->About->Available checks for complete list of checks and their params.
Examples:
Enable #170 "Lowercase street name" but allow lowercase "exit" and "to":
"170.enabled": true,
"170.params": {
"regexp": "/^((exit|to) )?[a-z]/",
"},
Enable #130 "Custom check" to find a dot in street names, but allow dots at Ramps:
"130.enabled": true,
"130.params": {
"titleEN": "Street name with a dot",
"problemEN": "There is a dot in the street name (excluding Ramps)",
"solutionEN": "Expand the abbreviation or remove the dot",
"template": "${type}:${street}",
"regexp": "D/^[^4][0-9]?:.*\\./",
},
*Note: use D at the beginning of RegExp to enable debugging on JS console.
*Note: do not forget to escape backslashes in strings, i.e. use "\\" instead of "\".
*/
window.WME_Validator_United_States = {
".country": "United States",
".codeISO": "US",
".author": "s18slider",
".updated": "2016-01-13",
".link": "https://gf.qytechs.cn/en/scripts/5973-wme-validator-north-carolina-localization",
//Default US checks
"27.enabled": true,
"90.enabled": true,
"104.enabled": true,
"106.enabled": true,
"112.enabled": false,
"112.params": {
"n": 55,
},
"163.enabled": true,
"163.solutionLink": "W:Road_names/USA#Exit_ramps_and_entrance_ramps_.28on-ramps.29",
"163.params": {
"regexp": ".*\\b(Exit: |Exit to )\\b/i"
},
"167.enabled": true,
"167.solutionLink": "W:Railroad#Railroad",
"167.params": {
"regexp": "!/(Railway|Railroad|Line|Streetcar|Monorail|RT|Transit|Tram)$/",
},
"170.enabled": true,
"170.params": {
"regexp": "/^(?!(to) [^a-z])((S|N|W|E) )?[a-z]/",
},
// #171 ## Check for improper use of a period (.) that is not on the USA
// recommended abbreviations list (PesachZ)
"171.enabled": true,
"171.solutionLink": "W:Abbreviations_and_acronyms/USA#Standard_suffix_abbreviations",
"171.params": {
"regexp": "/((?!(\\bPhila|\\bPenna|.(\\bWash|\\bCmdr|\\bProf|\\bPres)|..(\\bAdm|\\bSte|\\bCpl|\\bMaj|\\bSgt|\\bRe[vc]|\\bR\\.R|\\bGov|\\bGen|\\bHon|\\bCpl)|...(\\bSt|\\b[JSD]r|\\bLt|\\bFt)|...(#| )[NEWSR])).{5}\\.|((?!(hila|enna|(\\bWash|\\bCmdr|\\bProf|\\bPres)|.(\\bAdm|\\bSte|\\bCpl|\\bMaj|\\bSgt|\\bRe[vc]|\\bR\\.R|\\bGov|\\bGen|\\bHon|\\bCpl)|..(\\bSt|\\b[JSD]r|\\bLt|\\bFt)|..(#| )[NEWSR])).{4}|(\\bhila|\\benna))\\.|((?!(ila|nna|(ash|mdr|rof|res)|(\\bAdm|\\bSte|\\bCpl|\\bMaj|\\bSgt|\\bRe[vc]|\\bR\\.R|\\bGov|\\bGen|\\bHon|\\bCpl)|.(\\bSt|\\b[JSD]r|\\bLt|\\bFt)|.(#| )[NEWSR])).{3}|\\b(ila|nna|ash|mdr|rof|res))\\.|((?!(la|na|(sh|dr|of|es)|(dm|te|pl|aj|gt|e[vc]|\\.R|ov|en|on|pl)|(\\bSt|\\b[JSD]r|\\bLt|\\bFt)|(#| )[NEWSR])).{2}|\\b(la|na|sh|dr|of|es|dm|te|pl|aj|gt|e[vc]|\\.R|ov|en|on|pl))\\.|(#|^)[^NEWSR]?\\.)|(((?!\\b(D|O|L)).|#|^)\'(?![sl]\\b)|(#|^)\'s|(?!\\b(In|Na)t).{3}\'l|(#|^).{0,2}\'l)|(Dr|St)\\.(#|$)|,|;|\\\\|((?!\\.( |#|$|R))\\..|(?!\\.( .|#.|$|R\\.))\\..{2}|\\.R(#|$|\\.R))|\\b[Ee]x[dn]\\b|Tunl\\b|Long Is\\b|Brg\\b/",
"problemEN": "The street name has incorrect abbreviation, or character",
"solutionEN": "Check upper/lower case, a space before/after the abbreviation and the accordance with the abbreviation table. Remove any comma (,), backslash (\\), or semicolon (;)"
},
//North Carolina checks
"130.enabled": true,
"130.solutionLink": "W:North_Carolina#Roads",
"130.params": {
"titleEN": "Bad Street Name",
"problemEN": "Street Name or Alt Name has been identified as incorrect. (dfa, nul, null, no street, US-29 Alt, NC-####, SR ####)",
"solutionEN": "Correct the street name, NC Secondary Road (SR-####) (refer to NC wiki), remove names dfa, nul, null, no street or US-29 ALT. US-29 ALT is not a valid highway in NC.",
"template": "${state}:${street}#${altStreet[#]}#`",
"regexp": "/^North Carolina:.*\\b(?:dfa|nul|null|no street|US-29 Alt|NC-[0-9]{4,}|SR [0-9]{4,}|CR [0-9]{4,}|Co Rd [0-9]{4,}|County Rd [0-9]{4,}|County Road [0-9]{4,})\\b/i"
},
"131.enabled": true,
"131.params": {
"titleEN": "Potential Incorrect Abbreviation",
"problemEN": "Name abbreviation may be incorrect. Alternative routes should be labeled ALT and abbreviations ALT, BUS, BYP, CONN, LOOP, SCN, and SPUR should be in ALL CAPS",
"solutionEN": "Change abbreviation to ALT, BUS, BYP, CONN, LOOP, SCN, SPUR, or TRUCK in ALL CAPS",
"template": "${street}#${altStreet[#]}#`",
"regexp": "/!?[0-9].+(Alt|Business|Bus|Byp|Conn|Loop|Scn|Spur)\\b/"
},
"132.enabled": true,
"132.solutionLink": "W:North_Carolina#Roads",
"132.params": {
"titleEN": "Wrong name on US Highway",
"problemEN": "All US highways should be named US-XXX",
"solutionEN": "Change name to US-XX and verify with GIS the highway name is correct.",
"template": "${street}#${altStreet[#]}#`",
"regexp": ".*\\b(?:US Highway |US Hwy Route |US Hwy Rte |US Hwy |US Rte |US- |US )[0-9]{1,3}\\b/i"
},
"133.enabled": true,
"133.solutionLink": "W:North_Carolina#Roads",
"133.params": {
"titleEN": "Wrong name on state highway",
"problemEN": "All state highways should be named NC-XXX in North Carolina",
"solutionEN": "Change name to NC-XX and verify with GIS the highway name is correct.",
"template": "${state}:#${street}#${altStreet[#]}",
"regexp": "/^North Carolina:.*\\b(?:State Highway |State Hwy |State Rd |State Rte |SR-|NC |NC- |NC Hwy |NC-Hwy |N C |N.C. |SH-)[0-9]{1,3}\\b/i"
},
"134.enabled": true,
"134.solutionLink": "W:Road_types/USA#Major_Highway",
"134.params": {
"titleEN": "Wrong road type (Major)",
"problemEN": "All US Highways should be at least Major Highway (except BUS, SPUR, LOOP)",
"solutionEN": "Change the road type to Major Highway",
"template": "${typeRank}:#${street}@#${altStreet[@#]}@",
"regexp": "/^[1-9](?![245]).*#(?:US Hwy |US-)[0-9]+(?: ALT| BYP| CONN| TRUCK| SCN| Scenic| [NSWE])*@/i"
},
"135.enabled": true,
"135.solutionLink": "W:Road_types/USA#Minor_Highway",
"135.params": {
"titleEN": "Wrong road type (Minor)",
"problemEN": "All US BUS, SPUR, LOOP Highways and all State Highways (except BUS, SPUR, LOOP) should be at least Minor Highway type",
"solutionEN": "Change the road type to Minor Highway",
"template": "${typeRank}:#${street}@#${altStreet[@#]}@",
"regexp": "/^[1-9](?![2-5]).*#(?:((?:State Hwy |SH-|K-|LA-|M-|MA-|MS-|NC-|SC-)[0-9]{1,3})+(?:| ALT| BYP| CONN| TRUCK| SCN| Scenic| [NSWE])*|(?:US Hwy |US-)[0-9]+(?: BUS| LOOP| SPUR)+(?: [NSWE])?)@/i"
},
"136.enabled": true,
"136.solutionLink": "W:Road_types/USA#Primary_Street",
"136.params": {
"titleEN": "Wrong road type (Primary)",
"problemEN": "All State BUS, SPUR, LOOP Highways should be at least Primary Street type",
"solutionEN": "Change the road type to Primary Street",
"template": "${typeRank}:#${street}@#${altStreet[@#]}@",
"regexp": "/^[1-9](?![1-5]).*#(?:State Hwy |SH-|K-|LA-|M-|MA-|MS-|NC-|SC-)[0-9]+(?: BUS| LOOP| SPUR)+(?: [NSWE])?@/i"
},
"150.enabled": true,
"150.params": {
// {number} minimum lock level
"n": 5,
},
"151.enabled": true,
"151.params": {
// {number} minimum lock level
"n": 4,
},
"152.enabled": true,
"152.params": {
// {number} minimum lock level
"n": 3,
},
"153.enabled": true,
"153.params": {
// {number} minimum lock level
"n": 3,
},
"154.enabled": true,
"154.params": {
// {number} minimum lock level
"n": 2,
},
};