]> jfr.im git - irc/weechat/qweechat.git/commitdiff
More fixes.
authorAbhilash Raj <redacted>
Sat, 5 Jun 2021 17:32:45 +0000 (10:32 -0700)
committerAbhilash Raj <redacted>
Sat, 5 Jun 2021 17:32:45 +0000 (10:32 -0700)
- Use logging instead of print to silence errors when possible.
- Parse object types as string instead of bytes.

qweechat/input.py
qweechat/weechat/color.py
qweechat/weechat/protocol.py

index 1ee7bd9b5acac96dabfd3dc9931cb09aa01a90ff..9d81c1fea0cfc801574eee06a316d879b5fe53d9 100644 (file)
@@ -32,7 +32,7 @@ class InputLineEdit(QtWidgets.QLineEdit):
     textSent = QtCore.Signal(str)
 
     def __init__(self, scroll_widget):
-        super().__init__(scroll_widget)
+        super().__init__()
         self.scroll_widget = scroll_widget
         self._history = []
         self._history_index = -1
index d7320064a1945c559e7a34fe7213e8dfc0243537..b11bffcefb0d9fbcea36290811de1f8dc76ba113 100644 (file)
@@ -21,6 +21,7 @@
 #
 
 import re
+import logging
 
 RE_COLOR_ATTRS = r'[*!/_|]*'
 RE_COLOR_STD = r'(?:%s\d{2})' % RE_COLOR_ATTRS
@@ -75,6 +76,9 @@ WEECHAT_BASIC_COLORS = (
     ('white', 0))
 
 
+log = logging.getLogger(__name__)
+
+
 class Color():
     def __init__(self, color_options, debug=False):
         self.color_options = color_options
@@ -92,7 +96,7 @@ class Color():
             index = int(color)
             return '\x01(Fr%s)' % self.color_options[index]
         except:  # noqa: E722
-            print('Error decoding WeeChat color "%s"' % color)
+            log.debug('Error decoding WeeChat color "%s"' % color)
             return ''
 
     def _convert_terminal_color(self, fg_bg, attrs, color):
@@ -100,7 +104,7 @@ class Color():
             index = int(color)
             return '\x01(%s%s#%s)' % (fg_bg, attrs, self._rgb_color(index))
         except:  # noqa: E722
-            print('Error decoding terminal color "%s"' % color)
+            log.debug('Error decoding terminal color "%s"' % color)
             return ''
 
     def _convert_color_attr(self, fg_bg, color):
@@ -123,7 +127,7 @@ class Color():
             return self._convert_terminal_color(fg_bg, attrs,
                                                 WEECHAT_BASIC_COLORS[index][1])
         except:  # noqa: E722
-            print('Error decoding color "%s"' % color)
+            log.debug('Error decoding color "%s"' % color)
             return ''
 
     def _attrcode_to_char(self, code):
index 4a69378ee73b0e60a666241bb6eb0469fe70f99b..4e1514da8814e1d5b1d64e6c40c2c053c9b84be5 100644 (file)
@@ -147,7 +147,7 @@ class Protocol:
         if len(self.data) < 3:
             self.data = ''
             return ''
-        objtype = bytes(self.data[0:3])
+        objtype = self.data[0:3].decode()
         self.data = self.data[3:]
         return objtype
 
@@ -197,12 +197,9 @@ class Protocol:
     def _obj_str(self):
         """Read a string in data (length on 4 bytes + content)."""
         value = self._obj_len_data(4)
-        if value is None:
-            return None
-        try:
-            return value.decode()
-        except AttributeError:
-            return value
+        if value in ("", None):
+            return ""
+        return value.decode()
 
     def _obj_buffer(self):
         """Read a buffer in data (length on 4 bytes + data)."""
@@ -227,8 +224,8 @@ class Protocol:
         Read a hashtable in data
         (type for keys + type for values + count + items).
         """
-        type_keys = self._obj_type().decode()
-        type_values = self._obj_type().decode()
+        type_keys = self._obj_type()
+        type_values = self._obj_type()
         count = self._obj_int()
         hashtable = WeechatDict()
         for _ in range(count):
@@ -247,7 +244,7 @@ class Protocol:
         keys_types = []
         dict_keys = WeechatDict()
         for key in list_keys:
-            items = list(item for item in key.split(':'))
+            items = key.split(':')
             keys_types.append(items)
             dict_keys[items[0]] = items[1]
         items = []
@@ -258,7 +255,6 @@ class Protocol:
             for _ in enumerate(list_path):
                 pointers.append(self._obj_ptr())
             for key, objtype in keys_types:
-                objtype = objtype
                 item[key] = self._obj_cb[objtype]()
             item['__path'] = pointers
             items.append(item)
@@ -296,7 +292,7 @@ class Protocol:
 
     def _obj_array(self):
         """Read an array of values in data."""
-        type_values = self._obj_type().decode()
+        type_values = self._obj_type()
         count_values = self._obj_int()
         values = []
         for _ in range(count_values):
@@ -328,7 +324,7 @@ class Protocol:
         # read objects
         objects = WeechatObjects(separator=separator)
         while len(self.data) > 0:
-            objtype = self._obj_type().decode()
+            objtype = self._obj_type()
             value = self._obj_cb[objtype]()
             objects.append(WeechatObject(objtype, value, separator=separator))
         return WeechatMessage(size, size_uncompressed, compression,