Commit 615dcd7d authored by Linedwell's avatar Linedwell

compression des chaines de caractères complexes

parent 08b42238
......@@ -35,16 +35,16 @@ def admissibilite(pagesList):
remList = list(set(backupList) - set(actualList))
for add in addList:
log += u"* {{Vert|'''+'''}} ajout du bandeau sur [[" + add + "]]\n"
log += u"* {{Vert|'''+'''}} ajout du bandeau sur [[%s]]\n" %(add)
nbAdd += 1
for rem in remList:
log += u"* {{Rouge|'''-'''}} retrait du bandeau sur [[" + rem + "]]\n"
log += u"* {{Rouge|'''-'''}} retrait du bandeau sur [[%s]]\n" %(rem)
nbRem += 1
saveBackupFile(actualList)
summary = u"Mise à jour (+" + str(nbAdd) + "; -" + str(nbRem) + "; =" + str(total) + ")"
summary = u"Mise à jour (+%s; -%s; =%s)" %s(nbAdd,nbRem,total)
return log, summary, total
......
......@@ -19,7 +19,7 @@ page = pywikibot.Page(site, u"Projet:Maintenance/Suivi d'admissibilité/graphe")
# Met à jour le graphe de la page passée en paramètre avec la nouvelle valeur
def update(val):
last_values = file("_grapher.log","r").readlines()[-14:]
last_values = file('_grapher.log','r').readlines()[-14:]
last_values = [int(el.strip()) for el in last_values]
last_values.append(val)
......@@ -94,7 +94,7 @@ def update(val):
page.text = template
page.save(summary)
gr_log = open("_grapher.log","w")
gr_log = open('_grapher.log','w')
for val in last_values:
gr_log.write(str(val) + '\n')
gr_log.close()
......
......@@ -19,16 +19,16 @@ import pywikibot
#Variables globales
site = pywikibot.getSite()
month = [u'',u'Janvier',u'Février',u'Mars',u'Avril',u'Mai',u'Juin',u'Juillet',u'Août',u'Septembre',u'Octobre',u'Novembre',u'Décembre']
month = [u'',u"Janvier",u"Février",u"Mars",u"Avril",u"Mai",u"Juin",u"Juillet",u"Août",u"Septembre",u"Octobre",u"Novembre",u"Décembre"]
summaryHeader = {
'wikipedia' : u'[[WP:Bot|Robot]] : ',
'vikidia' : u'[[VD:Robot|Robot]] : ',
"wikipedia" : u"[[WP:Bot|Robot]] : ",
"vikidia" : u"[[VD:Robot|Robot]] : ",
}
#Met à jour la page de journalisation du bot
def editLog(site,log,page='Utilisateur:LinedBot/Log',summary='',ar=True,cl=False):
def editLog(site,log,page="Utilisateur:LinedBot/Log",summary='',ar=True,cl=False):
if log != '':
family = site.family.name
year = time.strftime('%Y')
......@@ -43,12 +43,12 @@ def editLog(site,log,page='Utilisateur:LinedBot/Log',summary='',ar=True,cl=False
if cl > 0:
pageLogTemp = clean(pageLogTemp,cl)
if pageLogTemp.find(u'== ' + month[int(time.strftime('%m'))] + ' ==') == -1: pageLogTemp += u'\n\n== ' + month[int(time.strftime('%m'))] + ' =='
if pageLogTemp.find(u'=== ' + time.strftime('%Y-%m-%d') + ' ===') != -1: pageLogTemp += '\n' + log
if pageLogTemp.find(u"== " + month[int(time.strftime('%m'))] + " ==") == -1: pageLogTemp += u"\n\n== " + month[int(time.strftime("%m"))] + " =="
if pageLogTemp.find(u"=== " + time.strftime('%Y-%m-%d') + " ===") != -1: pageLogTemp += '\n' + log
else :
pageLogTemp += '\n' + u'=== ' + time.strftime('%Y-%m-%d') + ' ===\n' + log
pageLogTemp += '\n' + u"=== " + time.strftime('%Y-%m-%d') + " ===\n" + log
if summary == '':
summary = summaryHeader[family] + u"Mise à jour du journal (OK:" + str(nbrModif) + ", KO:" + str(nbrTotal - nbrModif) +")"
summary = summaryHeader[family] + u"Mise à jour du journal (OK:%s, KO:%s)" %(nbrModif,(nbrTotal - nbrModif))
else:
summary= summaryHeader[family] + summary
pageLog.text = pageLogTemp
......@@ -57,7 +57,7 @@ def editLog(site,log,page='Utilisateur:LinedBot/Log',summary='',ar=True,cl=False
#Archive la page de journalisation du bot et réinitialise la page pour la nouvelle année
def archive(site,pageLog,pageArchive):
family = site.family.name
pageLog.move(pageArchive.title(),u'Archivage annuel') #Déplacement de pageLog vers pageArchive
pageLog.move(pageArchive.title(),u"Archivage annuel") #Déplacement de pageLog vers pageArchive
pageArchive = pywikibot.Page(site,pageArchive.title())
#Retrait du modèle de mise à jour de pageArchive
......@@ -67,17 +67,17 @@ def archive(site,pageLog,pageArchive):
pageArchive.text = pageArchiveTemp
pageArchive.save(summary,force=True)
pageLogTemp = u'__NOINDEX__\n{{Mise à jour bot|Linedwell}}\n{{Sommaire|niveau=1}}\n' #On réinsère le modèle de màj sur pageLog
pageLogTemp = u"__NOINDEX__\n{{Mise à jour bot|Linedwell}}\n{{Sommaire|niveau=1}}\n" #On réinsère le modèle de màj sur pageLog
return pageLogTemp
#Supprime les sections plus vieilles que X jours
def clean(pageTemp, days=30):
limit = datetime.utcnow() - timedelta(days=days)
date = limit.strftime("%Y-%m-%d")
index = pageTemp.find(u'=== ' + date + ' ===')
date = limit.strftime('%Y-%m-%d')
index = pageTemp.find(u"=== " + date + " ===")
if index != -1:
pageHeader = u'__NOINDEX__\n{{Mise à jour bot|Linedwell}}\n{{Palette|Admissibilité à vérifier}}\n{{Sommaire|niveau=2}}\n{{/graphe}}\n\n'
monthSection = u'== ' + month[int(limit.strftime('%m'))] + ' ==\n'
pageHeader = u"__NOINDEX__\n{{Mise à jour bot|Linedwell}}\n{{Palette|Admissibilité à vérifier}}\n{{Sommaire|niveau=2}}\n{{/graphe}}\n\n"
monthSection = u"== %s ==\n" %(month[int(limit.strftime('%m'))])
pageTemp = pageHeader + monthSection + pageTemp[index:]
return pageTemp
......
......@@ -20,40 +20,40 @@ from pywikibot import pagegenerators
#Variables globales
site = pywikibot.getSite('fr','wikipedia')
delimiterBegin = u'= Propositions =\n'
delimiterEnd = u'= <small>Avertissements</small> =\n'
delimiterBegin = u"= Propositions =\n"
delimiterEnd = u"= <small>Avertissements</small> =\n"
delimiterBeginRegex = u'=\s*Propositions\s*=\n'
delimiterEndRegex = u'=\s*<small>Avertissements</small>\s*=\n'
delimiterBeginRegex = u"=\s*Propositions\s*=\n"
delimiterEndRegex = u"=\s*<small>Avertissements</small>\s*=\n"
#Créé la section PàS du lendemain
def pasNewSection(pageTemp):
global summary
month = [u'',u'janvier',u'février',u'mars',u'avril',u'mai',u'juin',u'juillet',u'août',u'septembre',u'octobre',u'novembre',u'décembre']
month = [u"",u"janvier",u"février",u"mars",u"avril",u"mai",u"juin",u"juillet",u"août",u"septembre",u"octobre",u"novembre",u"décembre"]
pad = 1 #nombre de jours de decalage que l'on souhaite
dateD = time.localtime(time.time() + pad * 24 * 3600)
year = int(dateD.tm_year)
monthNum = int(dateD.tm_mon)
dayNum = int(dateD.tm_mday)
if pageTemp.find(u'== ' + str(dayNum) + ' ' + month[monthNum] + ' ==') == -1: #La section de dans 'pad' n'existe pas encore
if pageTemp.find(u"== " + str(dayNum) + " " + month[monthNum] + " ==") == -1: #La section de dans 'pad' n'existe pas encore
pageTempBegin, pageTempEnd = re.split(delimiterEndRegex,pageTemp)
pageTempEnd = delimiterEnd + pageTempEnd
newSection = u'== ' + str(dayNum) + ' ' + month[monthNum] + ' ==\n'
newSection += u'{{En-tête section PàS|' + str(dayNum)+ '|' + month[monthNum] + '|' + str(year) + '}}\n\n'
newSection += u'{{Boîte déroulante/début|titre=Requêtes traitées}}\n{{Boîte déroulante/fin}}\n\n'
newSection = u"== " + str(dayNum) + " " + month[monthNum] + " ==\n"
newSection += u"{{En-tête section PàS|" + str(dayNum)+ "|" + month[monthNum] + "|" + str(year) + "}}\n\n"
newSection += u"{{Boîte déroulante/début|titre=Requêtes traitées}}\n{{Boîte déroulante/fin}}\n\n"
pageTemp = pageTempBegin + newSection + pageTempEnd
if summary != u'':
summary += u" ; initialisation de la section PàS du " + str(dayNum) + ' ' + month[monthNum]
summary += u" ; initialisation de la section PàS du %s %s" %(dayNum,month[monthNum])
else:
summary += u"initialisation de la section PàS du " + str(dayNum) + ' ' + month[monthNum]
summary += u"initialisation de la section PàS du %s %s" %(dayNum,month[monthNum])
else:
print u"Aucune modification, la section du " + str(dayNum) + " " + month[monthNum] + " existe."
print u"Aucune modification, la section du %s %s existe." %(daynum,month[monthNum])
return pageTemp
......@@ -84,7 +84,7 @@ def pasRemoveSection(pageTemp):
pageTempBody += s
pageTemp = pageTempBegin + pageTempBody + pageTempEnd
summary = u"archivage de " + str(count) + " section(s)"
summary = u"archivage de %s section(s)" %(count)
return pageTemp
......@@ -104,7 +104,7 @@ def main(argv):
archiveOnly = True
summary = u''
target = u'Wikipédia:Pages à supprimer'
target = u"Wikipédia:Pages à supprimer"
page = pywikibot.Page(site,target)
try:
......
......@@ -72,7 +72,7 @@ def removeTemplate(pagesList,catname,delay,checkTalk=False):
templateResult = templateResult.replace('\r\n','') #Retire les sauts de ligne contenus dans le modèle avant de l'ajouter au résumé
templateResult = templateResult.replace('\n','') #Correspond au second type de retour à la ligne
summary = u"Retrait du bandeau " + templateResult + u" (non modifié depuis " + str(duration.days) + " jours)."
summary = u"Retrait du bandeau %s (non modifié depuis %s jours)." %(templateResult,duration.days)
c = callback.Callback()
......@@ -80,16 +80,16 @@ def removeTemplate(pagesList,catname,delay,checkTalk=False):
page.save("[[WP:Bot|Robot]] : " + summary, callback=c)
break
else:
summary = u'Aucun modèle trouvé correspondant au motif: ' + str(motif)
summary = u"Aucun modèle trouvé correspondant au motif: " + str(motif)
if c.error == None:
nbrModif += 1
status = '{{Y&}}'
status = "{{Y&}}"
else:
status = '{{N&}}'
log += u'*' + status + ' [[' + page.title() + ']] : ' + summary.replace('{{','{{m|') + '\n'
status = "{{N&}}"
log += u"*%s [[%s]] : %s\n" %(status,page.title(),summary.replace('{{','{{m|'))
else:
print u'Skipping [[' + page.title() + ']], page in ignore list.'
print u"Skipping [[" + page.title() + "]], page in ignore list."
return log
......@@ -97,25 +97,25 @@ def removeTemplate(pagesList,catname,delay,checkTalk=False):
#Retourne le motif correspondant au(x) modèle(s) catégorisant(s) dans la catégorie donnée
def motifFinder(catname):
motif = []
if catname == u'Événement récent':
if catname == u"Événement récent":
motif = [u'(Section )?[Éé]v[éè]nements?[_ ]récents?']
elif catname == u'Mort récente':
elif catname == u"Mort récente":
motif = [u'Mort[_ ]récente?', u'Décès[_ ]récent']
elif catname == u'Élection récente':
elif catname == u"Élection récente":
motif = [u'[Éé]lection[_ ]récente']
elif catname == u'Compétition sportive récente':
elif catname == u"Compétition sportive récente":
motif = [u'Compétition[_ ]sportive[_ ]récente', u'[Éé]v[éè]nement[_ ]sportif[_ ]récent']
elif catname == u'Wikipédia:Triple révocation':
elif catname == u"Wikipédia:Triple révocation":
motif = [u'Règle[_ ]des[_ ]3[_ ]révocations', u'Règle[_ ]des[_ ]3[_ ]reverts', u'Règle[_ ]des[_ ]3[_ ]réverts', u'Règle[_ ]des[_ ]trois[_ ]reverts', u'Règle[_ ]des[_ ]trois[_ ]réverts', u'R3R', u'3RR']
elif catname == u'Article en travaux':
elif catname == u"Article en travaux":
motif = [u'(En[_ ])?travaux', u'En[_ ]construction', u'Pas[_ ]fini', u'Travail[_ ]de[_ ]groupe']
elif catname == u'Article en cours':
elif catname == u"Article en cours":
motif = [u'En[_ ]cours', u'Plusieurs[_ ]en[_ ]cours']
return motif
......@@ -161,7 +161,7 @@ def main():
logger.setValues(nbrTotal,nbrModif)
logger.editLog(site,log)
print str(nbrModif) + u' (of ' + str(nbrTotal) + ') pages were modified in '+ str(round(timeEnd - timeStart,2)) + 's.'
print u"%s (of %s) pages were modified in %s s." %(nbrModif,nbrTotal,round(timeEnd-timeStart,2))
if __name__ == "__main__":
......
......@@ -194,7 +194,7 @@ def main():
timeEnd = time.time()
logger.setValues(nbrTotal,nbrModif)
logger.editLog(site,log)
print str(nbrModif) + u' (of ' + str(nbrTotal) + ') pages were modified in '+ str(round(timeEnd - timeStart,2)) + 's.'
print u"%s (of %s) pages were modified in %s s." %(nbrModif,nbrTotal,round(timeEnd-timeStart,2))
if __name__ == "__main__":
......
......@@ -37,8 +37,8 @@ def getSubscribers(group,hs):
# Retourne le bandeau de notification adapté
def getBanner(group, link):
dict = {
'article' : "Utilisateur:Orikrin1998/Blog/Annonce",
'sondage' : "Utilisateur:Orikrin1998/Blog/Sondage",
"article" : "Utilisateur:Orikrin1998/Blog/Annonce",
"sondage" : "Utilisateur:Orikrin1998/Blog/Sondage",
}
template = "{{" + dict[group] + "|lien=" + link + "|date=~~~~~}}"
......@@ -64,7 +64,7 @@ def main():
if len(args) == 2:
if args[0] in ("article", "sondage"):
if args[0] in ('article', 'sondage'):
type = args[0]
else:
print "type incorrect : attendu 'blog' ou 'sondage'"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment