Usuari:GerardBot/codi

#!/usr/bin/env python# -*- coding: utf-8 -*-import sys,reimport pywikibotfrom pywikibot import botfrom pywikibot import pagegenerators as pgimport datetimesite = pywikibot.getSite()def main(n):#llistat de pagines novesgen = 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-dscreacio = tcreacio.total_seconds()if screacio>21600:text = page.textcreador = 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" % titleif 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 fetconfirm=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 + msgdisc.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")continueelse:bot.output(u"Fa %r segons que s'ha creat l'article, m'espero a que passi més temps per avisar" % screacio)continueexcept (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 = Truere_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 = Trueelse:preg = Falsebot.output(u"Ara sí que hem acabat")