summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheo Chatzimichos <tampakrap@gentoo.org>2010-07-16 17:22:06 +0000
committerTheo Chatzimichos <tampakrap@gentoo.org>2010-07-16 17:22:06 +0000
commit6efefda4e005d75e0e2e687365410d4bb40a17d8 (patch)
treeca645cb573cedde20b2149a45727768cd02d8a41
parentAdd Joachim Bartosik (GSOC student) (diff)
downloadplanet-6efefda4e005d75e0e2e687365410d4bb40a17d8.tar.gz
planet-6efefda4e005d75e0e2e687365410d4bb40a17d8.tar.bz2
planet-6efefda4e005d75e0e2e687365410d4bb40a17d8.zip
Add a python script that creates the planet/universe configs
-rw-r--r--adduser.py75
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()