From 0df66bcfc09af61d9a58fb3538295cf6c9f39e15 Mon Sep 17 00:00:00 2001 From: Apprentice Harper Date: Wed, 21 Dec 2016 06:33:34 +0000 Subject: [PATCH] Improve testing of decrypted text file. (And so decrypt badly formatted ePubs) --- Obok_calibre_plugin/obok_plugin.zip | Bin 64838 -> 65160 bytes Obok_calibre_plugin/obok_plugin/obok/obok.py | 33 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/Obok_calibre_plugin/obok_plugin.zip b/Obok_calibre_plugin/obok_plugin.zip index b3116433c4954ed24e57543ea0ee1dc362f94f81..9cb32b18facb77a5ef39a0a8d2a466dae7f4616e 100644 GIT binary patch delta 8899 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 R7XTLkp#=Z{(f9xW007ITB%c5P delta 8524 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: + # Non-ascii, so decryption probably failed + print u"Bad character at {0}, value {1}".format(i,ord(contents[i])) + raise ValueError + print u"Seems to be good text" + return True if contents[:5]=="