Merge branch 'mezery'
[krypto.git] / robot.py
index 7292736..e2b3820 100755 (executable)
--- a/robot.py
+++ b/robot.py
@@ -33,7 +33,7 @@ predmet, _, opsny = mail['Subject'].strip().upper().partition(' ')
 odesilatel = mail['From']
 if predmet != settings.subject:
     sys.exit()
-if (opsny == 'H'):
+if opsny == 'H':
     posli_mail(odesilatel, "Napoveda", "Napoveda:\n"
                "Prikazy robotovi vkladejte do predmetu zpravy zaslane na adresu " + 
                settings.mail + ".\nNa velikosti pismen nezalezi."
@@ -41,9 +41,10 @@ if (opsny == 'H'):
                "\"" + settings.subject + "\"   Analyza zpravy z tela mailu.\n" 
                "\"" + settings.subject + " L\" Opakovana analyza posledni zpravy.\n" +
                "\"" + settings.subject + " H\" Tato napoveda.\n"
+               "\nVolby (mimo \"H\") je mozno libovolne kombinovat.\n"
                "\nS pozdravem\nVas Robot\n")
     sys.exit()
-if (opsny == 'L'):
+if 'L' in opsny:
     mail = pickle.load(open('./msg_last.tmp'))
     if (mail['From'] != odesilatel):
         posli_mail(odesilatel, "Omluva", "Omlouvam se,"
@@ -59,23 +60,42 @@ analyza = []
 analyza.append("Puvodni zprava:")
 analyza.append(telo)
 
+# Prepinani spacemodu
+if 'X' in opsny:
+    mod_m = True
+elif 'M' in opsny:
+    mod_m = False
+elif ' ' in ocesat(zprava, True):
+    mod_m = True
+else:
+    mod_m = False    
+if mod_m:
+    analyza.append("\nAnalyza s mezerami.")
+else:
+    analyza.append("\nAnalyza bez mezer.")
+    
 # Zakladni udaje
-analyza.append("\nDelka zpravy (bez mezer a zvlastnich znaku):")
-analyza.append(str(len(ocesat(zprava, False))))
+analyza.append("\nZakladni udaje:")
+if mod_m:
+    analyza.append("Delka zpravy (vcetne mezer a zvlastnich znaku): " + str(len(zprava)))
+analyza.append("Delka zpravy (bez mezer a zvlastnich znaku): " + 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)))
+if mod_m:
+    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:")
+# TODO verze s mezerami
+analyza.append("\nIndexy koincidence (vzdy bez mezer):")
 analyza.append(koincidence.tabulka_indexu(zprava))
 
 # Jakobsen
-analyza.append("\nJakobsen:")
-analyza.append(jakobsen.desifruj(zprava, './ref'))
+# TODO verze bez mezer
+if mod_m:
+    analyza.append("\nJakobsen:")
+    analyza.append(jakobsen.desifruj(zprava, './ref'))
 
 # Posuny v abecede
 analyza.append("\nPosuny v abecede:")