User:Edoderoobot/labels-indonesian-villages.py

From Wikidata
Jump to navigation Jump to search
import pywikibot
from pywikibot import pagegenerators as pg


query='select ?item where {?item wdt:P31 wd:Q2225692 . ?item wdt:P17 wd:Q252}'
lang='nl'
src='id'

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

nl_blank = 0
nl_filled= 0
for village in wd_sparql_query(query):
  nl=''
  id=''
  if (src) in village.labels:
    id=village.labels['id']
    if (lang) in village.labels:
      nl=village.labels[lang]
      nl_filled += 1
    else:
      nl_blank += 1  
      data={}
      data.update({'labels':{lang:id}})
      try:
        village.editEntity(data,summary=u'label van id-wiki')
      except:
        pass
  else:    
    print('%s-%d-%d-%d-[%s]-<%s>' % (village.title(),100*nl_filled / (nl_blank+nl_filled+1),nl_filled,nl_blank,nl,id))