X-Git-Url: http://git.tomasm.cz/krypto.git/blobdiff_plain/ee02d49796a9fcc1ff8be4a69149c0a371121d8e..4bebeac3c7ea32d77313bf9112ba9b649edb8e43:/robot.py?ds=sidebyside diff --git a/robot.py b/robot.py index 16eaaf0..98792db 100755 --- a/robot.py +++ b/robot.py @@ -9,8 +9,10 @@ from ocesavac import ocesat import jakobsen from jakobsen import reference import koincidence +import posuny import pickle import os +import re ABECEDA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' @@ -55,7 +57,17 @@ if opsny == 'H': sys.exit() if 'L' in opsny: mail = pickle.load(open('./msg_last.tmp')) - if (mail['From'] != odesilatel): + m1 = re.match(r".*\<(.*)\>.*", mail['From']) + m2 = re.match(r".*\<(.*)\>.*", odesilatel) + if m1: + f1 = m1.group(1) + else: + f1 = mail['From'] + if m2: + f2 = m2.group(1) + else: + f2 = odesilatel + if (f1 != f2): posli_mail(odesilatel, "Omluva", "Omlouvam se," " ale Vase zprava uz bohuzel neni na serveru ulozena.\n") sys.exit() @@ -118,7 +130,6 @@ analyza.append("\nIndexy koincidence (vzdy bez mezer):") analyza.append(koincidence.tabulka_indexu(zprava)) # Jakobsen -# TODO verze bez mezer if mod_m: analyza.append("\nJakobsen (s mezerami):") analyza.append(jakobsen.desifruj(zprava, './ref')) @@ -127,21 +138,13 @@ if mod_x: analyza.append(jakobsen.desifruj(zprava, './bref')) # Posuny v abecede -# TODO najit nejvhodnejsi posuny a vypsat jenom ty -def posun(char): - if 65 <= ord(char) < 90: - return chr(ord(char) + 1) - if ord(char) == 90: - return 'A' - else: - return char - +(posun, posunuty_text) = posuny.nejlepsi(zprava) if 'P' in opsny or 'A' in opsny: - analyza.append("\nPosuny v abecede:") - posunuty = zprava - for i in range(26): - posunuty = map(posun, posunuty) - analyza.append(''.join(posunuty)) + analyza.append("\nPosuny v abecede (nejlepsi posun {0}):".format(posun)) + 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) # Bigramy if ('B' in opsny or 'A' in opsny): @@ -165,16 +168,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() +posli_mail(odesilatel, "Analyza Vasi zpravy", "\n".join(analyza)) # Zalogovani posledni zpravy f = open('./robot_last.tmp', 'w') @@ -186,5 +181,10 @@ pickle.dump(mail, f) f.close() f = open('./robot.log', 'a') -f.write(asctime() + " " + odesilatel + "\n") +m = re.match(r".*\<(.*)\>.*", odesilatel) +if m: + odesilatel2 = m.group(1) +else: + odesilatel2 = odesilatel +f.write(asctime() + " " + odesilatel2 + " " + opsny + "\n") f.close()