Benutzer:MelancholieBot/globalRSS.pl
- !/usr/bin/perl
use URI::Escape; use LWP::UserAgent; $status = $ARGV[0];#~dummy! $domain = "meta.wikimedia"; $hasChanged = 1;
my ($sec, $min, $hour, $day, $month, $year, $dow, $doy, $null) = gmtime(time); my @months = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); my @days = ("Son", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"); if ($dst) {$diff = "0200";} else {$diff = "0100";} if ($sec < 10) {$sec = "0".$sec;} if ($min < 10) {$min = "0".$min;} if ($hour < 10) {$hour = "0".$hour;} $year += 1900;
if ($domain eq "meta.wikimedia") {
$fileName = "GN"; $title = "WikimediaNotifier"; $page = "Global_notifications"; $description = "a global notification system for all Wikimedia wikis"; $lang = "en"; $imgPath = "wikipedia/meta/b/bc"; $imgTitle = "Wikimedia notification system"; $template = "Global_notifications"; $changeTemplate = $template; $botPrefix = "GlobalNotifRSS"; $feed = "RSS_feed"; $end = "See_also";
}
if ($hasChanged) {
for (my $j = 1; $j <= 1; $j++) { $url = "http://$domain.org/w/index.php?title=$template&action=render&stable=0&oldid=cur"; $file = "$fileName.html"; $userAgent = LWP::UserAgent->new(); $userAgent->agent("$botPrefix-bot"); $httpRequest = HTTP::Request->new("GET", $url); $serverResponse = $userAgent->request($httpRequest, $file); if ($serverResponse->is_error()) { print "Error code: ", $serverResponse->code(), "\n"; print "Error message: ", $serverResponse->message(), "\n"; print "Retrying to download in ? seconds ...\n"; sleep(60);#++/*2 redo; } } open HTM, "$fileName.html"; $i = 0; while (<HTM>) {
if ($_ =~ /^
$i++; $RAM{$i} = ""; $hash{$i} = "\#$2"; } if ($_ =~ /class="mw-headline">([^<]+)</) {$topic{$i} = $1;}if ($_ =~ /^
<small( class="GN-update_[0-9]+")?>([0-9]{4})-([0-9]{2})-([0-9]{2})<\/small><\/span>/) { $status{$i} = $1; $iYear{$i} = $2; $iMonth{$i} = $3-1; $iDay{$i} = $4; $iDay{$i} =~ s/^0//; $status{$i} =~ s/^ class="GN-update_([0-9]+)"$/$1/; } if ($_ =~ /^
<a (name|id)="$end" (id|name)="$end"><\/a><\/p>$/ || $_ =~ /^