Closed kenneaal closed 2 years ago
Further information: I've had a quick peek around, and the problem stems from the handling of values in tags. Pydle sets value to True if it doesn't exist, and this should work. However, later on an isinstance(value, str) apparently passes as true, but the value is actually a Boolean. As you cannot run .replace on a boolean, this causes the AttributeError. This would also cause an exception a few lines later in the regexp match attempt, as pattern.finditer() cannot run on a non-string/bytes object.
This can be resolved by adding exception handling to the regexp matching and replace attempt. However, a better fix may be correctly handling passed exceptions from the asyncio future in handle_forever().
duplicate of #148.
Will be fixed in release later today.
Something(TM) seems to be going wrong with IRCv3 tags - most likely the reply tag - which causes pydle to crash its handler loop and time out from IRC, while the process itself is left running.
Stack: