#!/usr/bin/python# -*- coding: utf-8 -*-"""Insert {{egyért-redir}} template into redirects which have the same name as a disambiguation page but do not point there"""importre,codecsimportwikipediaaspywikibotimportpagegeneratorsclassInsertEgyertRedirBot:re_disambig_pagename=re.compile(ur'(.*)[ _]\(egyértelműsítő[ _]lap\)')verbose=Falsesave=Truedeflog(self,type,text,page,logfiles={}):ifself.verbose:pywikibot.output(text%page.title())ifself.save:filename='insert_egyert-redir.%s.txt'%typeiffilenamenotinlogfiles:logfiles[filename]=codecs.open(filename,'wt','utf-8')logfiles[filename].write(page.title()+'\n')defrun(self):site=pywikibot.getSite()gen=pagegenerators.CategorizedPageGenerator(site.disambcategory())fordisambigingen:target=Nonem=self.re_disambig_pagename.match(disambig.title())ifnotmandnotdisambig.isRedirectPage():self.log('strangename',u'Disambig page with strange name: %s',disambig)continueredir=pywikibot.Page(site,m.group(1))try:target=redir.getRedirectTarget()exceptpywikibot.NoPage:self.log('nopage',u'Disambig page without base page: %s',disambig)continueexceptpywikibot.IsNotRedirectPage:self.log('noredirect',u'Disambig page without base page: %s',disambig)continueiftarget.title()==disambig.title():continueifu'Egyért-redir'inredir.templates(get_redirect=True):continueself.log('needtemplate',u'Page needing {{egyért-redir}}: %s',redir)text=redir.get(get_redirect=True)redir.put(text+u'\n{{egyért-redir}}',u'hiányzó {{egyért-redir}} sablon pótlása')defmain(*args):bot=InsertEgyertRedirBot()bot.run()if__name__=="__main__":try:main()finally:pywikibot.stopme()