Skip to content

Commit

Permalink
Black/whitelisting for special phrases
Browse files Browse the repository at this point in the history
Allows to restrict the special phrases imported from the wiki.
Blacklist allows to exclude certain class/type combinations.
Whitelist allows to define an allowed subset of types for a class.
Adjust to your liking in settings/phrase_settings.php before running
the specialphrases script.
  • Loading branch information
lonvia committed Mar 20, 2012
1 parent b1e10bc commit 248b6ec
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 34 deletions.
51 changes: 51 additions & 0 deletions settings/phrase_settings.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?php
# These settings control the import of special phrases from the wiki.

# Languages to download the special phrases for.
$aLanguageIn = array(
'af',
'ar',
'br',
'ca',
'cs',
'de',
'en',
'es',
'et',
'eu',
'fa',
'fi',
'fr',
'gl',
'hr',
'hu',
'ia',
'is',
'it',
'ja',
'mk',
'nl',
'no',
'pl',
'ps',
'pt',
'ru',
'sk',
'sv',
'uk',
'vi',
);

# class/type combinations to exclude
$aTagsBlacklist = array(
'boundary' => array('administrative'),
'place' => array('house', 'houses'),
);
# If a class is in the white list then all types will
# be ignored except the ones given in the list.
# Also use this list to exclude an entire class from
# special phrases.
$aTagsWhitelist = array(
'highway' => array('bus_stop', 'rest_area', 'raceway'),
'building' => array(),
);
46 changes: 12 additions & 34 deletions utils/specialphrases.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,39 +15,6 @@
);
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);

$aLanguageIn = array(
'af',
'ar',
'br',
'ca',
'cs',
'de',
'en',
'es',
'et',
'eu',
'fa',
'fi',
'fr',
'gl',
'hr',
'hu',
'ia',
'is',
'it',
'ja',
'mk',
'nl',
'no',
'pl',
'ps',
'pt',
'ru',
'sk',
'sv',
'uk',
'vi',
);

if ($aCMDResult['countries']) {
echo "select getorcreate_country(make_standard_name('uk'), 'gb');\n";
Expand All @@ -63,6 +30,7 @@

if ($aCMDResult['wiki-import'])
{
include(CONST_BasePath.'/settings/phrase_settings.php');
$aPairs = array();

foreach($aLanguageIn as $sLanguage)
Expand All @@ -84,7 +52,17 @@
preg_match('/^\\w+$/', $sType) < 1) {
trigger_error("Bad class/type for language $sLanguage: $sClass=$sType");
exit;
}
}
# blacklisting: disallow certain class/type combinations
if (isset($aTagsBlacklist[$sClass]) && in_array($sType, $aTagsBlacklist[$sClass])) {
# fwrite(STDERR, "Blacklisted: ".$sClass."/".$sType."\n");
continue;
}
# whitelisting: if class is in whitelist, allow only tags in the list
if (isset($aTagsWhitelist[$sClass]) && !in_array($sType, $aTagsWhitelist[$sClass])) {
# fwrite(STDERR, "Non-Whitelisted: ".$sClass."/".$sType."\n");
continue;
}
$aPairs[$sClass.'|'.$sType] = array($sClass, $sType);

switch(trim($aMatch[4]))
Expand Down

0 comments on commit 248b6ec

Please sign in to comment.