index koinc. s mezerami
[krypto.git] / robot.py
index daad9b8..a4c9c5c 100755 (executable)
--- a/robot.py
+++ b/robot.py
@@ -22,12 +22,16 @@ class settings:
 settings = pickle.load(open('./robot_settings'))
 os.chdir(settings.path)
 
-def posli_mail(komu, co, text):
+def posli_mail(komu, co, text, loguj=None):
     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())
+    if loguj:
+        f = open(loguj, 'w')
+        f.write(msg.as_string())
+        f.close()
 
 # Cteni mailu
 mail = email.message_from_file(sys.stdin)
@@ -125,9 +129,12 @@ for char in sorted(freq, key=freq.get, reverse=True):
                    float(freq[char])/celkem))
 
 # Index koincidence
-# TODO verze s mezerami
-analyza.append("\nIndexy koincidence (vzdy bez mezer):")
-analyza.append(koincidence.tabulka_indexu(zprava))
+if mod_m:
+    analyza.append("\nIndex koincidence (s mezerami):")
+    analyza.append(koincidence.index_koincidence(zprava))
+if mod_x:
+    analyza.append("\nIndexy koincidence (bez mezer):")
+    analyza.append(koincidence.tabulka_indexu(zprava))
 
 # Jakobsen
 if mod_m:
@@ -141,7 +148,7 @@ if mod_x:
 (posun, posunuty_text) = posuny.nejlepsi(zprava)
 if 'P' in opsny or 'A' in opsny:
     analyza.append("\nPosuny v abecede (nejlepsi posun {0}):".format(posun))
-    analyza.append("\n".join("{0} {1}".format(i + 1, posuny.vsechny(zprava)[i]) for i in range(26)))
+    analyza.append("\n".join("{0:>2} {1}".format(i + 1, posuny.vsechny(zprava)[i]) for i in range(26)))
 else:
     analyza.append("\nNejlepsi posun ({0}):".format(posun))
     analyza.append(posunuty_text)
@@ -168,21 +175,8 @@ analyza.append(''.join(["\nS pozdravem\nVas Robot\n"
                         "\n--\nPro napovedu zaslete mail s predmetem \"",
                         settings.subject," H\".\n"]))
 
-# Kompozice odpovedi
-msg = MIMEText("\n".join(analyza))
-msg['Subject'] = "Analyza Vasi zpravy"
-msg['From'] = settings.name + " <" + settings.mail  + ">"
-msg['To'] = odesilatel
-
 # Odeslani odpovedi
-s = smtplib.SMTP('localhost')
-s.sendmail(settings.mail, odesilatel, msg.as_string())
-s.quit()
-
-# Zalogovani posledni zpravy
-f = open('./robot_last.tmp', 'w')
-f.write(msg.as_string())
-f.close()
+posli_mail(odesilatel, "Analyza Vasi zpravy", "\n".join(analyza), './robot_last.tmp')
 
 f = open('./msg_last.tmp', 'w')
 pickle.dump(mail, f)