#/usr/bin/python

# Script to go through


import os

def parse_message(string):
	m = {}
	lines = string.split('\n')
	meta = lines[0].split()
	m['age'] = meta[0]
	if meta[1].find('-') == -1:
		m['size'] = meta[1]
		m['id'] = meta[2]
		m['sender'] = meta[3]
		try:
			if meta[5] == 'frozen':
				m['frozen'] = 1
		except:
				m['frozen'] = 0
	else:
		m['id'] = meta[1]
		m['sender'] = meta[2]
		try:
			if meta[4] == 'frozen':
				m['frozen'] = 1
		except:
				m['frozen'] = 0
	m['lines'] = lines
	fin, fout = os.popen2('exim4 -Mvh %s'%m['id'])
	fin.close()
	m['headers'] = fout.read()
	fout.close()
	return m

fin, fout = os.popen2('exim4 -bp')
fin.close()

data = fout.read()
fout.close()
data = data.split('\n\n')
i = 0

live = 1
while live:
	# Print the current message
	m = parse_message(data[i])
	if m['frozen'] == 0:
		i += 1
		continue
	print m['lines'][0]
	print m['headers']
	print m['lines'][1:]
	print '---------------------------------------------------------------------------'
	# Ask for an action
	action = raw_input('Enter action (n=next, p=prev, d=delete, v=view, q=quit): ')
	if action == 'n':
		i += 1
	elif action == 'p':
		i -= 1
	elif action == 'e':
		break
	elif action == 'd':
		os.spawnlp(os.P_WAIT, 'exim4', 'exim4', '-Mrm', m['id'] )
		i += 1
	elif action == 'v':
		os.system('(exim4 -Mvh %s; exim4 -Mvb %s;) | less'% ( m['id'], m['id'] ) )
	elif action == 'q':
		break
