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(' ')
if predmet != settings.subject:
sys.exit()
if (opsny == 'H'):
- msg = MIMEText("Napoveda:\n"
- "Pro opakovanou analyzu posledni zpravy zaslete mail s predmetem \"" +
- settings.subject + " L\". Na velikosti pismen v predmetu nezalezi."
- "\n\nS pozdravem\nVas Robot\n")
- msg['Subject'] = "Napoveda"
- msg['From'] = settings.name + " <" + settings.mail + ">"
- msg['To'] = odesilatel
- smtplib.SMTP('localhost').sendmail(settings.mail, odesilatel, msg.as_string())
+ 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'))
if (mail['From'] != odesilatel):
- msg = MIMEText("Omlouvam se, ale Vase zprava uz bohuzel neni na serveru ulozena.")
- msg['Subject'] = "Omluva"
- msg['From'] = settings.name + " <" + settings.mail + ">"
- msg['To'] = odesilatel
- smtplib.SMTP('localhost').sendmail(settings.mail, odesilatel, msg.as_string())
+ 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:
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))))
+# TODO pouze v modu s mezerami
+# Prumerna delka slova
+analyza.append("\nPrumerna delka slova:")
+slova = ocesat(zprava, True).split()
+analyza.append('{0:.3}'.format(float(sum([len(word) for word in slova]))/len(slova)))
+
# Index koincidence
analyza.append("\nIndexy koincidence:")
analyza.append(koincidence.tabulka_indexu(zprava))
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\n--\nPro napovedu zaslete mail s predmetem \"" +
- settings.subject + " H\".")
+msg = MIMEText("\n".join(analyza))
msg['Subject'] = "Analyza Vasi zpravy"
msg['From'] = settings.name + " <" + settings.mail + ">"
msg['To'] = odesilatel