import pickle
import os
import re
-
-ABECEDA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+from spolecne import ABECEDA
+import vigenere
class settings:
pass
if predmet != settings.subject:
sys.exit()
if opsny == 'H':
- posli_mail(odesilatel, "Napoveda", "Napoveda:\n"
+ posli_mail(odesilatel, "Napoveda", ''.join("Napoveda:\n"
"Prikazy robotovi vkladejte do predmetu zpravy "
- "zaslane na adresu " +
- settings.mail + ".\nNa velikosti pismen nezalezi."
+ "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 + " X\" Vynuti analyzu bez mezer.\n"
- "\"" + settings.subject + " M\" Vynuti analyzu s mezerami.\n"
- "\"" + settings.subject + " B\" Vypise cetnost vsech bigramu.\n"
- "\"" + settings.subject + " P\" Vypise vsechny posunuti textu.\n"
- "\"" + settings.subject + " A\" Vypise uplne vsechno co dava "
+ "\"", settings.subject, "\" Analyza zpravy z tela mailu.\n"
+ "\"", settings.subject, " L\" Opakovana analyza "
+ "posledni zpravy.\n",
+ "\"", settings.subject, " X\" Vynuti analyzu bez mezer.\n"
+ "\"", settings.subject, " M\" Vynuti analyzu s mezerami.\n"
+ "\"", settings.subject, " B\" Vypise cetnost vsech bigramu.\n"
+ "\"", settings.subject, " P\" Vypise vsechny posunuti textu.\n"
+ "\"", settings.subject, " A\" Vypise uplne vsechno co dava "
"alespon trochu smysl (nedoporucuji).\n"
- "\"" + settings.subject + " H\" Tato napoveda.\n"
+ "\"", settings.subject, " H\" Tato napoveda.\n"
"\nVolby (mimo \"H\") je mozno libovolne kombinovat.\n"
- "Napriklad \"" + settings.subject + " LXB\" analyzuje posledni "
+ "Napriklad \"", settings.subject, " LXB\" analyzuje posledni "
"prijatou zpravu s vynucenim analyzy bez mezer a navic vypise "
"cetnosti bigramu.\n"
- "\nS pozdravem\nVas Robot\n")
+ "\nS pozdravem\nVas Robot\n"))
sys.exit()
if 'L' in opsny:
mail = pickle.load(open('./msg_last.tmp'))
posli_mail(odesilatel, "Omluva", "Omlouvam se,"
" ale Vase zprava uz bohuzel neni na serveru ulozena.\n")
sys.exit()
-telo = mail.get_payload().strip()
+
+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")
analyza.append("\nIndex koincidence (s mezerami):")
analyza.append('{0:.2%}'.format(
koincidence.index_koincidence(zprava, True)))
-if mod_x:
+if mod_x and len(zprava) >= 10:
+ #TODO tady by se spravne mela porovnavat delka ocesane zpravy
analyza.append("\nIndexy koincidence (bez mezer):")
analyza.append(koincidence.tabulka_indexu(zprava))
+# Vigenere
+if 'V' in opsny:
+ # TODO?poradne cteni opsnu
+ analyza.append("\nHeslo k Vigenerovi (" + opsny[-1] + "):")
+ vig_heslo, vig_text = vigenere.vsechno(zprava, int(opsny[-1]))
+ analyza.append(vig_heslo)
+ analyza.append(vig_text)
+
# Jakobsen
if mod_m:
analyza.append("\nJakobsen (s mezerami):")
analyza.append(posunuty_text)
# Bigramy
-if ('B' in opsny or 'A' in opsny):
+if 'B' in opsny or 'A' in opsny:
analyza.append("\nBigramy podle cetnosti:")
bigramy = dict()
for i in ABECEDA: