diff options
author | 2010-07-16 17:22:06 +0000 | |
---|---|---|
committer | 2010-07-16 17:22:06 +0000 | |
commit | 6efefda4e005d75e0e2e687365410d4bb40a17d8 (patch) | |
tree | ca645cb573cedde20b2149a45727768cd02d8a41 | |
parent | Add Joachim Bartosik (GSOC student) (diff) | |
download | planet-6efefda4e005d75e0e2e687365410d4bb40a17d8.tar.gz planet-6efefda4e005d75e0e2e687365410d4bb40a17d8.tar.bz2 planet-6efefda4e005d75e0e2e687365410d4bb40a17d8.zip |
Add a python script that creates the planet/universe configs
-rw-r--r-- | adduser.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/adduser.py b/adduser.py new file mode 100644 index 0000000..c0b9627 --- /dev/null +++ b/adduser.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python + +import sys +import hashlib + +# the following makes it python3 compatible +if sys.version_info[0] == 2: + input = raw_input + +def check_mail(email): + # http://commandline.org.uk/python/email-syntax-check/ + + # Ditch nonsense email addresses. + + GENERIC_DOMAINS = "aero", "asia", "biz", "cat", "com", "coop", \ + "edu", "gov", "info", "int", "jobs", "mil", "mobi", "museum", \ + "name", "net", "org", "pro", "tel", "travel" + + # Checks for a syntactically invalid email address. + # Email address must be 7 characters in total. + if len(email) < 7: + return False # Address too short + + # Split up email address into parts. + try: + localpart, domainname = email.rsplit('@', 1) + host, toplevel = domainname.rsplit('.', 1) + except ValueError: + return False # Address does not have enough parts + + # Check for Country code or Generic Domain. + if len(toplevel) != 2 and toplevel not in domains: + return False # Not a domain name. + + for i in '-_.%+.': + localpart = localpart.replace(i, "") + for i in '-_.': + host = host.replace(i, "") + + if localpart.isalnum() and host.isalnum(): + return True # Email address is fine. + else: + return False # Email has funny characters + +def create_gravatar(email): + h = hashlib.md5() + h.update(email) + return h.hexdigest() + +def create_config(feed,path,nickname,realname,gravatar): + if feed: + f = open('configs/%s/%s' % (path,nickname), 'w') + f.write('[%s]\nusername = %s\nname = %s\ngravatar = %s' % (feed,nickname,realname,gravatar)) + f.close() + print('%s config created successfully' % path) + else: + print('No %s config will be created' % path) + +def main(): + realname = input('Real Name: ') + nickname = input('Nickname: ') + email = input('Email: ') + if check_mail(email): + gravatar = create_gravatar(email) + print('Gravatar hash: %s' % gravatar) + else: + print('Not a valid email address\n') + sys.exit(0) + planet = input('Planet Feed: ') + create_config(planet,'planet',nickname,realname,gravatar) + universe = input('Universe Feed: ') + create_config(universe,'universe',nickname,realname,gravatar) + +if __name__ == '__main__': + main() |