From c010e3f77a274164b5037f60e0be0b9ee8dbee15 Mon Sep 17 00:00:00 2001 From: Apprentice Alf Date: Mon, 24 Dec 2012 23:31:34 +0000 Subject: [PATCH] tools v5.5.2 --- .../K4MobiDeDRM_plugin/__init__.py | 3 ++- .../K4MobiDeDRM_plugin/getk4pcpids.py | 10 ++++++++-- Calibre_Plugins/k4mobidedrm_plugin.zip | Bin 230727 -> 230640 bytes 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Calibre_Plugins/K4MobiDeDRM_plugin/__init__.py b/Calibre_Plugins/K4MobiDeDRM_plugin/__init__.py index 539fa38..e5a1702 100644 --- a/Calibre_Plugins/K4MobiDeDRM_plugin/__init__.py +++ b/Calibre_Plugins/K4MobiDeDRM_plugin/__init__.py @@ -20,13 +20,14 @@ __docformat__ = 'restructuredtext en' # 0.4.9 - typo fix # 0.4.10 - Another Topaz Fix (class added to page and group and region) # 0.4.11 - Fixed Linux support of K4PC +# 0.4.12 - More Linux Wine fixes """ Decrypt Amazon Kindle and Mobipocket encrypted ebooks. """ PLUGIN_NAME = u"Kindle and Mobipocket DeDRM" -PLUGIN_VERSION_TUPLE = (0, 4, 11) +PLUGIN_VERSION_TUPLE = (0, 4, 12) PLUGIN_VERSION = '.'.join([str(x) for x in PLUGIN_VERSION_TUPLE]) import sys, os, re diff --git a/Calibre_Plugins/K4MobiDeDRM_plugin/getk4pcpids.py b/Calibre_Plugins/K4MobiDeDRM_plugin/getk4pcpids.py index 138ab76..1614a53 100644 --- a/Calibre_Plugins/K4MobiDeDRM_plugin/getk4pcpids.py +++ b/Calibre_Plugins/K4MobiDeDRM_plugin/getk4pcpids.py @@ -11,15 +11,21 @@ __version__ = '1.01' import sys -class Unbuffered: +class SafeUnbuffered: def __init__(self, stream): self.stream = stream + self.encoding = stream.encoding + if self.encoding == None: + self.encoding = "utf-8" def write(self, data): + if isinstance(data,unicode): + data = data.encode(self.encoding,"replace") self.stream.write(data) self.stream.flush() def __getattr__(self, attr): return getattr(self.stream, attr) -sys.stdout=Unbuffered(sys.stdout) +sys.stdout=SafeUnbuffered(sys.stdout) +sys.stderr=SafeUnbuffered(sys.stderr) import os import struct diff --git a/Calibre_Plugins/k4mobidedrm_plugin.zip b/Calibre_Plugins/k4mobidedrm_plugin.zip index add82b43694ad8e4b9fd6a22b8fed591c81a13be..9c00bfea26f49c6fceef326db423a46237d0bc45 100644 GIT binary patch delta 10948 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 delta 11440 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 DsI6M3