User:Edoderoobot/achternaam-alias

From Wikidata
Jump to navigation Jump to search
import pywikibot

from pywikibot import pagegenerators as pg

def wd_sparql_query(spq):
  wikidatasite=pywikibot.Site('wikidata','wikidata') 
  generator=pg.WikidataSPARQLPageGenerator(spq,site=wikidatasite)
  for wd in generator:
    if (wd.exists()):
      wd.get(get_redirect=True)
      yield wd

query='select ?item where {?item wdt:P31 wd:Q101352}'
lng='nl'
suffix={'nl':' (achternaam)','en':' (lastname)'}

def updateOne(wd):
  if lng in wd.labels:
    alias=wd.labels[lng]+suffix[lng]
    newalias=[]
    if (lng in wd.aliases):
      if not(alias in wd.aliases[lng]):
        newalias=wd.aliases[lng]
    newalias.append(alias)
    wd.editEntity({'aliases':{lng:newalias}},summary=f'---add alias for {lng}')

def testOne():
  site=pywikibot.Site('wikidata','wikidata')    
  repo=site.data_repository()
  wd=pywikibot.ItemPage(repo,'Q254906')
  wd.get()
  updateOne(wd)

def justAll():
  for wd in wd_sparql_query(query):
    updateOne(wd)

print('Start')    
#testOne()
justAll()
print('Klaar')