there is a thing called list comprehensions
This commit is contained in:
parent
91dd90291a
commit
eebdad0462
48
app.py
48
app.py
|
@ -87,69 +87,35 @@ def miab_auth(username, password):
|
||||||
def get_aliases(username):
|
def get_aliases(username):
|
||||||
a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd))
|
a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd))
|
||||||
data = a.json()
|
data = a.json()
|
||||||
i=1 #start with 1 to skip miab main domain
|
aliases = [alias['address'] for user in data[1:] for alias in user['aliases'] if alias['forwards_to'] and alias['forwards_to'][0] == username]
|
||||||
aliases = []
|
|
||||||
while i < len(data):
|
|
||||||
j=0
|
|
||||||
while j < len(data[i]['aliases']):
|
|
||||||
if len(data[i]['aliases'][j]['forwards_to']) == 1:
|
|
||||||
if data[i]['aliases'][j]['forwards_to'][0] == username:
|
|
||||||
aliases.append(data[i]['aliases'][j]['address'])
|
|
||||||
j+=1
|
|
||||||
i+=1
|
|
||||||
return aliases
|
return aliases
|
||||||
|
|
||||||
# get all addresses available on miab
|
# get all addresses available on miab
|
||||||
def get_addresses():
|
def get_addresses():
|
||||||
addresses = []
|
|
||||||
# get alias data
|
# get alias data
|
||||||
a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd))
|
a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd))
|
||||||
aliases = a.json()
|
aliases = a.json()
|
||||||
i=0
|
|
||||||
while i < len(aliases):
|
|
||||||
j=0
|
|
||||||
while j < len(aliases[i]['aliases']):
|
|
||||||
addresses.append(aliases[i]['aliases'][j]['address'])
|
|
||||||
j+=1
|
|
||||||
i+=1
|
|
||||||
|
|
||||||
# get user data
|
# get user data
|
||||||
u = requests.get(miab_url + "/mail/users?format=json", auth=(miab_admin, miab_passwd))
|
u = requests.get(miab_url + "/mail/users?format=json", auth=(miab_admin, miab_passwd))
|
||||||
users = u.json()
|
users = u.json()
|
||||||
i=0
|
# generate list of all addresses on the box
|
||||||
while i < len(users):
|
addresses = [alias['address'] for user in aliases for alias in user['aliases']]
|
||||||
j=0
|
addresses.extend([ user['email'] for domains in users for user in domains['users']])
|
||||||
while j < len(users[i]['users']):
|
|
||||||
addresses.append(users[i]['users'][j]['email'])
|
|
||||||
j+=1
|
|
||||||
i+=1
|
|
||||||
return addresses
|
return addresses
|
||||||
|
|
||||||
# get all valid domains from miab
|
# get all valid domains from miab
|
||||||
def get_domains():
|
def get_domains():
|
||||||
domains = []
|
|
||||||
u = requests.get(miab_url + "/mail/users?format=json", auth=(miab_admin, miab_passwd))
|
u = requests.get(miab_url + "/mail/users?format=json", auth=(miab_admin, miab_passwd))
|
||||||
users = u.json()
|
users = u.json()
|
||||||
i=0
|
domains = [ user['domain'] for user in users ]
|
||||||
while i < len(users):
|
|
||||||
domains.append(users[i]['domain'])
|
|
||||||
i+=1
|
|
||||||
return domains
|
return domains
|
||||||
|
|
||||||
# get forwarding alias for user
|
# get forwarding alias for user
|
||||||
def get_forward(username):
|
def get_forward(username):
|
||||||
a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd))
|
a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd))
|
||||||
aliases = a.json()
|
aliases = a.json()
|
||||||
i=0
|
forward = [alias['forwards_to'][0] for domains in aliases for alias in domains['aliases'] if alias['address'] == username]
|
||||||
while i < len(aliases):
|
return forward[0]
|
||||||
j=0
|
|
||||||
while j < len(aliases[i]['aliases']):
|
|
||||||
if aliases[i]['aliases'][j]['address'] == username:
|
|
||||||
forward = aliases[i]['aliases'][j]['forwards_to'][0]
|
|
||||||
return forward
|
|
||||||
j+=1
|
|
||||||
i+=1
|
|
||||||
return None
|
|
||||||
|
|
||||||
# routing
|
# routing
|
||||||
|
|
||||||
|
|
Reference in New Issue