User:P-bot/blp.py
外观
#!/usr/bin/python
# -*- coding: utf-8 -*-
import wikipedia, pagegenerators
import re, time, codecs
summary = u'机器人:添加{{Blp}}模板'
gfwlogtitle = 'e:\\pywiki\\fuckgfw\\log.txt'
genFactory = pagegenerators.GeneratorFactory()
for arg in wikipedia.handleArgs():
generator = genFactory.handleArg(arg)
if generator:
gen = generator
preloadingGen = pagegenerators.PreloadingGenerator(gen)
for page in preloadingGen:
if page.namespace() == 0:
if not re.search(u'(法会|法轮|多维|屠杀|经文|邪恶|邓力群|赵紫阳|六四|色情)', page.title()) == None:
wikipedia.output(u'[[%s]]中存在GFW不能接受的关键词,自动跳过。' % page.title())
gfwlogfile = codecs.open(gfwlogtitle, 'a', 'utf-8')
gfwlogfile.write('[['+page.title()+u']](自动排除)\n')
gfwlogfile.close()
continue
talktitle = 'talk:' + page.title()
talkpage = wikipedia.Page(wikipedia.getSite(), talktitle)
try:
text = talkpage.get()
if re.search('\{\{\s*([Bb]lp|BLP|生者[传傳][记記])\s*\}\}', text) == None:
text = '{{Blp}}\n' + text
talkpage.put(text, summary)
else:
wikipedia.output(u'条目[[%s]]的{{Blp}}模板已存在。' % page.title())
continue
except (wikipedia.NoPage, wikipedia.IsRedirectPage):
text = '{{Blp}}'
talkpage.put(text, summary)
except KeyboardInterrupt:
raise
except: # fuck GFW
wikipedia.output(u'[[%s]]中可能存在GFW不能接受的关键词,两分钟后将自动跳到下一个条目。' % page.title())
gfwlogfile = codecs.open(gfwlogtitle, 'a', 'utf-8')
gfwlogfile.write('[['+page.title()+']]\n')
gfwlogfile.close()
time.sleep(120)
continue
else:
wikipedia.output(u'[[%s]]不是一个条目。' % page.title())
continue