]> jfr.im git - irc/weechat/qweechat.git/blobdiff - qweechat/weechat/protocol.py
More fixes.
[irc/weechat/qweechat.git] / qweechat / weechat / protocol.py
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,