Skip to content

Commit 2c70acf

Browse files
committed
colorize_nicks.py 33: add many improvements, features, and fixes
Changes: - Remove the VALID_NICK regex to not be dependent on RFC spec and change the loop to split only on spaces, so the nick regex is free to match any suffix. - Add nick_prefixes and nick_suffixes options to configure charset affixes. - Replace the default 'greedy' matching with improved 'lazy' matching, because 'greedy' matches nicks incorrectly and crashes weechat. Thus remove ignore_nicks_in_urls option, since 'lazy' matching does not match nicks in substrings. closes #133 and #197. Rationale: - The greedy matching code recolors duplicated strings because of the way replace() works, so it crashes weechat on multiple duplicated nicks. - #259 does not really prevent that, since it can still be reproduced by mentioning a short nick e.g. F1, repeatedly in a message. - It can be fixed by iterating on unique words, but it still colorizes nicks in substrings if a nick is mentioned before (e.g. alice https://www.alice.com), hence the option ignore_nicks_in_urls fails. - Replace hook_modifier() with hook_line() for a more granular parsing (e.g. prefix is separated from message, get filtered lines, etc). closes #70, closes #135. - Add preserving of message colors logic. closes #49, closes #175. - Add irc_only option to ignore non IRC messages (i.e. set buffer restrictions: plugin = irc, tags = irc_privmsg and irc_notice, type = channel and private). - Add do not colorize nicks in filtered messages, and colorize_filtered option. - Add colorizing of IRC prefixes and nicks on IRC private buffers. - Update colorized_input_cb() with the changes, and add decoding of IRC colors from input. - Update config_init() parsing of options. - Remove 'so,root' from blacklist_nicks default option. (These nicks do not make sense for defaults.) - Change min_nick_length default option to 1. (Single char nicks should not be excluded by default.) - Remove hook_modifier() that has the modifier colorize_nicks. (Is it possible to pass custom modifiers?) - Replace % formatting strings with f-strings, " with ', and some code to use the := operator. - Update identifiers, comments, and add some whitespace in code for readability. - Remove unused global keywords and add error handlings. - Remove utf-8 encoding header, add SPDX copyright + license tags, and add upstream link.
1 parent c779116 commit 2c70acf

File tree

1 file changed

+774
-255
lines changed

1 file changed

+774
-255
lines changed

0 commit comments

Comments
 (0)