settings = pickle.load(open('./robot_settings'))
os.chdir(settings.path)
+def posli_mail(komu, co, text):
+ msg = MIMEText(text)
+ msg['Subject'] = co
+ msg['From'] = settings.name + " <" + settings.mail + ">"
+ msg['To'] = komu
+ smtplib.SMTP('localhost').sendmail(settings.mail, komu, msg.as_string())
+
# 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 (opsny == 'H'):
+ posli_mail(odesilatel, "Napoveda", "Napoveda:\n"
+ "Prikazy robotovi vkladejte do predmetu zpravy zaslane na adresu " +
+ settings.mail + ".\nNa velikosti pismen nezalezi."
+ "\n\nSeznam prikazu:\n"
+ "\"" + settings.subject + "\" Analyza zpravy z tela mailu.\n"
+ "\"" + settings.subject + " L\" Opakovana analyza posledni zpravy.\n" +
+ "\"" + settings.subject + " H\" Tato napoveda.\n"
+ "\nS pozdravem\nVas Robot\n")
+ sys.exit()
if (opsny == 'L'):
mail = pickle.load(open('./msg_last.tmp'))
-odesilatel = mail['From']
+ if (mail['From'] != odesilatel):
+ posli_mail(odesilatel, "Omluva", "Omlouvam se,"
+ " ale Vase zprava uz bohuzel neni na serveru ulozena.\n")
+ sys.exit()
telo = mail.get_payload().strip()
if len(telo) < 2:
sys.exit()
zprava = telo.upper()
analyza = []
+# Puvodni zprava
+analyza.append("Puvodni zprava:")
+analyza.append(telo)
+
# Zakladni udaje
-analyza.append("Delka zpravy (bez mezer a zvlastnich znaku):")
+analyza.append("\nDelka zpravy (bez mezer a zvlastnich znaku):")
analyza.append(str(len(ocesat(zprava, False))))
# Index koincidence
analyza.append('{0} {1:>3} {2:>6.2%}'.format(char, bigramy[char],
float(bigramy[char])/celkem))
+# Podpis a pozdrav
+analyza.append(''.join(["\nS pozdravem\nVas Robot\n"
+ "\n--\nPro napovedu zaslete mail s predmetem \"",
+ settings.subject," H\".\n"]))
+
# Kompozice odpovedi
-msg = MIMEText("Puvodni zprava:\n" +
- telo + "\n\n" + "\n".join(analyza) +
- "\n\nS pozdravem\nVas Robot\n")
+msg = MIMEText("\n".join(analyza))
msg['Subject'] = "Analyza Vasi zpravy"
msg['From'] = settings.name + " <" + settings.mail + ">"
msg['To'] = odesilatel