#!/usr/bin/env python # -*- coding: utf-8 -*- # # signup.py # # Copyright 2014 l3li3l@torguard.tg # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # # import webapp2 import re form = """ Sign Up

Signup

Username
%(error0)s
Password
%(error1)s
Verify Password
%(error2)s
Email (optional)
%(error3)s
""" class MainPage(webapp2.RequestHandler): error0 = "That's not a valid username." error1 = "That's not a valid password." error2 = "Your passwords didn't match." error3 = "That's not a valid email." c = "" d = "" e = "" f = "" def write_form(self, username = "", password = "", verify = "", email = "", error0 = "", error1 = "", error2 = "", error3 = ""): self.response.out.write(form % {"username": username, "password": password, "verify": verify, "email": email, "error0": error0, "error1": error1, "error2": error2, "error3": error3 }) def get(self): self.write_form() def post(self): usrusr = self.valid_usr(self.request.get('username')) usrpass = self.valid_pass(self.request.get('password')) usrverify = self.usr_verify(self.request.get('password'), self.request.get('verify')) usremail = self.valid_email(self.request.get('email')) if usrusr == 0: self.c = self.error0 if usrpass == 0: self.d = self.error1 if usrverify == 0: self.e = self.error2 if usremail == 0: self.f = self.error3 if usrusr+usrpass+usrverify+usremail < 4: self.write_form(self.request.get('username'),"","",self.request.get('email'), self.c, self.d, self.e, self.f) else: self.redirect('/welcome?username=%s' % self.request.get('username')) def valid_usr(self, username): if re.match(r"^[a-zA-Z0-9_-]{3,20}$", username): return 1 else: return 0 def valid_pass(self, password): if re.match(r"^.{3,20}$", password): return 1 else: return 0 def usr_verify(self, password, verify): if password == verify: return 1 else: return 0 def valid_email(self, email): if email == "": return 1 if re.match(r"^[\S]+@[\S]+\.[\S]+$", email): return 1 else: return 0 class WelcomeHandler(webapp2.RequestHandler): def get(self): username = self.request.get("username") self.response.out.write("Welcome, %s!" % username) application = webapp2.WSGIApplication([('/', MainPage), ('/welcome', WelcomeHandler)],debug=True)