Utilisateur:JackBot

Une page de Wikiversité.
Aller à : Navigation, rechercher
Bot
Bot
5 000+

Sur les autres projets Wikimédia :

Ce robot crée les pages des bistros de la semaine, corrige les doubles redirections quotidiennement, synchronise les paramètres des {{chapitre}} depuis les {{leçon}}, et s'occupe de Wikiversité:Requêtes aux bots.

[modifier] Python.svg Code Crystal Clear mimetype source py.png

#!/usr/bin/env python
# coding: utf-8
# Ce script formate les pages de la Wikiversité :
# 1) Il ajoute les clés de tri pour palier au classement des catégories Mediawiki.
# 2) Il complète les modèles {{Chapitre}} à partir des {{Leçon}}.
# Reste à faire :
# 3) Remplir les {{Département}} à remplir à partir des {{Leçon}}.
# 4) Ajouter ou compléter les {{Bas de page}}
 
# Importation des modules
import catlib, pagegenerators, os, codecs, urllib, re
from wikipedia import *
 
# Déclaration
language = "fr"
family = "wikiversity"
mynick = "JackBot"
site = getSite(language,family)
summary = u'[[Aide:Syntaxe|Autoformatage]]'
sizeT = 3
sizeP = 12
 
temp = range(1, sizeT)
Ttemp = range(1, sizeT)
temp[1] = u'numero'
Ttemp[1] = u'numéro'
 
# Modèle:Chapitre
param = range(1, sizeP)
param[1] = u'titre '
param[2] = u'idfaculté'
param[3] = u' leçon'
param[4] = u'page'
param[5] = u'numero'
param[6] = u'précédent'
param[7] = u'suivant'
param[8] = u'align'
param[9] = u'niveau'
param[10] = u'titre_leçon'
 
# Modification du wiki
def modification(PageHS):
        PageEnd = "" # On sauvegarde la partie traitée d'une page provisoire dans une page finale jusqu'à disparition de la première
        page = Page(site,PageHS)
        if page.exists():
                if page.namespace() != 0 and page.namespace() != 106 and page.namespace() != 108 and page.title() != u'Utilisateur:JackBot/test' and page.title() != u'Utilisateur:JackBot/test/test2': 
                        return
                else:
                        try:
                                PageTemp = page.get()
                        except wikipedia.NoPage:
                                print "NoPage"
                                return
                        except wikipedia.IsRedirectPage:
                                print "Redirect page"
                                return
                        except wikipedia.LockedPage:
                                print "Locked/protected page"
                                return
        else:
                print u'Page inexistante'
                return
 
        # Clés de tri
        if PageTemp.find(u'{{clé de tri') == -1:
                PageTitre = page.title()
                if page.namespace() == 0 or page.title() != u'Utilisateur:JackBot/test' or page.title() != u'Utilisateur:JackBot/test/test2':
                        if PageTitre[len(PageTitre)-len(u'/Présentation de la leçon'):len(PageTitre)] == u'/Présentation de la leçon':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Présentation de la leçon')]
                        elif PageTitre[len(PageTitre)-len(u'/Objectifs'):len(PageTitre)] == u'/Objectifs':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Objectifs')]
                        elif PageTitre[len(PageTitre)-len(u'/Prérequis conseillés'):len(PageTitre)] == u'/Prérequis conseillés':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Prérequis conseillés')]
                        elif PageTitre[len(PageTitre)-len(u'/Référents'):len(PageTitre)] == u'/Référents':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Référents')]            
                elif page.namespace() == 106 or page.title() != u'Utilisateur:JackBot/test' or page.title() != u'Utilisateur:JackBot/test/test2':
                        PageTitre = PageTitre[len(u'Faculté:'):len(PageTitre)]
                        if PageTitre[len(PageTitre)-len(u'/Présentation de la faculté'):len(PageTitre)] == u'/Présentation de la faculté':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Présentation de la faculté')]
                        elif PageTitre[len(PageTitre)-len(u'/Départements'):len(PageTitre)] == u'/Départements':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Départements')]
                        elif PageTitre[len(PageTitre)-len(u'/Transverse'):len(PageTitre)] == u'/Transverse':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Transverse')]
                        elif PageTitre[len(PageTitre)-len(u'/Voir aussi'):len(PageTitre)] == u'/Voir aussi':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Voir aussi')]                
                elif page.namespace() == 108 or page.title() != u'Utilisateur:JackBot/test' or page.title() != u'Utilisateur:JackBot/test/test2':
                        PageTitre = PageTitre[len(u'Département:'):len(PageTitre)]
                        if PageTitre[len(PageTitre)-len(u'/Présentation du département'):len(PageTitre)] == u'/Présentation du département':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Présentation du département')]
                        elif PageTitre[len(PageTitre)-len(u'/Leçons par thèmes'):len(PageTitre)] == u'/Leçons par thèmes':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Leçons par thèmes')]
                        elif PageTitre[len(PageTitre)-len(u'/Leçons par niveaux'):len(PageTitre)] == u'/Leçons par niveaux':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Leçons par niveaux')]
                        elif PageTitre[len(PageTitre)-len(u'/Contributeurs'):len(PageTitre)] == u'/Contributeurs':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Contributeurs')]
                        elif PageTitre[len(PageTitre)-len(u'/Voir aussi'):len(PageTitre)] == u'/Voir aussi':
                                PageTitre = PageTitre[0:len(PageTitre)-len(u'/Voir aussi')]
                PageT = ""
                key = "false"
                for lettre in range(0,len(PageTitre)):
                        # Latin
                        if PageTitre[lettre:lettre+1] == u'á' or PageTitre[lettre:lettre+1] == u'à' or PageTitre[lettre:lettre+1] == u'â' or PageTitre[lettre:lettre+1] == u'ä' or PageTitre[lettre:lettre+1] == u'Á' or PageTitre[lettre:lettre+1] == u'À' or PageTitre[lettre:lettre+1] == u'Â' or PageTitre[lettre:lettre+1] == u'Ä':
                                PageT = PageT + "a"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'é' or PageTitre[lettre:lettre+1] == u'è' or PageTitre[lettre:lettre+1] == u'ê' or PageTitre[lettre:lettre+1] == u'ë' or PageTitre[lettre:lettre+1] == u'É' or PageTitre[lettre:lettre+1] == u'È' or PageTitre[lettre:lettre+1] == u'Ê' or PageTitre[lettre:lettre+1] == u'Ë' or PageTitre[lettre:lettre+1] == u'ě' or PageTitre[lettre:lettre+1] == u'Ě':
                                PageT = PageT + "e"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'í' or PageTitre[lettre:lettre+1] == u'ì' or PageTitre[lettre:lettre+1] == u'î' or PageTitre[lettre:lettre+1] == u'ï' or PageTitre[lettre:lettre+1] == u'Í' or PageTitre[lettre:lettre+1] == u'Ì' or PageTitre[lettre:lettre+1] == u'Î' or PageTitre[lettre:lettre+1] == u'Ï':
                                PageT = PageT + "i"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'ó'  or PageTitre[lettre:lettre+1] == u'ò' or PageTitre[lettre:lettre+1] == u'ô' or PageTitre[lettre:lettre+1] == u'ö' or PageTitre[lettre:lettre+1] == u'Ó'  or PageTitre[lettre:lettre+1] == u'Ò' or PageTitre[lettre:lettre+1] == u'Ô' or PageTitre[lettre:lettre+1] == u'Ö':
                                PageT = PageT + "o"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'ú' or PageTitre[lettre:lettre+1] == u'ù' or PageTitre[lettre:lettre+1] == u'û' or PageTitre[lettre:lettre+1] == u'ü' or PageTitre[lettre:lettre+1] == u'Ú' or PageTitre[lettre:lettre+1] == u'Ù' or PageTitre[lettre:lettre+1] == u'Û' or PageTitre[lettre:lettre+1] == u'Ü':
                                PageT = PageT + "u"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'ç' or PageTitre[lettre:lettre+1] == u'Ç':
                                PageT = PageT + "c"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'š' or PageTitre[lettre:lettre+1] == u'Š':
                                PageT = PageT + "c"
                                key = "yes"             
                        elif PageTitre[lettre:lettre+1] == u'æ' or PageTitre[lettre:lettre+1] == u'Æ':
                                PageT = PageT + "ae"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'œ' or PageTitre[lettre:lettre+1] == u'Œ':
                                PageT = PageT + "oe"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'ñ' or PageTitre[lettre:lettre+1] == u'Ñ':
                                PageT = PageT + "n"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'ÿ' or PageTitre[lettre:lettre+1] == u'Ÿ':
                                PageT = PageT + "y"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'-':
                                PageT = PageT + " "
                                key = "yes"'''
                        elif PageTitre[lettre:lettre+1] == u'/':
                                PageT = PageT + " "
                                key = "yes"'''
                        elif PageTitre[lettre:lettre+1] == u'\\':
                                PageT = PageT + ""
                                key = "yes"
                        # Grec
                        elif PageTitre[lettre:lettre+1] == u'α' or PageTitre[lettre:lettre+1] == u'Ἀ' or PageTitre[lettre:lettre+1] == u'ἀ' or PageTitre[lettre:lettre+1] == u'Ἁ' or PageTitre[lettre:lettre+1] == u'ἁ' or PageTitre[lettre:lettre+1] == u'Ἂ' or PageTitre[lettre:lettre+1] == u'ἂ' or PageTitre[lettre:lettre+1] == u'Ἃ' or PageTitre[lettre:lettre+1] == u'ἃ' or PageTitre[lettre:lettre+1] == u'Ἄ' or PageTitre[lettre:lettre+1] == u'ἄ' or PageTitre[lettre:lettre+1] == u'Ἅ' or PageTitre[lettre:lettre+1] == u'ἅ' or PageTitre[lettre:lettre+1] == u'Ἆ' or PageTitre[lettre:lettre+1] == u'ἆ' or PageTitre[lettre:lettre+1] == u'Ἇ' or PageTitre[lettre:lettre+1] == u'ἇ' or PageTitre[lettre:lettre+1] == u'Ὰ' or PageTitre[lettre:lettre+1] == u'ὰ' or PageTitre[lettre:lettre+1] == u'Ά' or PageTitre[lettre:lettre+1] == u'ά' or PageTitre[lettre:lettre+1] == u'ᾈ' or PageTitre[lettre:lettre+1] == u'ᾀ' or PageTitre[lettre:lettre+1] == u'ᾉ' or PageTitre[lettre:lettre+1] == u'ᾁ' or PageTitre[lettre:lettre+1] == u'ᾊ' or PageTitre[lettre:lettre+1] == u'ᾂ' or PageTitre[lettre:lettre+1] == u'ᾋ' or PageTitre[lettre:lettre+1] == u'ᾃ' or PageTitre[lettre:lettre+1] == u'ᾌ' or PageTitre[lettre:lettre+1] == u'ᾄ' or PageTitre[lettre:lettre+1] == u'ᾍ' or PageTitre[lettre:lettre+1] == u'ᾅ' or PageTitre[lettre:lettre+1] == u'ᾎ' or PageTitre[lettre:lettre+1] == u'ᾆ' or PageTitre[lettre:lettre+1] == u'ᾏ' or PageTitre[lettre:lettre+1] == u'ᾇ' or PageTitre[lettre:lettre+1] == u'Ᾰ' or PageTitre[lettre:lettre+1] == u'ᾰ' or PageTitre[lettre:lettre+1] == u'Ᾱ' or PageTitre[lettre:lettre+1] == u'ᾱ' or PageTitre[lettre:lettre+1] == u'ᾼ' or PageTitre[lettre:lettre+1] == u'ᾳ' or PageTitre[lettre:lettre+1] == u'Ὰ' or PageTitre[lettre:lettre+1] == u'ᾲ' or PageTitre[lettre:lettre+1] == u'Ά' or PageTitre[lettre:lettre+1] == u'ᾴ' or PageTitre[lettre:lettre+1] == u'Ȃ' or PageTitre[lettre:lettre+1] == u'ᾶ' or PageTitre[lettre:lettre+1] == u'Ȃ' or PageTitre[lettre:lettre+1] == u'ᾷ':
                                PageT = PageT + "α"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'Ἐ' or PageTitre[lettre:lettre+1] == u'ἐ' or PageTitre[lettre:lettre+1] == u'Ἑ' or PageTitre[lettre:lettre+1] == u'ἑ' or PageTitre[lettre:lettre+1] == u'Ἒ' or PageTitre[lettre:lettre+1] == u'ἒ' or PageTitre[lettre:lettre+1] == u'Ἓ' or PageTitre[lettre:lettre+1] == u'ἓ' or PageTitre[lettre:lettre+1] == u'Ἔ' or PageTitre[lettre:lettre+1] == u'ἔ' or PageTitre[lettre:lettre+1] == u'Ἕ' or PageTitre[lettre:lettre+1] == u'ἕ' or PageTitre[lettre:lettre+1] == u'Ὲ' or PageTitre[lettre:lettre+1] == u'ὲ' or PageTitre[lettre:lettre+1] == u'Έ' or PageTitre[lettre:lettre+1] == u'έ':
                                PageT = PageT + "ε"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'Ἠ' or PageTitre[lettre:lettre+1] == u'ἠ' or PageTitre[lettre:lettre+1] == u'Ἡ' or PageTitre[lettre:lettre+1] == u'ἡ' or PageTitre[lettre:lettre+1] == u'Ἢ' or PageTitre[lettre:lettre+1] == u'ἢ' or PageTitre[lettre:lettre+1] == u'Ἣ' or PageTitre[lettre:lettre+1] == u'ἣ' or PageTitre[lettre:lettre+1] == u'Ἤ' or PageTitre[lettre:lettre+1] == u'ἤ' or PageTitre[lettre:lettre+1] == u'Ἥ' or PageTitre[lettre:lettre+1] == u'ἥ' or PageTitre[lettre:lettre+1] == u'Ἦ' or PageTitre[lettre:lettre+1] == u'ἦ' or PageTitre[lettre:lettre+1] == u'Ἧ' or PageTitre[lettre:lettre+1] == u'ἧ' or PageTitre[lettre:lettre+1] == u'ᾘ' or PageTitre[lettre:lettre+1] == u'ᾐ' or PageTitre[lettre:lettre+1] == u'ᾙ' or PageTitre[lettre:lettre+1] == u'ᾑ' or PageTitre[lettre:lettre+1] == u'ᾚ' or PageTitre[lettre:lettre+1] == u'ᾒ' or PageTitre[lettre:lettre+1] == u'ᾛ' or PageTitre[lettre:lettre+1] == u'ᾓ' or PageTitre[lettre:lettre+1] == u'ᾜ' or PageTitre[lettre:lettre+1] == u'ᾔ' or PageTitre[lettre:lettre+1] == u'ᾝ' or PageTitre[lettre:lettre+1] == u'ᾕ' or PageTitre[lettre:lettre+1] == u'ᾞ' or PageTitre[lettre:lettre+1] == u'ᾖ' or PageTitre[lettre:lettre+1] == u'ᾟ' or PageTitre[lettre:lettre+1] == u'ᾗ' or PageTitre[lettre:lettre+1] == u'Ὴ' or PageTitre[lettre:lettre+1] == u'ὴ' or PageTitre[lettre:lettre+1] == u'Ή' or PageTitre[lettre:lettre+1] == u'ή' or PageTitre[lettre:lettre+1] == u'ῌ' or PageTitre[lettre:lettre+1] == u'ῂ' or PageTitre[lettre:lettre+1] == u'Η' or PageTitre[lettre:lettre+1] == u'ῃ' or PageTitre[lettre:lettre+1] == u'Ή' or PageTitre[lettre:lettre+1] == u'ῄ' or PageTitre[lettre:lettre+1] == u'ῌ' or PageTitre[lettre:lettre+1] == u'ῆ' or PageTitre[lettre:lettre+1] == u'ῌ' or PageTitre[lettre:lettre+1] == u'ῇ':
                                PageT = PageT + "η"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'Ὶ' or PageTitre[lettre:lettre+1] == u'ὶ' or PageTitre[lettre:lettre+1] == u'Ί' or PageTitre[lettre:lettre+1] == u'ί' or PageTitre[lettre:lettre+1] == u'Ί' or PageTitre[lettre:lettre+1] == u'ί' or PageTitre[lettre:lettre+1] == u'Ῐ' or PageTitre[lettre:lettre+1] == u'ῐ' or PageTitre[lettre:lettre+1] == u'Ῑ' or PageTitre[lettre:lettre+1] == u'ῑ' or PageTitre[lettre:lettre+1] == u'Ἰ' or PageTitre[lettre:lettre+1] == u'ἰ' or PageTitre[lettre:lettre+1] == u'Ἱ' or PageTitre[lettre:lettre+1] == u'ἱ' or PageTitre[lettre:lettre+1] == u'Ἲ' or PageTitre[lettre:lettre+1] == u'ἲ' or PageTitre[lettre:lettre+1] == u'Ἳ' or PageTitre[lettre:lettre+1] == u'ἳ' or PageTitre[lettre:lettre+1] == u'Ἴ' or PageTitre[lettre:lettre+1] == u'ἴ' or PageTitre[lettre:lettre+1] == u'Ἵ' or PageTitre[lettre:lettre+1] == u'ἵ' or PageTitre[lettre:lettre+1] == u'Ἶ' or PageTitre[lettre:lettre+1] == u'ἶ' or PageTitre[lettre:lettre+1] == u'Ἷ' or PageTitre[lettre:lettre+1] == u'ἷ' or PageTitre[lettre:lettre+1] == u'ΐ' or PageTitre[lettre:lettre+1] == u'ῖ' or PageTitre[lettre:lettre+1] == u'ῗ' or PageTitre[lettre:lettre+1] == u'ῒ':
                                PageT = PageT + "ι" 
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'Ὀ' or PageTitre[lettre:lettre+1] == u'ὀ' or PageTitre[lettre:lettre+1] == u'Ὁ' or PageTitre[lettre:lettre+1] == u'ὁ' or PageTitre[lettre:lettre+1] == u'Ὂ' or PageTitre[lettre:lettre+1] == u'ὂ' or PageTitre[lettre:lettre+1] == u'Ὃ' or PageTitre[lettre:lettre+1] == u'ὃ' or PageTitre[lettre:lettre+1] == u'Ὄ' or PageTitre[lettre:lettre+1] == u'ὄ' or PageTitre[lettre:lettre+1] == u'Ὅ' or PageTitre[lettre:lettre+1] == u'ὅ' or PageTitre[lettre:lettre+1] == u'Ὸ' or PageTitre[lettre:lettre+1] == u'ὸ' or PageTitre[lettre:lettre+1] == u'Ό' or PageTitre[lettre:lettre+1] == u'ό':
                                PageT = PageT + "ο"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'Ὠ' or PageTitre[lettre:lettre+1] == u'ὠ' or PageTitre[lettre:lettre+1] == u'Ὡ' or PageTitre[lettre:lettre+1] == u'ὡ' or PageTitre[lettre:lettre+1] == u'Ὢ' or PageTitre[lettre:lettre+1] == u'ὢ' or PageTitre[lettre:lettre+1] == u'Ὣ' or PageTitre[lettre:lettre+1] == u'ὣ' or PageTitre[lettre:lettre+1] == u'Ὤ' or PageTitre[lettre:lettre+1] == u'ὤ' or PageTitre[lettre:lettre+1] == u'Ὥ' or PageTitre[lettre:lettre+1] == u'ὥ' or PageTitre[lettre:lettre+1] == u'Ὦ' or PageTitre[lettre:lettre+1] == u'ὦ' or PageTitre[lettre:lettre+1] == u'Ὧ' or PageTitre[lettre:lettre+1] == u'ὧ' or PageTitre[lettre:lettre+1] == u'Ὼ' or PageTitre[lettre:lettre+1] == u'ὼ' or PageTitre[lettre:lettre+1] == u'Ώ' or PageTitre[lettre:lettre+1] == u'ώ' or PageTitre[lettre:lettre+1] == u'ᾨ' or PageTitre[lettre:lettre+1] == u'ᾠ' or PageTitre[lettre:lettre+1] == u'ᾩ' or PageTitre[lettre:lettre+1] == u'ᾡ' or PageTitre[lettre:lettre+1] == u'ᾪ' or PageTitre[lettre:lettre+1] == u'ᾢ' or PageTitre[lettre:lettre+1] == u'ᾫ' or PageTitre[lettre:lettre+1] == u'ᾣ' or PageTitre[lettre:lettre+1] == u'ᾬ' or PageTitre[lettre:lettre+1] == u'ᾤ' or PageTitre[lettre:lettre+1] == u'ᾭ' or PageTitre[lettre:lettre+1] == u'ᾥ' or PageTitre[lettre:lettre+1] == u'ᾮ' or PageTitre[lettre:lettre+1] == u'ᾦ' or PageTitre[lettre:lettre+1] == u'ᾯ' or PageTitre[lettre:lettre+1] == u'ᾧ' or PageTitre[lettre:lettre+1] == u'ῼ' or PageTitre[lettre:lettre+1] == u'ῳ' or PageTitre[lettre:lettre+1] == u'ῲ' or PageTitre[lettre:lettre+1] == u'ῴ' or PageTitre[lettre:lettre+1] == u'ῶ' or PageTitre[lettre:lettre+1] == u'ῷ':
                                PageT = PageT + "ω"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'Ὓ' or PageTitre[lettre:lettre+1] == u'ὓ' or PageTitre[lettre:lettre+1] == u'Υ' or PageTitre[lettre:lettre+1] == u'ὔ' or PageTitre[lettre:lettre+1] == u'Ὕ' or PageTitre[lettre:lettre+1] == u'ὕ' or PageTitre[lettre:lettre+1] == u'Ὗ' or PageTitre[lettre:lettre+1] == u'ὗ' or PageTitre[lettre:lettre+1] == u'Ὺ' or PageTitre[lettre:lettre+1] == u'ὺ' or PageTitre[lettre:lettre+1] == u'Ύ' or PageTitre[lettre:lettre+1] == u'ύ' or PageTitre[lettre:lettre+1] == u'Ῠ' or PageTitre[lettre:lettre+1] == u'ῠ' or PageTitre[lettre:lettre+1] == u'Ῡ' or PageTitre[lettre:lettre+1] == u'ῡ' or PageTitre[lettre:lettre+1] == u'ῢ' or PageTitre[lettre:lettre+1] == u'ΰ' or PageTitre[lettre:lettre+1] == u'ῦ' or PageTitre[lettre:lettre+1] == u'ῧ' or PageTitre[lettre:lettre+1] == u'ὐ' or PageTitre[lettre:lettre+1] == u'ὑ' or PageTitre[lettre:lettre+1] == u'ὒ' or PageTitre[lettre:lettre+1] == u'ὖ':
                                PageT = PageT + "υ"
                                key = "yes"
                        # Cyrillique
                        elif PageTitre[lettre:lettre+1] == u'ѐ' or PageTitre[lettre:lettre+1] == u'Ѐ' or PageTitre[lettre:lettre+1] == u'ё' or PageTitre[lettre:lettre+1] == u'Ё':
                                PageT = PageT + "е"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'ѝ' or PageTitre[lettre:lettre+1] == u'й' or PageTitre[lettre:lettre+1] == u'И' or PageTitre[lettre:lettre+1] == u'Ѝ' or PageTitre[lettre:lettre+1] == u'Й':
                                PageT = PageT + "и"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'ў' or PageTitre[lettre:lettre+1] == u'У' or PageTitre[lettre:lettre+1] == u'Ў':
                                PageT = PageT + "у"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'ѓ' or PageTitre[lettre:lettre+1] == u'ґ' or PageTitre[lettre:lettre+1] == u'Г' or PageTitre[lettre:lettre+1] == u'Ѓ' or PageTitre[lettre:lettre+1] == u'Ґ':
                                PageT = PageT + "г"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'ќ' or PageTitre[lettre:lettre+1] == u'К' or PageTitre[lettre:lettre+1] == u'Ќ':
                                PageT = PageT + "к"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'ї' or PageTitre[lettre:lettre+1] == u'І' or PageTitre[lettre:lettre+1] == u'Ї':
                                PageT = PageT + "і"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'Ѿ':
                                PageT = PageT + "Ѡ"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'Ѵ' or PageTitre[lettre:lettre+1] == u'ѷ' or PageTitre[lettre:lettre+1] == u'Ѷ':
                                PageT = PageT + "ѵ"
                                key = "yes"                                     
                        # Arabe
                        elif PageTitre[lettre:lettre+1] == u'أ' or PageTitre[lettre:lettre+1] == u'إ' or PageTitre[lettre:lettre+1] == u'آ' or PageTitre[lettre:lettre+1] == u'ٱ':
                                PageT = PageT + "ا"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'دَ' or PageTitre[lettre:lettre+1] == u'دِ' or PageTitre[lettre:lettre+1] == u'دُ':
                                PageT = PageT + "ﺩ"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'ذٰ':
                                PageT = PageT + "ﺫ"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'لٰ':
                                PageT = PageT + "ﻝ"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'مٰ':
                                PageT = PageT + "ﻡ"
                                key = "yes"
                        elif PageTitre[lettre:lettre+1] == u'هٰ':
                                PageT = PageT + "ﻩ"
                                key = "yes"
                        else:
                                PageT = PageT + PageTitre[lettre:lettre+1].lower()
                        #print (PageT.encode(config.console_encoding, 'replace'))
                        #raw_input("lettre")
                if key == "yes":
                        if PageTemp.find(u'[[Catégorie:') != -1:
                                PageTemp = PageTemp[0:PageTemp.find(u'[[Catégorie:')] + u'\n{{clé de tri|' + PageT + u'}}\n' + PageTemp[PageTemp.find(u'[[Catégorie:'):len(PageTemp)]
                        elif PageTemp.find(u'[[Category:') != -1:
                                PageTemp = PageTemp[0:PageTemp.find(u'[[Category:')] + u'\n{{clé de tri|' + PageT + u'}}\n' + PageTemp[PageTemp.find(u'[[Category:'):len(PageTemp)]
                        else:
                                PageTemp = PageTemp + u'\n\n{{clé de tri|' + PageT + u'}}\n'
 
        # Remplacements consensuels
        for p in range(1,sizeT-1):
                if PageTemp.find(u'{{' + temp[p] + u'|') != -1 or PageTemp.find(u'{{' + temp[p] + u'}}') != -1:
                        PageTemp = PageTemp[0:PageTemp.find(temp[p])] + Ttemp[p] + PageTemp[PageTemp.find(temp[p])+len(temp[p]):len(PageTemp)]
                p=p+1
 
        # http://fr.wikiversity.org/wiki/Catégorie:Modèle_mal_utilisé
        if PageTemp.find('{Chapitre') != -1 or PageTemp.find('{chapitre') != -1:
                if re.compile('{Chapitre').search(PageTemp):
                        if re.compile('{Chapitre[.\n]*(\n.*align.*=.*\n)').search(PageTemp):
                                i1 = re.search(u'{{Chapitre[.\n]*(\n.*align.*=.*\n)',PageTemp).end()
                                i2 = re.search(u'(\n.*align.*=.*\n)',PageTemp[:i1]).start()
                                PageTemp = PageTemp[:i2] + u'\n' + PageTemp[i1:]
                        PageEnd = PageTemp[0:PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre')]
                        PageTemp = PageTemp[PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre'):len(PageTemp)]
                elif re.compile('{chapitre').search(PageTemp):
                        if re.compile('{chapitre[.\n]*(\n.*align.*=.*\n)').search(PageTemp):
                                i1 = re.search(u'{{chapitre[.\n]*(\n.*align.*=.*\n)',PageTemp).end()
                                i2 = re.search(u'(\n.*align.*=.*\n)',PageTemp[:i1]).start()
                                PageTemp = PageTemp[:i2] + u'\n' + PageTemp[i1:]
                        PageEnd = PageTemp[0:PageTemp.find(u'{{chapitre')+len(u'{{chapitre')]
                        PageTemp = PageTemp[PageTemp.find(u'{{chapitre')+len(u'{{chapitre'):len(PageTemp)]              
                        '''if re.compile('{{Chapitre[\n.]*(\n.*leçon.*=.*\n)').search(PageTemp):
                                print "leçon1"
                        if re.compile('{{Chapitre.*\n.*\n.*(\n.*leçon.*=.*\n)').search(PageTemp):
                                print "leçon2"
                        if re.compile('{{Chapitre.*\n.*\n.*\n.*(\n.*leçon.*=.*\n)').search(PageTemp):
                                print "leçon3"
                        if re.compile('{{Chapitre[.\n]*(\n.*niveau.*=.*\n)').search(PageTemp):
                                print "niveau"
                                print re.compile('{{Chapitre[.\n]*(\n.*niveau.*=.*\n)').search(PageTemp)
                        if re.compile('{{Chapitre[.\n]*(\n.*précédent.*=.*\n)').search(PageTemp):
                                print "précédent"
                        if re.compile('{{Chapitre[.\n]*(\n.*suivant.*=.*\n)').search(PageTemp):
                                print "suivant"'''
                else: # Pas de modèle chapitre
                        print u'Pas de chapitre dans :'
                        print (PageHS.encode(config.console_encoding, 'replace'))
                        return
                Lecon = u''
                # Majuscule
                if PageTemp.find(u'Leçon') != -1 and PageTemp.find(u'Leçon') < 100:
                        PageTemp2 = PageTemp[PageTemp.find(u'Leçon'):len(PageTemp)]
                        Lecon = Valeur(u'Leçon',PageTemp)
                # Minuscule
                elif PageTemp.find(u'leçon') != -1 and PageTemp.find(u'leçon') < 100:
                        PageTemp2 = PageTemp[PageTemp.find(u'leçon'):len(PageTemp)]
                        Lecon = Valeur(u'leçon',PageTemp)
                if (Lecon == u'../' or Lecon == u'') and PageHS.find(u'/') != -1:
                        Lecon = PageHS[0:PageHS.find(u'/')]
                if Lecon.find(u'|') != -1:
                        Lecon = Lecon[0:Lecon.find(u'|')]
                while Lecon[0:1] == u'[':
                        Lecon = Lecon[1:len(Lecon)]
                while Lecon[len(Lecon)-1:len(Lecon)] == u']':
                        Lecon = Lecon[0:len(Lecon)-1]
 
                if Lecon == u'' or Lecon.find(u'.') != -1: 
                        print "Nom de la leçon incorrect"
                        return
                page2 = Page(site,Lecon)
                print (PageHS.encode(config.console_encoding, 'replace'))
                print (Lecon.encode(config.console_encoding, 'replace'))
                print(u'\n')
                if page2.exists():
                        if page2.namespace() != 0 and page2.title() != u'Utilisateur:JackBot/test': 
                                return
                        else:
                                try:
                                        PageLecon = page2.get()
                                except wikipedia.NoPage:
                                        print "NoPage"
                                        return
                                except wikipedia.IsRedirectPage:
                                        print "Redirect page"
                                        return
                                except wikipedia.LockedPage:
                                        print "Locked/protected page"
                                        return
                        # Majuscule
                        if PageLecon.find(u'{{Leçon') != -1:
                                if Valeur(u'Leçon',PageTemp) == u'':
                                        if PageTemp.find(u'Leçon') < PageTemp.find(u'}}') or PageTemp.find(u'Leçon') < PageTemp.find(u'}}'):
                                                if Valeur(u'Leçon',PageTemp) == u'':
                                                        PageTemp2 = PageTemp[PageTemp.find(u'Leçon')+len(u'Leçon'):len(PageTemp)]
                                                        PageTemp2 = PageTemp2[0:PageTemp2.find(u'\n')]
                                                        while PageTemp2[len(PageTemp2)-1:len(PageTemp2)] == u' ' or PageTemp2[len(PageTemp2)-1:len(PageTemp2)] == u'\t':
                                                                PageTemp2 = PageTemp2[0:len(PageTemp2)-1]
                                                        if PageTemp2[len(PageTemp2)-1:len(PageTemp2)] == u'=':
                                                                PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'Leçon')+len(u'Leçon')+PageTemp2.find(u'=')+1] + page2.title()
                                                                PageTemp = PageTemp[PageTemp.find(u'Leçon')+len(u'Leçon')+PageTemp2.find(u'=')+1:len(PageTemp)]
                                                        else:
                                                                print u'Signe égal manquant dans :'
                                                                print PageTemp2[len(PageTemp2)-1:len(PageTemp2)]
                                        else:
                                                PageEnd = PageEnd + u'\n|Leçon=' + page2.title()
                                PageEnd = PageEnd + PageTemp
                                if PageLecon.find(u'niveau') != -1:
                                        PageTemp = PageLecon[PageLecon.find(u'niveau'):len(PageLecon)]
                                        if PageTemp.find(u'=') < PageTemp.find(u'\n') and PageTemp.find(u'=') != -1:
                                                if Valeur(u'niveau',PageLecon) != -1:
                                                        PageTemp = PageEnd
                                                        if PageTemp.find(u'{{Chapitre') != -1:
                                                                PageEnd = PageTemp[0:PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre')]
                                                                PageTemp = PageTemp[PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre'):len(PageTemp)]
                                                        elif PageTemp.find(u'{{chapitre') != -1:
                                                                PageEnd = PageTemp[0:PageTemp.find(u'{{chapitre')+len(u'{{chapitre')]
                                                                PageTemp = PageTemp[PageTemp.find(u'{{chapitre')+len(u'{{chapitre'):len(PageTemp)]
                                                        else: return
                                                        if PageTemp.find(u'niveau') < PageTemp.find(u'}}') and PageTemp.find(u'niveau') != -1:
                                                                PageTemp2 = PageTemp[PageTemp.find(u'niveau')+len(u'niveau'):len(PageTemp)]
                                                                while PageTemp2[0:1] == " " or PageTemp2[0:1] == "=":
                                                                        PageTemp2 = PageTemp2[1:len(PageTemp2)]
                                                                PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'niveau')+len(u'niveau')] + "=" + Valeur(u'niveau',PageLecon)
                                                                PageTemp = PageTemp2
                                                        else:
                                                                PageEnd = PageEnd + u'\n|niveau=' + Valeur(u'niveau',PageLecon)
 
                        # Minuscule
                        elif PageLecon.find(u'{{leçon') != -1:
                                if Valeur(u'leçon',PageTemp) == u'':
                                        if PageTemp.find(u'leçon') < PageTemp.find(u'}}') or PageTemp.find(u'leçon') < PageTemp.find(u'}}'):
                                                if Valeur(u'leçon',PageTemp) == u'':
                                                        PageTemp2 = PageTemp[PageTemp.find(u'leçon')+len(u'leçon'):len(PageTemp)]
                                                        PageTemp2 = PageTemp2[0:PageTemp2.find(u'\n')]
                                                        while PageTemp2[len(PageTemp2)-1:len(PageTemp2)] == u' ' or PageTemp2[len(PageTemp2)-1:len(PageTemp2)] == u'\t':
                                                                PageTemp2 = PageTemp2[0:len(PageTemp2)-1]
                                                        if PageTemp2[len(PageTemp2)-1:len(PageTemp2)] == u'=':
                                                                PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'leçon')+len(u'leçon')+PageTemp2.find(u'=')+1] + page2.title()
                                                                PageTemp = PageTemp[PageTemp.find(u'leçon')+len(u'leçon')+PageTemp2.find(u'=')+1:len(PageTemp)]
                                                        else:
                                                                print u'Signe égal manquant dans :'
                                                                print PageTemp2[len(PageTemp2)-1:len(PageTemp2)]
                                        else:
                                                PageEnd = PageEnd + u'\n|leçon=' + page2.title()
                                PageEnd = PageEnd + PageTemp
                                if PageLecon.find(u'niveau') != -1:
                                        PageTemp = PageLecon[PageLecon.find(u'niveau'):len(PageLecon)]
                                        if PageTemp.find(u'=') < PageTemp.find(u'\n') and PageTemp.find(u'=') != -1:
                                                if Valeur(u'niveau',PageLecon) != -1:
                                                        PageTemp = PageEnd
                                                        if PageTemp.find(u'{{Chapitre') != -1:
                                                                PageEnd = PageTemp[0:PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre')]
                                                                PageTemp = PageTemp[PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre'):len(PageTemp)]
                                                        elif PageTemp.find(u'{{chapitre') != -1:
                                                                PageEnd = PageTemp[0:PageTemp.find(u'{{chapitre')+len(u'{{chapitre')]
                                                                PageTemp = PageTemp[PageTemp.find(u'{{chapitre')+len(u'{{chapitre'):len(PageTemp)]
                                                        else: return
                                                        PageEnd = PageTemp[0:PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre')]
                                                        PageTemp = PageTemp[PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre'):len(PageTemp)]
                                                        if PageTemp.find(u'niveau') < PageTemp.find(u'}}') and PageTemp.find(u'niveau') != -1:
                                                                PageTemp2 = PageTemp[PageTemp.find(u'niveau')+len(u'niveau'):len(PageTemp)]
                                                                while PageTemp2[0:1] == " " or PageTemp2[0:1] == "=":
                                                                        PageTemp2 = PageTemp2[1:len(PageTemp2)]
                                                                PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'niveau')+len(u'niveau')] + "=" + Valeur(u'niveau',PageLecon)
                                                                PageTemp = PageTemp2
                                                        else:
                                                                PageEnd = PageEnd + u'\n|niveau=' + Valeur(u'niveau',PageLecon)
 
                        PageEnd = PageEnd + PageTemp
                        PageTemp = u''
                        '''print Valeur(u'niveau',PageEnd)
                        print u'********************************************'
                        print Valeur(u'numéro',PageEnd)
                        print u'********************************************'
                        print Valeur(u'précédent',PageEnd)
                        print u'********************************************'
                        print Valeur(u'suivant',PageEnd)
                        raw_input(u'Fin de paramètres')'''
                        NumLecon = u''
                        PageTemp2 = u''
                        if Valeur(u'numéro',PageEnd) == u'' or Valeur(u'précédent',PageEnd) == u'' or Valeur(u'suivant',PageEnd) == u'':
                                if PageLecon.find(PageHS) != -1:
                                        PageTemp2 = PageLecon[0:PageLecon.find(PageHS)] # Nécessite que le département ait un nom déifférent et que les leçons soient bien nommées différemment
                                elif PageLecon.find(PageHS[PageHS.rfind(u'/')+1:len(PageHS)]) != -1:
                                        PageTemp2 = PageLecon[0:PageLecon.find(PageHS[PageHS.rfind(u'/')+1:len(PageHS)])]
                                if PageTemp2 != u'':
                                        while PageTemp2[len(PageTemp2)-1:len(PageTemp2)] == " " or PageTemp2[len(PageTemp2)-1:len(PageTemp2)] == "=" or PageTemp2[len(PageTemp2)-1:len(PageTemp2)] == "[" or PageTemp2[len(PageTemp2)-1:len(PageTemp2)] == "{" or PageTemp2[len(PageTemp2)-1:len(PageTemp2)] == "|" or PageTemp2[len(PageTemp2)-2:len(PageTemp2)] == "{C" or PageTemp2[len(PageTemp2)-2:len(PageTemp2)] == "{c" or PageTemp2[len(PageTemp2)-2:len(PageTemp2)] == "{L" or PageTemp2[len(PageTemp2)-2:len(PageTemp2)] == "{l":
                                                PageTemp2 = PageTemp2[0:len(PageTemp2)-1]
                                        if PageTemp2.rfind(u' ') > PageTemp2.rfind(u'|'):
                                                NumLecon = PageTemp2[PageTemp2.rfind(u' ')+1:len(PageTemp2)]
                                        else:
                                                NumLecon = PageTemp2[PageTemp2.rfind(u'|')+1:len(PageTemp2)]
                                        #print (PageTemp2.encode(config.console_encoding, 'replace'))                           
                                        if NumLecon != u'' and NumLecon != u'département':
                                                # Le numéro de la leçon permet de remplir les champs : |numéro=, |précédent=, |suivant=
                                                if Valeur(u'numéro',PageEnd) == u'':
                                                        if PageEnd.find(u'numéro') == -1:
                                                                PageTemp = PageEnd
                                                                PageEnd = PageTemp[0:PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre')]
                                                                PageTemp = PageTemp[PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre'):len(PageTemp)]
                                                                if PageTemp.find(u'numéro') < PageTemp.find(u'}}') and PageTemp.find(u'numéro') != -1:
                                                                        PageTemp2 = PageTemp[PageTemp.find(u'numéro')+len(u'numéro'):len(PageTemp)]
                                                                        while PageTemp2[0:1] == " " or PageTemp2[0:1] == "=":
                                                                                PageTemp2 = PageTemp2[1:len(PageTemp2)]
                                                                        PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'numéro')+len(u'numéro')] + "=" + NumLecon
                                                                        PageTemp = PageTemp2
                                                                else:
                                                                        PageEnd = PageEnd + u'\n|numéro=' + NumLecon
                                                                PageEnd = PageEnd + PageTemp
                                                                PageTemp = u''
                                                if Valeur(u'précédent',PageEnd) == u'' and NumLecon   == 1:
                                                        PageTemp = PageEnd
                                                        PageEnd = PageTemp[0:PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre')]
                                                        PageTemp = PageTemp[PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre'):len(PageTemp)]
                                                        if PageTemp.find(u'précédent') < PageTemp.find(u'}}') and PageTemp.find(u'précédent') != -1:
                                                                PageTemp2 = PageTemp[PageTemp.find(u'précédent')+len(u'précédent'):len(PageTemp)]
                                                                while PageTemp2[0:1] == " " or PageTemp2[0:1] == "=":
                                                                        PageTemp2 = PageTemp2[1:len(PageTemp2)]
                                                                PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'précédent')+len(u'précédent')] + "=" + NumLecon
                                                                PageTemp = PageTemp2
                                                        else:
                                                                PageEnd = PageEnd + u'\n|précédent=' + NumLecon
                                                        PageEnd = PageEnd + PageTemp
                                                        PageTemp = u''                                                          
                                                elif Valeur(u'précédent',PageEnd) == u'' and Valeur(str(int(NumLecon)-1),PageLecon) != u'':
                                                        PageTemp = PageEnd
                                                        PageEnd = PageTemp[0:PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre')]
                                                        PageTemp = PageTemp[PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre'):len(PageTemp)]
                                                        if PageTemp.find(u'précédent') < PageTemp.find(u'}}') and PageTemp.find(u'précédent') != -1:
                                                                PageTemp2 = PageTemp[PageTemp.find(u'précédent')+len(u'précédent'):len(PageTemp)]
                                                                while PageTemp2[0:1] == " " or PageTemp2[0:1] == "=":
                                                                        PageTemp2 = PageTemp2[1:len(PageTemp2)]
                                                                PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'précédent')+len(u'précédent')] + "=" + Valeur(str(int(NumLecon)-1),PageLecon)
                                                                PageTemp = PageTemp2
                                                        else:
                                                                PageEnd = PageEnd + u'\n|précédent=' + Valeur(str(int(NumLecon)-1),PageLecon)
                                                        PageEnd = PageEnd + PageTemp
                                                        PageTemp = u''
                                                if Valeur(u'suivant',PageEnd) == u'' and Valeur(str(int(NumLecon)+1),PageLecon) != u'':                                 
                                                        PageTemp = PageEnd
                                                        PageEnd = PageTemp[0:PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre')]
                                                        PageTemp = PageTemp[PageTemp.find(u'{{Chapitre')+len(u'{{Chapitre'):len(PageTemp)]
                                                        if PageTemp.find(u'suivant') < PageTemp.find(u'}}') and PageTemp.find(u'suivant') != -1:
                                                                PageTemp2 = PageTemp[PageTemp.find(u'suivant')+len(u'suivant'):len(PageTemp)]
                                                                while PageTemp2[0:1] == " " or PageTemp2[0:1] == "=":
                                                                        PageTemp2 = PageTemp2[1:len(PageTemp2)]
                                                                PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'suivant')+len(u'suivant')] + "=" + Valeur(str(int(NumLecon)+1),PageLecon)
                                                                PageTemp = PageTemp2
                                                        else:
                                                                if PageTemp.find(u'précédent') != -1:
                                                                        PageTemp2 = PageTemp[PageTemp.find(u'précédent'):len(PageTemp)]
                                                                        PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'précédent')+PageTemp2.find(u'\n')] + u'\n|suivant=' + Valeur(str(int(NumLecon)+1),PageLecon)
                                                                        PageTemp = PageTemp[PageTemp.find(u'précédent')+PageTemp2.find(u'\n'):len(PageTemp)]
                                                                else:
                                                                        PageEnd = PageEnd + u'\n|suivant=' + Valeur(str(int(NumLecon)+1),PageLecon)
                                                        PageEnd = PageEnd + PageTemp
                                                        PageTemp = u''
                        #if PageEnd.find(u'{{bas de page}}') == -1:
                                # Ajout de {{bas de page}} si len(PageEnd) > 10
                        #else:
                                # précédent, suivant
                else: # Pas de leçon
                        print u'Pas de leçon : '
                        print (Lecon.encode(config.console_encoding, 'replace'))
                        print u'dans : '
                        print (PageHS.encode(config.console_encoding, 'replace'))
                        #raw_input ('Attente')
                PageEnd = PageEnd + PageTemp
                PageTemp = u''
        elif PageTemp.find(u'{Leçon') != -1 or PageTemp.find(u'{leçon') != -1:
                # Evaluations
                page2 = Page(site,u'Discussion:' + PageHS)
                if page2.exists():
                        try:
                                PageDisc = page2.get()
                        except wikipedia.NoPage:
                                print "NoPage"
                                return
                        except wikipedia.IsRedirectPage:
                                print "Redirect page"
                                return
                        except wikipedia.LockedPage:
                                print "Locked/protected page"
                                return
                        if PageDisc.find(u'{{Évaluation') == -1 and PageDisc.find(u'{{évaluation') == -1:
                                arretdurgence()
                                try:
                                        page2.put(u'{{Évaluation|idfaculté=' + Valeur(u'idfaculté',PageTemp) + u'|avancement=?}}\n' + PageDisc, u'Ajout d\'évaluation inconnue')
                                except pywikibot.EditConflict:
                                        print "Conflict"
                                        return
                                except wikipedia.NoPage:
                                        print "NoPage"
                                        return
                                except wikipedia.IsRedirectPage:
                                        print "Redirect page"
                                        return
                                except wikipedia.LockedPage:
                                        print "Locked/protected page"
                                        return                          
                else:
                        arretdurgence()
                        try:
                                page2.put(u'{{Évaluation|idfaculté=' + Valeur(u'idfaculté',PageTemp) + u'|avancement=?}}\n', u'Ajout d\'évaluation inconnue')
                        except pywikibot.EditConflict:
                                print "Conflict"
                                return
                        except wikipedia.NoPage:
                                print "NoPage"
                                return
                        except wikipedia.IsRedirectPage:
                                print "Redirect page"
                                return
                        except wikipedia.LockedPage:
                                print "Locked/protected page"
                                return
 
                # Synchronisations avec les niveaux des départements
                #...
 
        PageEnd = PageEnd + PageTemp
        # Sauvegarde semie-automatique
        if page.get() != PageEnd:
                arretdurgence()
                result = u'ok'
                #print (PageEnd.encode(config.console_encoding, 'replace'))
                #result = raw_input('\033[94m' + "Sauvegarder ? (o/n)" + '\033[0m')
                if result == u'n' or result == u'no' or result == u'non': 
                        return
                else:
                        try:
                                        page.put(PageEnd, summary)
                        except pywikibot.EditConflict:
                                        print "Conflict"
                                        return
                        except wikipedia.NoPage:
                                        print "NoPage"
                                        return
                        except wikipedia.IsRedirectPage:
                                        print "Redirect page"
                                        return
                        except wikipedia.LockedPage:
                                        print "Locked/protected page"
                                        return  
 
 
# Permet à tout le monde de stopper le bot en lui écrivant
def arretdurgence():
        arrettitle = ''.join(u'Discussion utilisateur:JackBot')
        arretpage = pywikibot.Page(pywikibot.getSite(), arrettitle)
        gen = iter([arretpage])
        arret = arretpage.get()
        if arret != u"{{/Stop}}":
                pywikibot.output(u"\n*** \03{lightyellow}Arrêt d'urgence demandé\03{default} ***")
                exit(0)
 
# Permet à tout le monde de stopper le bot en lui écrivant
def Valeur(Mot,Page):
        if Page.find(u' ' + Mot) != Page.find(Mot)-1 and Page.find(u'|' + Mot) != Page.find(Mot)-1: # Pb du titre_leçon
                PageTemp2 = Page[Page.find(Mot)+len(Mot):len(Page)]
        else:
                PageTemp2 = Page
        if PageTemp2.find(Mot) == -1:
                return u''
        else:
                PageTemp2 = PageTemp2[PageTemp2.find(Mot)+len(Mot):len(PageTemp2)]
                PageTemp2 = PageTemp2[0:PageTemp2.find(u'\n')]
                if PageTemp2.find (u'{{C|') != -1:              
                        PageTemp2 = PageTemp2[PageTemp2.find (u'{{C|')+4:len(PageTemp2)]
                        PageTemp2 = u'[[../' + PageTemp2[0:PageTemp2.find (u'|')] + u'/]]'
                while PageTemp2[0:1] == u' ' or PageTemp2[0:1] == u'\t' or PageTemp2[0:1] == u'=':
                        PageTemp2 = PageTemp2[1:len(PageTemp2)]
                if PageTemp2[0:3] == u'[[/':            
                        PageTemp2 = u'[[..' + PageTemp2[2:len(PageTemp2)]
                return PageTemp2
 
# Lecture du fichier articles_list.txt (au même format que pour replace.py)
def crawlerFile(source):
        if source:
                PagesHS = open(source, 'r')
                while 1:
                        PageHS = PagesHS.readline()
                        fin = PageHS.find("\t")
                        PageHS = PageHS[0:fin]
                        if PageHS == '': break
                        modification(PageHS)
                PagesHS.close()
 
# Traitement d'une catégorie
def crawlerCat(category):
        cat = catlib.Category(site, category)
        pages = cat.articlesList(False)
        for Page in pagegenerators.PreloadingGenerator(pages,100):
                modification(Page.title()) #crawlerLink(Page.title())
        subcat = cat.subcategories(recurse = True)
        for subcategory in subcat:
                pages = subcategory.articlesList(False)
                for Page in pagegenerators.PreloadingGenerator(pages,100):
                        modification(Page.title())
 
# Traitement des pages liées
def crawlerLink(pagename):
        #pagename = unicode(arg[len('-links:'):], 'utf-8')
        page = wikipedia.Page(site, pagename)
        gen = pagegenerators.ReferringPageGenerator(page)
        #gen =  pagegenerators.NamespaceFilterPageGenerator(gen, namespaces)
        for Page in pagegenerators.PreloadingGenerator(gen,100):
                modification(Page.title())
 
# Traitement d'une recherche
def crawlerSearch(pagename):
        gen = pagegenerators.SearchPageGenerator(pagename, namespaces = "0")
        for Page in pagegenerators.PreloadingGenerator(gen,100):
                modification(Page.title())
 
# Traitement des modifications récentes
def crawlerRC():
        gen = pagegenerators.RecentchangesPageGenerator()
        for Page in pagegenerators.PreloadingGenerator(gen,100):
                modification(Page.title())
 
# Traitement des modifications d'un compte
def crawlerUser(username):
        gen = pagegenerators.UserContributionsGenerator(username)
        for Page in pagegenerators.PreloadingGenerator(gen,100):
                modification(Page.title())
 
 
# Lancement
TraitementFile = crawlerFile('articles_list.txt')
'''
TraitementCategory = crawlerCat(u'Modèle mal utilisé')
TraitementFile = crawlerFile('articles_list.txt')
TraitementLiens = crawlerLink(u'Modèle:Chapitre')
TraitementWord = modification(u'Utilisateur:JackBot/test')
TraitementUtilisateur = crawlerUser(u'Utilisateur:JackBot')
TraitementRecherche = crawlerSearch(u'chinois')
while 1:
        TraitementRC = crawlerRC()
'''
Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Communiquer
Contribuer
Imprimer / exporter
Boîte à outils
Autres langues