1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
#!/usr/bin/env python
# A simple help script to create a new planet/universe config for a new user
# Run it inside the planet/ topdir
# WARNING: Always check the changes that are made by this script before commiting
# Many thanks to Arfrever Frehtes Taifersar Arahesis (arfrever@gentoo.org) for his suggestions
# Author: Theo Chatzimichos <tampakrap@gentoo.org>
# Feel free to contact me via IRC or email
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()
|