User:Edoderoobot/spaanse-burgemeester.py
Jump to navigation
Jump to search
import pywikibot
from pywikibot import pagegenerators as pg
import codecs
import sys
import datetime
from datetime import datetime, date, time
query='SELECT ?item WHERE {?item wdt:P279 wd:Q5663900 . OPTIONAL {?item rdfs:label ?labelnl FILTER(lang(?labelnl)="nl")} . }'
def logme(verbose, formatstring, *parameters):
with codecs.open("Spaanse-burgemeester.log.csv", "a", encoding="utf-8") as logfile:
formattedstring = u'%s%s' % (formatstring, '\n')
try:
logfile.write(formattedstring % (parameters) )
except :
exctype, value = sys.exc_info()[:2]
print("1) Error writing to logfile on: [%s] [%s]" % (exctype, value))
verbose = True #now I want to see what!
logfile.close()
if verbose:
print(formatstring % (parameters))
def wd_sparql_generator(query):
wikidatasite=pywikibot.Site('wikidata','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 action_one_item(wd):
repo=pywikibot.Site('wikidata','wikidata').data_repository()
town = u'' #get from P1001
if ('P1001' in wd.claims):
jurisdictieLNK=wd.claims.get('P1001')[0].getTarget()
if (not (jurisdictieLNK==None)):
jurisdictie=pywikibot.ItemPage(repo,jurisdictieLNK.title())
jurisdictie.get(get_redirect=True)
if ('nl' in jurisdictie.labels):
town = jurisdictie.labels['nl']
newlabel='burgemeester van %s' % town
newdescription='ambt in Spaanse stad'
data={}
if not('nl' in wd.labels):
data.update({'labels': { 'nl': newlabel }})
if not('nl' in wd.descriptions):
data.update({'descriptions':{'nl':newdescription}})
if (True):
wd.editEntity(data,summary=u'nl-description, [https://www.wikidata.org/wiki/User:Edoderoobot/spaanse-burgemeester.py python code], logfile on https://goo .gl/BezTim')
logme(False, '%s|%s|%s|%s|%s|%s|%s|%s',datetime.now().strftime("%Y-%b-%d/%H:%M:%S"),wd.title(),'nl','',newlabel,'',newdescription,'spaanse burgemeester')
else:
print('%s-%s' % (newlabel,newdescription))
else:
logme(False, '%s|%s|%s|%s|%s|%s|%s|%s',datetime.now().strftime("%Y-%b-%d/%H:%M:%S"),wd.title(),'nl','','','','','P1001==None')
else:
logme(False, '%s|%s|%s|%s|%s|%s|%s|%s',datetime.now().strftime("%Y-%b-%d/%H:%M:%S"),wd.title(),'nl','','','','','no P1001')
def main():
aantal = 0
print('1')
generator = wd_sparql_generator(query)
print('2')
for oneitem in generator:
aantal += 1
action_one_item(oneitem)
#if aantal>11: break
main()