diff options
Diffstat (limited to 'Other_Tools/DRM_Key_Scripts/Kindle_for_iOS/kindleiospidgen.pyw')
-rw-r--r-- | Other_Tools/DRM_Key_Scripts/Kindle_for_iOS/kindleiospidgen.pyw | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Other_Tools/DRM_Key_Scripts/Kindle_for_iOS/kindleiospidgen.pyw b/Other_Tools/DRM_Key_Scripts/Kindle_for_iOS/kindleiospidgen.pyw index 0c0b11b..ed8a6cf 100644 --- a/Other_Tools/DRM_Key_Scripts/Kindle_for_iOS/kindleiospidgen.pyw +++ b/Other_Tools/DRM_Key_Scripts/Kindle_for_iOS/kindleiospidgen.pyw @@ -32,12 +32,20 @@ class SafeUnbuffered: if self.encoding == None: self.encoding = "utf-8" def write(self, data): - if isinstance(data,unicode): + if isinstance(data,str) or isinstance(data,unicode): + # str for Python3, unicode for Python2 data = data.encode(self.encoding,"replace") - self.stream.write(data) - self.stream.flush() + try: + buffer = getattr(self.stream, 'buffer', self.stream) + # self.stream.buffer for Python3, self.stream for Python2 + buffer.write(data) + buffer.flush() + except: + # We can do nothing if a write fails + raise def __getattr__(self, attr): return getattr(self.stream, attr) + iswindows = sys.platform.startswith('win') isosx = sys.platform.startswith('darwin') |