Utilisateur:Botomatik/Scripts/navig-mensuel.py

Script écrit en Python utilisant le cadriciel Pywikibot servant à initialiser les pages de discussion mensuelles du projet.

Ce code est exécuté chaque début de mois.

#! /usr/bin/python
# -*- coding: utf-8 -*-

import datetime
import pywikibot

test = True # pour tester le script (sans sauvegarder le résultat)

def main():
	# Configuration
	modeles = {
		# 'NavigPM': u'Utilisateur:Botomatik/', # à des fins de test sur une sous-page personnelle
		'NavigQM': u'Wiktionnaire:Questions sur les mots/',
		'NavigQT': u'Wiktionnaire:Questions techniques/',
		'NavigPM': u'Wiktionnaire:Proposer un mot/',
		'NavigPPS': u'Wiktionnaire:Pages proposées à la suppression/',
		'NavigW': u'Wiktionnaire:Wikidémie/',
		'NavigDA': u'Wiktionnaire:Demandes aux administrateurs/',
	}
	resume = u'Initialisation de la page'

	mois = [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']
	date = datetime.datetime.utcnow()
	month = date.date().month
	month_name = mois[month-1]
	year = date.date().year

	for modele in modeles:
		page = pywikibot.Page(pywikibot.getSite(), modeles[modele] + u'%s %s' % (month_name, year))
		if not page.exists():
			contenu = u'<noinclude>{{%s|%s|%s}}</noinclude>' % (modele, year, month)
                        if not test:
                            page.put(contenu, resume)
                        else:
                            pywikibot.output(page.title() + u' : ' + contenu)

if __name__ == '__main__':
	try:
		main()
	finally:
		pywikibot.stopme()