User:Edoderoobot/straat-alias.py
Jump to navigation
Jump to search
import pywikibot
from pywikibot import pagegenerators as pg
straatquery=u'select ?item where {?item wdt:P31 wd:Q79007 . ?item wdt:P17 wd:Q55}'
conversion = {
u'Ç': u'C', u'ç': u'c', u'ß': u'ss', u'æ': u'ae', u'Æ': u'AE', u'Ł': u'L', u'ł': u'l', u'ź': u'z', u'Ź': u'Z', u'Ć': u'C', u'ć': u'c', u'ž': u'z', u'İ': u'I',
u'à': u'a', u'á': u'a', u'ä': u'a', u'â': u'a', u'À': u'A', u'Á': u'A', u'Ä': u'A', u'Â': u'A', u'å': u'a', u'Å': u'A', u'ą': u'a', u'Ą': u'A', u'Ñ': u'N',
u'é': u'e', u'ë': u'e', u'è': u'e', u'ê': u'e', u'È': u'E', u'É': u'E', u'Ë': u'E', u'Ê': u'E', u'ę': u'e', u'E': u'E', u'ń': u'n', u'ś': u's', u'ñ': u'n',
u'ì': u'i', u'í': u'i', u'ï': u'i', u'î': u'i', u'Ï': u'I', u'Î': u'I', u'Í': u'I', u'Ì': u'I', u'ż': u'z', u'Ń': u'N', u'Ś': u'S', u'Ž': u'Z', u'Ð': u'dh',
u'ò': u'o', u'ó': u'o', u'ö': u'o', u'ô': u'o', u'Ò': u'O', u'Ó': u'O', u'Ö': u'O', u'Ô': u'O', u'ø': u'o', u'Ø': u'O', u'Ż': u'Z', u'ÿ': u'ij', u'ð': u'dh',
u'ù': u'u', u'ú': u'u', u'ü': u'u', u'û': u'u', u'Ù': u'U', u'Ú': u'U', u'Û': u'U', u'Ü': u'U', u'Ű': u'U', u'ű': u'u', u'ő': u'o', u'Ő': u'O', u'Đ': u'Dj',
u'č': u'c', u'Č': u'C', u'Ė': u'E', u'ė': u'e', u'į': u'I', u'Į': u'i', u'š': u's', u'Š': u'S', u'Ų': u'U', u'ų': u'u', u'ū': u'u', u'Ū': u'U', u'đ': u'dj',
u'ı': u'i', u'ş': u's', u'Ş': u'S', u'ğ': u'g', u'Þ': u'Th', u'þ': u'th', u'Ý': u'Y', u'ý': u'y', u'': u'', u'': u'', u'': u'', u'': u'', u'': u'',
}
def wd_sparql_generator(query):
wikidatasite=pywikibot.Site('wikidata',u'wikidata')
generator=pg.WikidataSPARQLPageGenerator(query,site=wikidatasite)
for wd in generator:
if (not wd.isRedirectPage()):
if (wd.exists()):
wd.get(get_redirect=True)
yield wd
def main():
repo=pywikibot.Site('wikidata','wikidata').data_repository()
straten = wd_sparql_generator(straatquery)
for straat in straten:
if 'P131' in straat.claims:
if 'nl' in straat.labels:
gemeente=pywikibot.ItemPage(repo,straat.claims.get('P131')[0].getTarget().title())
gemeente.get(get_redirect=True)
if 'nl' in gemeente.labels:
alias='%s (%s)' % (straat.labels['nl'],gemeente.labels['nl'])
result=u''
for i in range(0,len(alias)):
onechar=alias[i:i+1]
if (onechar in conversion):
result += conversion[onechar]
else:
result += onechar
print(result)
resultArray=[]
skip=False
if ('nl' in straat.aliases):
for alias in straat.aliases['nl']:
if alias==result:
skip=True #alias already set
else:
resultArray.append(alias)
if (not skip):
data={}
resultArray.append(result)
data.update({'aliases' :{'nl':resultArray}})
print(data)
straat.editEntity(data,summary=u'#nl-straat-alias, [[User:Edoderoobot/straat-alias.py|python code]]')
print(0/0) #force error, check result manually
main()