+#!/usr/bin/env python
+
+"""Mailove rozhrani pro sadu kryptoanalytickych nastroju."""
+
+import os
+import sys
+import re
+import smtplib
+import email
+from email.mime.text import MIMEText
+from time import asctime
+import pickle
+
+from ocesavac import ocesat
+from spolecne import ABECEDA
+
+class settings:
+ pass
+
+settings = pickle.load(open('./robot_settings'))
+os.chdir(settings.path)
+
+def posli_mail(komu, predmet, text, loguj=None):
+ msg = MIMEText(text)
+ msg['Subject'] = predmet
+ msg['From'] = settings.name + " <" + settings.mail + ">"
+ msg['To'] = komu
+ smtplib.SMTP('localhost').sendmail(settings.mail, komu, msg.as_string())
+ if loguj:
+ soubor = open(loguj, 'w')
+ soubor.write(msg.as_string())
+ soubor.close()
+
+# Cteni mailu
+mail = email.message_from_file(sys.stdin)
+predmet, _, opsny = mail['Subject'].strip().upper().partition(' ')
+odesilatel = mail['From']
+if predmet != settings.subject:
+ sys.exit()
+if 'L' in opsny:
+ mail = pickle.load(open('./msg_last.tmp'))
+ m1 = re.match(r".*\<(.*)\>.*", mail['From'])
+ m2 = re.match(r".*\<(.*)\>.*", odesilatel)
+ if m1:
+ f1 = m1.group(1)
+ else:
+ f1 = mail['From']
+ if m2:
+ f2 = m2.group(1)
+ else:
+ f2 = odesilatel
+ if (f1 != f2):
+ posli_mail(odesilatel, "Omluva", "Omlouvam se,"
+ " ale Vase zprava uz bohuzel neni na serveru ulozena.\n")
+ sys.exit()
+
+if mail.is_multipart():
+ telo = mail.get_payload(0).get_payload().strip()
+else:
+ telo = mail.get_payload().strip()
+
+if len(ocesat(telo, False)) < 2:
+ posli_mail(odesilatel, "Omluva", "Omlouvam se,"
+ " ale Vase zprava je prilis kratka.\n")
+ sys.exit()
+zprava = telo.upper()
+
+# TODO zpracovat zpravu a odeslat vysledek
+#pridat "\nS pozdravem\nVas Robot"
+
+posli_mail(odesilatel,
+ "Analyza Vasi zpravy",
+ "\n".join(analyza),
+ './robot_last.tmp')
+
+f = open('./msg_last.tmp', 'w')
+pickle.dump(mail, f)
+f.close()
+
+f = open('./robot.log', 'a')
+m = re.match(r".*\<(.*)\>.*", odesilatel)
+if m:
+ odesilatel2 = m.group(1)
+else:
+ odesilatel2 = odesilatel
+f.write(asctime() + " " + odesilatel2 + " " + opsny + "\n")
+f.close()