Benutzer:MelancholieBot/globalRSS.pl

Us der alemannische Wikipedia, der freie Dialäkt-Enzyklopedy
  1. !/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 ($_ =~ /^

<a (name|id)="([^"]+)" (id|name)="\2"><\/a>$/) {
  $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>$/ || $_ =~ /^