diff --git a/creer_compte_wiki.py b/wiki-lenny/creer_compte_wiki.py similarity index 87% rename from creer_compte_wiki.py rename to wiki-lenny/creer_compte_wiki.py index d4084ea0..5dddcf60 100755 --- a/creer_compte_wiki.py +++ b/wiki-lenny/creer_compte_wiki.py @@ -5,7 +5,7 @@ # Auteur : Stéphane Glondu # Licence : GPLv2 -import sys, os, httplib, urllib +import sys, os, httplib, urllib, locale from getpass import getpass from smtplib import SMTP from email.MIMEBase import MIMEBase @@ -17,7 +17,7 @@ sys.path.append("/usr/scripts/gestion") from affich_tools import coul, prompt, cprint from user_tests import getuser -bugmail = ["glondu@crans.org"] +bugmail = ["glondu@crans.org", "adg@crans.org"] bugreport = u""" Nom d'utilisateur : %(name)s Adresse e-mail : %(email)s @@ -39,12 +39,12 @@ def send(msg): smtp.quit() def creer_compte(nom, mdp, email): - form = {'action': 'userform', + form = {'action': 'newaccount', 'name': nom.encode(encoding), - 'password': mdp, + 'password1': mdp, 'password2': mdp, 'email': email.encode(encoding), - 'create': 'Create Profile'} + 'create_only': 'Create+Profile'} params = urllib.urlencode(form) headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} @@ -62,6 +62,8 @@ def creer_compte(nom, mdp, email): return coul(u"Le compte %s existe déjà !" % nom, "rouge") elif 'This email already belongs to somebody else.' in data: return coul(u"L'adresse %s est déjà utilisée !" % email, "rouge") + elif 'Password not acceptable: Password too short.' in data: + return coul(u"Le mot de passe choisi est trop court", "rouge") elif 'Invalid user name' in data or "Nom d'utilisateur invalide" in data: msg = coul(u"Le nom d'utilisateur %s est invalide !" % nom, "rouge") msg += u""" @@ -70,7 +72,7 @@ Le nom d'utilisateur doit Il peut contenir n'importe quel caractère alphanumérique, avec éventuellement un espace facultatif entre chaque mot. Il peut aussi contenir des accents, mais assurez-vous que votre terminal est -correctement configuré (en ISO-8859-1 ou ISO-8859-15).""" +correctement configuré (en %s).""" % (locale.getdefaultlocale()[1]) return msg else: html = MIMEBase('text', 'html') @@ -86,29 +88,27 @@ correctement configur u"Un rapport de bug a été automatiquement envoyé. Réessayez plus tard." if __name__ == '__main__': - try: - nom = prompt("Nom d'utilisateur (utiliser un WikiNom) :") + nom = prompt("Nom d'utilisateur (utiliser un WikiNom) : ") while True: mdp = getpass(coul("Mot de passe (ne pas utiliser le même que pour zamok) : ", "gras")) - if getpass(coul("Confirmation du mot de passe :", "gras")) == mdp: + if getpass(coul("Confirmation du mot de passe : ", "gras")) == mdp: break else: - cprint(u"Les deux mots de passe sont différents, veuillez réessayer...", "rouge") + cprint(u"Les deux mots de passe sont différents, veuillez réessayer...", "jaune") email = prompt("Adresse e-mail : ") print creer_compte(nom, mdp, email) - + except KeyboardInterrupt: - os.system('clear') print "Interruption par l'utilisateur." exit = 255 - + except SystemExit, c: if c.__str__() == '254': os.system('reset') print "Votre session d'édition à été tuée." exit = c - + except: import traceback msg = MIMEText('\n'.join(traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)).encode(encoding), 'plain', encoding)