User:Where/rcff
From Wikipedia, the free encyclopedia
[edit] My vandal-fighting tool
All scripts on this page need perl and Net::IRC.
Contents |
I use this script for vandal-fighting. Beware that it is difficult to use and only works under Linux. I have only tested it under KDE with the focus protection level (set in the control center) set to "extreme". The script pops up a firefox window every time an anon-IP edits (except for talk pages) or somebody creates a new page.
#!/usr/bin/perl use Net::IRC; use strict; our $irc = new Net::IRC; our $conn = $irc->newconn(Nick => "Where" . int(rand(999)), Server => "browne.wikimedia.org", Port => 6667, Ircname => "W"); $conn->add_handler("public", \&onPublic); $conn->add_handler("376", \&onConnect); $irc->start; sub onConnect { our $self = shift; $self->join("#en.wikipedia"); } sub onPublic { our $self = shift; our $event = shift; our ($rawMessage) = $event->args; if ($event->nick eq "rc") { if (0) { if ($rawMessage =~ /Diff:(.*)/) { print "Pre: $1\n"; $1 =~ m#(http://[^\s]+)#; print "La: " . $1 . "\n"; system "firefox '$1' &"; <STDIN>; }} $rawMessage =~ m#02(http://en.wikipedia.org[^ ]+)#; our $url = $1; $rawMessage =~ m#5\*.+03(.*)5\*# or die "blah"; our $user = $1; chop $user; chop $user; chop $user; if ($url =~ /[Tt]alk:/) {return;} if ($url =~ /Sandbox/) {return;} if ($url =~ /Articles for deletion/) {return;} if ($url =~ /Wikipedia:Introduction/) {return;} chop $rawMessage; if ($user =~ m#^[\d\.]+$#) { &act($url); } if ($rawMessage =~ /N\x{03}10/) { print "New\n"; &act($url); } } } sub act { our $ffWindows = `xwininfo -root -children|grep firefox-bin|wc -l`; chomp $ffWindows; if ($ffWindows < 81) { #the first FF window is 11; each next one adds 7; this means 116 is for 15 windows our $diffUrl = shift; system "firefox '$diffUrl'&"; } return; }
[edit] AIV notify script
This script pops up a firefox window whenever somebody modifies WP:AIV (unless the edit summary makes it clear that an admin is editing it).
#!/usr/bin/perl #Filename: aiv.pl #You need perl and Net::IRC to run this #People unfortunate enough to be using Windows can use ActivePerl: http://activeperl.com/Products/ActivePerl/ (be sure to then install Net::IRC) #People fortunate enough to be using Debian or one of its derivatives (ex. Ubuntu/Kubuntu) can just apt-get libnet-irc-perl #Commands to be typed on the commandline when someone adds to AIV our $browserCommand = "firefox http://en.wikipedia.org/wiki/WP:AIV&"; our $beepCommand = "xterm -e \"printf '\\a';sleep 1\""; #--------------------------------------------------------------------------- #If you don't speak perl, you probably don't want to edit below this point #--------------------------------------------------------------------------- use Net::IRC; use strict; our $irc = new Net::IRC; our $conn = $irc->newconn(Nick => "Where" . int(rand(999)), Server => "browne.wikimedia.org", Port => 6667, Ircname => "W"); $conn->add_handler("public", \&onPublic); $conn->add_handler("376", \&onConnect); $irc->start; sub onConnect { our $self = shift; $self->join("#en.wikipedia"); } sub onPublic { our $self = shift; our $event = shift; our ($rawMessage) = $event->args; if ($event->nick eq "rc") { if ($rawMessage =~ /Wikipedia:Administrator intervention against vandalism/) { if (!($rawMessage =~ /empty/i) && !($rawMessage =~ /clear/i)) { #Don't include admins clearing the list system "$beepCommand"; system "$browserCommand"; } } } }