]> xmof Git - DeDRM.git/commitdiff
Another Python2 Bugfix for Obok
authorNoDRM <no_drm123@protonmail.com>
Sat, 6 Aug 2022 17:57:20 +0000 (19:57 +0200)
committerNoDRM <no_drm123@protonmail.com>
Sat, 6 Aug 2022 17:57:20 +0000 (19:57 +0200)
Obok_plugin/obok/obok.py
Other_Tools/Kobo/obok.py

index a986965a769203f83e8f3aa0c9f4e59a2e78179b..4de76446d55fa9a82e8cc740308db2d21aef26bb 100644 (file)
@@ -224,10 +224,17 @@ class SafeUnbuffered:
         if self.encoding == None:
             self.encoding = "utf-8"
     def write(self, data):
-        if isinstance(data,str):
+        if isinstance(data,str) or isinstance(data,unicode):
+            # str for Python3, unicode for Python2
             data = data.encode(self.encoding,"replace")
-        self.stream.buffer.write(data)
-        self.stream.buffer.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)
 
index ae088008949b2cc83d19c64d95f9d317670f71a3..c26d4221fc46d4b2cd979db218dab20bca4448e1 100644 (file)
@@ -276,12 +276,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)
+        
 
 
 class KoboLibrary(object):