User:Edoderoobot/en-nl-label-fixer

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:P31 wd:Q13406463 . ?item rdfs:label ?labelnl FILTER(lang(?labelnl)="nl")   ?item rdfs:label ?labelen FILTER(lang(?labelen)="en" && str(?labelnl) = str(?labelen) )}'


def logme(verbose, formatstring, *parameters):
  with codecs.open("NL-labelfixer.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):
  if ('nl' in wd.labels):
    oldlabel=wd.labels['nl']
    data={}
    if ('nlwiki' in wd.sitelinks):
      newlabel = wd.sitelinks['nlwiki'] 
    else:
      newlabel = u''
    data.update({'labels': { 'nl': newlabel }})
    wd.editEntity(data,summary=u'reset nl-label, [https://www.wikidata.org/wiki/User:Edoderoobot/en-nl-label-fixer 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',oldlabel,newlabel,'','','sparql-query')
    
def main():
  print('1')
  generator = wd_sparql_generator(query)
  print('2')
  for oneitem in generator:
    if ('nlwiki' in oneitem.sitelinks):
      print(oneitem.sitelinks['nlwiki'])

if (False):
    main()
else:   
    site=pywikibot.Site('wikidata','wikidata')
    repo=site.data_repository()


    wd=pywikibot.ItemPage(repo,'Q26052')
    wd.get(get_redirect=True)
    action_one_item(wd)

    wd=pywikibot.ItemPage(repo,'Q28869')
    wd.get(get_redirect=True)
    action_one_item(wd)