A few people have convinced me to start work on a side project (My main
project as always is ElectronicMe), an extension short discussion ended
up calling PatternFilters.
Currently we have a number of blacklist extensions -- SpamBlacklist,
SpamRegex, RegexBlock, UsernameBlacklist, TitleBlacklist, BadImagesList,
BlockTitles, etc... -- and there is very little consistency among them.
Some match plaintext and some match regexps. Some have a specialpage
interface and some use a article page.
The idea of PatternFilters is a single extension replacing all of these
with one extension founded around the singular principle all of these
extensions share, Filtering (blacklisting and whitelisting) some part of
user interaction using some sort of pattern.
However other than just combining a mess of extensions together I hope
to improve some other things. Primarily making the interface for
filtering things more intuitive. Firstly, using a special page rather
than a page on the wiki with cryptic syntax. And secondly, giving a
helpful interface on that special page which helps give an estimate on
what the filter will affect on the wiki. Just as an extra, it could
easily validate a regex on it's own before adding it to avoid issues
like with the other blacklists where a bad regex breaks the whole
filter. As well the extension would properly support global/local modes.
For example, if you were to go to [[Special:PatternFilters]], select
global, select blacklist, select regex, select 'block existing users',
'block user creation', and 'block title editing' with 'Restrict to
namespaces' on User and User_talk, and fill in the pattern 'Fo+Bar' then
hit the check button the page would help give an estimation on what the
filter would do by listing out existing usernames which match that
regex, and also existing pages which match it as well. Things like url
backlisting would work nicely to with the externalinks table.
For a little more ui simplicity I plan to support wildcards as well. The
text blacklist of course can't go hunting through the entire DB, so
rather than that it'll display a text field you can use to check and see
if a filter will catch something inside a block of text, probably even
highlight it. Also separate from url and title, comments could be
blacklisted as well.
Of course some checks are DB heavy, so there's a special right already
in so you can disable use of those simply by not giving out that right.
Currently I only have a small special page but the start of it can be
I've also created some dev wiki dedicated to the extension (Don't want
filtering experiments going awry on my demo wiki):
The number of wiki is for a variance in testing. The root spam.dev wiki
is the one that is configured as the global db so I want to test out an
interface change when you are editing the global db directly as a global
db instead of pure local. zeta and omega are normal and so you can test
global and local blacklists, probably add a global blacklist, whitelist
on one wiki, and test something on both. Though I may tweak it and turn
one of those into a local only setup to test the interface for that.
Currently there isn't much at all to test or do, but once the
PatternFilter extension, well... filters ;) then I'll consider tweaking
my right configurations on the wikis to allow people to grant themselves
the check, heavy, immunity, global, and edit rights for the patterns.
~Daniel Friesen(Dantman, Nadir-Seen-Fire) of:
-The Nadir-Point Group (http://nadir-point.com
--It's Wiki-Tools subgroup (http://wiki-tools.com
--The ElectronicMe project (http://electronic-me.org
-And Wikia ACG on Wikia.com