colorize_nicks.py 33: add many improvements, features, and fixes #574
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Script info
Description
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
andnick_suffixes
options to configure charset affixes.Replace the default 'greedy' matching with improved 'lazy' matching, because 'greedy' matches nicks incorrectly and crashes weechat.
'lazy' matching does not match nicks in substrings, so remove
ignore_nicks_in_urls
option.fixes [colorize_nicks.py] Freeze on lines with repeated nick and greedy_matching = on #133 and colorize_nicks.py: Freezes weechat with too many nicks on one line #197.
Rationale:
replace()
works, so it crashes weechat on multiple duplicated nicks.ignore_nicks_in_urls
fails.Replace
hook_modifier()
withhook_line()
for a more granular parsing (e.g. prefix is separated from message, get filtered lines, etc).Add preserving of message colors logic.
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.
Checklist (script update)
script_name.py X.Y: …