Add a new window that can be opened from the config that allows
reporting messages and listings that NoSoliciting either didn't filter
but should have or did filter but shouldn't have.
This comes with the added benefit of showing why (both in the
reporting window and the log) a message was filtered for easier
debugging.
Main filters (e.g. RMT, RP, FC) can now be fully specified by the
definitions file, allowing entire new classes of filters to be added
without a plugin update.
Definitions for the built-in filters (RMT, FC, and RP) are now
downloaded from the git repo on plugin start and whenever the update
button is pressed. This will allow faster response to messages that
slip through, as updates can be pushed right away without needing to
release a new version.
After a successful download, the plugin writes the result to a cache
file in its config directory. In the event a download fails, the
plugin will fall back to that cached file. If that cached file does
not exist or fails to deserialise, the plugin will fall back to a file
included with each release after this commit called
default_definitions.yaml. If that file is missing (really only
possible because the user deleted it), an exception will be thrown.
Free Company recruitment messages and roleplaying advertisements are
now able to be filtered using built-in filters, hopefully making shout
chat and the Party Finder more bearable. As always, these are optional
filters (both default to disabled).