Usuari:GerardBot/codi
Aparença
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys,re
import pywikibot
from pywikibot import bot
from pywikibot import pagegenerators as pg
import datetime
site = pywikibot.getSite()
def main(n):
#llistat de pagines noves
gen = pg.NewpagesPageGenerator(total=n)
try:
for page in gen:
timestamp = str(page.getVersionHistory(reverseOrder=True, total=1)[0][1])
_format = "%Y-%m-%dT%H:%M:%SZ"
d = datetime.datetime.strptime(timestamp, _format)
now = datetime.datetime.now()
tcreacio = now-d
screacio = tcreacio.total_seconds()
if screacio>21600:
text = page.text
creador = page.getVersionHistory(reverseOrder=True, total=1)[0][2]
title = page.title(asLink=True)
bot.output(u"Processant %s" % title)
if not re_pag.search(text):
bot.output(u"No té referències")
disc = pywikibot.Page(site, u"Usuari discussió:" + creador)
disctext = disc.text
#Ja l'hem avisat?
enc = u"Recordatori de referències per %s" % title
if re.search(ur"%s" % enc, disc.text):
bot.output(u"Ja he fet %s. Me la salto!" % title)
#Deixa el missatge si no l'ha fet
confirm=bot.input(u"Deixo el missatge a " + creador + "?")
if confirm.lower() in ("","s","si","y"):
msg = u"{{subst:Usuari:GerardBot/Plantilla:Avís falten referències|%s|~~~~|%s}}" % (title,creador)
disc.text = disc.text + msg
disc.save(u"Bot avisant a l'usuari per falta se referències. Siusplau aviseu d'un error a la seva pàgina de discussió")
else:
bot.output(u"No deixo el missatge")
else:
bot.output(u"Té referències")
continue
else:
bot.output(u"Fa %r segons que s'ha creat l'article, m'espero a que passi més temps per avisar" % screacio)
continue
except (BaseException), err:
if KeyboardInterrupt():
bot.output(u" M'has parat! %r" % err)
else:
bot.output(u"Alguna cosa ha fallat %r" % err)
finally:
bot.output(u"Hem acabat!")
if __name__ == "__main__":
preg = True
re_pag = re.compile(ur"(<ref|Referències|{{(?:FVA|[Ff]alta verificar admissibilitat|[Ff]alten referències|FR|[Bb]iografies|[Dd]esambig[Cc]urta|[Aa]crònim|[Oo]nomàstica)|[Dd]esambiguació|#REDIRECT)")
while preg:
n = bot.input(u"Quantes pàgines farem?")
try:
n = int(n)
main(n)
except:
bot.output(u"Com no posis un nombre estarem aquí fins demà")
resp = bot.input("Seguim?\n[S/n]")
if resp.lower() in ("","s","si","y"):
preg = True
else:
preg = False
bot.output(u"Ara sí que hem acabat")