Wikipedia:Statistik/pageViews.pl
Us der alemannische Wikipedia, der freie Dialäkt-Enzyklopedy
- !/usr/bin/perl
- This script was released by w:als:User:Melancholie under the GNU General Public License and Creative Commons by-sa (attribution + share alike); if you should improve this script, please tell me!
- Usage: See bottom (or just try ;-)
$project = $ARGV[0]; $date = $ARGV[1]; $hour = $ARGV[2]; if ($hour eq "") {
$hour = 0;
} else {
$hour =~ s/^\+(.+)$/$1/; $hour =~ s/^(-?)0([0-9])$/$1$2/; $hour =~ s/^(-?)0?([0-9]):?00$/$1$2/;
} $hour = $hour-1; if ($hour > 0) {$hour = 24 - $hour;} else {$hour = $hour * -1;} if ($hour < 10) {$hour = "0$hour";}
print "Preparing to analyse logs...\n";
if ($project eq "Wikimedia") {
open SUM, "$date/index.html";
while(<SUM>) {
#todo: Reduce for one column
if ($_ =~ />([a-z-]+)<\/a> - ([0-9,]+) /) {
$wikiCode = $1;
$wikiHits = $2;
$wikiHits =~ s/,//g;
# Before if(), or it would be -1 ;-)
$globalHits{$wikiCode} = $wikiHits;
if ($wikiHits < 100000 || $wikiCode =~ /(eo|simple|vo)/) {
$onePercent{$wikiCode} = $wikiHits/100;
$topm = 10000; if ($wikiCode =~ /[ev]o/) {$topm = 100000;}
$tenthOfPermille{$wikiCode} = $wikiHits/$topm;
# Only count the >[1/million] pages; should not affect anything!?
$onePpm{$wikiCode} = $wikiHits/1000000;
}
}
}
} else {
open SUM, "totalHits-$date.txt";
while(<SUM>) {
if ($_ =~ /^([0-9]+) /) {
$totalHits = $1;
$onePercent = $1/100;
$topm = 10000; if ($project =~ /[ev]o/) {$topm = 100000;}
$tenthOfPermille = $totalHits/$topm;
$tenthOfPermille =~ s/\.[0-9]+$//;
if ($tenthOfPermille < 1) {
$tenthOfPermille = 1;
}
# Only count the >[1/million] pages; should not affect anything!?
$onePpm = $totalHits/1000000;
}
}
} close SUM;
$max = 0; my %pageViews; my @pageViewList; my @searchTermList; my @wiktSearchTermList; if ($ARGV[0] && $ARGV[1] && $hour =~ /^[0-9]{2,2}$/) {
open LIST, "pagecounts/list.txt";
if ($project eq "Wikimedia") {
print " IMPORTANT: You need much more than 200 MB of free memory (RAM + swap)!\n";
print " | Otherwise press Ctrl+C to abort!\n";
}
while(<LIST>) {
if ($_ =~ /^(pagecounts-[0-9]+-[0-9]+)\.gz$/) {
open IN, "pagecounts/$1";
print " Analysing $1\n";
while(<IN>) {
if ($_ =~ /^([a-z-]+) ([^ ]+) ([0-9]+) ([0-9]+)$/) {
$wiki = $1;
$page = $2;
$views = $3;
if (($project eq "Wikimedia" && ($globalHits{$wiki} < 100000 || $wiki =~ /(eo|simple|vo)/) && $views > $onePpm{$wiki} && $globalHits{$wiki} > 0) || ($wiki eq $project && $views > $onePpm)) {
$page =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C", hex($1))/eg;
# or:
# use URI::Escape;
# $page = uri_escape($page);
# or:
# $page =~s/([^a-zA-Z0-9_\.\-])/sprintf("%%%02lx", ord($1))/esg;
$page =~ s/\/[wW]iki\/(.+)$/$1/;
if ($page !~ /(index2?\.php|skins-1\.5\/.+|images\/.+?\.png|_fichiers|protection\.php|sort_none\.gif|sort_up\.gif|sort_down\.gif|result\.php|\/statistik\/.+?\.pl|\/sf-forum|prev\=\/search\?q|\*.php|http:\/\/|\/irc:\/\/chat|^\||\$1|wiki\/|xml:lang=|\/favicon\.ico|^\/?headbg\.jpg|^\/?bullet\.gif|^\/?user\.gif|poweredby_mediawiki_88x31|wikimedia-button|^\\|wikipedia\.org|opensearch_desc\.php|errors\.php|<\/?a>|Text\/Text|\/[0-9\.]+alpha|head_auth\.php|class\.php|mailto:|\@[A-Za-z]|\.php|\%|=|�)/i && !($page !~ /(Bild|Image):/i && $page =~ /\.(gif|jpg|jpeg|png|svg)$/i)) {
if (($page =~ /:Statistik\/Suchen\/(.+)$/i || $page =~ /:Statistics\/search_?(e|term)s?\/(.+)$/i) && $page !~ /[\\\[\{\}\]]/ && $project ne "Wikimedia") {
# Use the following only if wiki page titles are forced to uppercase!
$searchTerm = $1;
$searchTerm =~ s/^\++//;
$searchTerm =~ s/\++$//;
$searchTerm =~ s/[\+_]+/ /g;
if ($searchTerm =~ /(^|\/| )\^?[#\*<>'"] ?[A-ZÄÖÜa-zäèéöüß]+/) {
$searchTerm =~ s/(^|\/| )\^?[#\*<>'"]( )?([A-ZÄÖÜa-zäèéöüß]+)/$1$3/;
}
if ($searchTerm =~ /[A-ZÄÖÜa-zäèéöüß]+ ?[#\*'"]( |$)/) {
$searchTerm =~ s/([A-ZÄÖÜa-zäèéöüß]+)( )?[#\*'"]( |$)/$1$3/;
}
# Only works for ASCII:
if ($searchTerm =~ /[A-Z]{5,9}/) {$searchTerm = lc($searchTerm);}
# or:
# =~ tr/A-Z/a-z/;
if ($searchTerm !~ /iktionary\//) {
$searchTerm = ucfirst($searchTerm);
# The following somehow has to be done in a different manner, of course!
$searchTerm =~ s/^ä/Ä/;
$searchTerm =~ s/^ö/Ö/;
$searchTerm =~ s/^ü/Ü/;
$searchTerm =~ s/ a([a-zäèéöü]{3,3})/ A$1/g;
$searchTerm =~ s/ b([a-zäèéöü]{3,3})/ B$1/g;
$searchTerm =~ s/ c([a-zäèéöü]{3,3})/ C$1/g;
$searchTerm =~ s/ d([a-zäèéöü]{3,3})/ D$1/g;
$searchTerm =~ s/ e([a-zäèéöü]{3,3})/ E$1/g;
$searchTerm =~ s/ f([a-zäèéöü]{3,3})/ F$1/g;
$searchTerm =~ s/ g([a-zäèéöü]{3,3})/ G$1/g;
$searchTerm =~ s/ h([a-zäèéöü]{3,3})/ H$1/g;
$searchTerm =~ s/ i([a-zäèéöü]{3,3})/ I$1/g;
$searchTerm =~ s/ j([a-zäèéöü]{3,3})/ J$1/g;
$searchTerm =~ s/ k([a-zäèéöü]{3,3})/ K$1/g;
$searchTerm =~ s/ l([a-zäèéöü]{3,3})/ L$1/g;
$searchTerm =~ s/ m([a-zäèéöü]{3,3})/ M$1/g;
$searchTerm =~ s/ n([a-zäèéöü]{3,3})/ N$1/g;
$searchTerm =~ s/ o([a-zäèéöü]{3,3})/ O$1/g;
$searchTerm =~ s/ p([a-zäèéöü]{3,3})/ P$1/g;
$searchTerm =~ s/ q([a-zäèéöü]{3,3})/ Q$1/g;
$searchTerm =~ s/ r([a-zäèéöü]{3,3})/ R$1/g;
$searchTerm =~ s/ s([a-zäèéöü]{3,3})/ S$1/g;
$searchTerm =~ s/ t([a-zäèéöü]{3,3})/ T$1/g;
$searchTerm =~ s/ u([a-zäèéöü]{3,3})/ U$1/g;
$searchTerm =~ s/ v([a-zäèéöü]{3,3})/ V$1/g;
$searchTerm =~ s/ w([a-zäèéöü]{3,3})/ W$1/g;
$searchTerm =~ s/ x([a-zäèéöü]{3,3})/ X$1/g;
$searchTerm =~ s/ y([a-zäèéöü]{3,3})/ Y$1/g;
$searchTerm =~ s/ z([a-zäèéöü]{3,3})/ Z$1/g;
$searchTerm =~ s/ ä([a-zäèéöü]{3,3})/ Ä$1/g;
$searchTerm =~ s/ ö([a-zäèéöü]{3,3})/ Ö$1/g;
$searchTerm =~ s/ ü([a-zäèéöü]{3,3})/ Ü$1/g;
$searchTerm =~ s/ ?- ?a/-A/g;
$searchTerm =~ s/ ?- ?b/-B/g;
$searchTerm =~ s/ ?- ?c/-C/g;
$searchTerm =~ s/ ?- ?d/-D/g;
$searchTerm =~ s/ ?- ?e/-E/g;
$searchTerm =~ s/ ?- ?f/-F/g;
$searchTerm =~ s/ ?- ?g/-G/g;
$searchTerm =~ s/ ?- ?h/-H/g;
$searchTerm =~ s/ ?- ?i/-I/g;
$searchTerm =~ s/ ?- ?j/-J/g;
$searchTerm =~ s/ ?- ?k/-K/g;
$searchTerm =~ s/ ?- ?l/-L/g;
$searchTerm =~ s/ ?- ?m/-M/g;
$searchTerm =~ s/ ?- ?n/-N/g;
$searchTerm =~ s/ ?- ?o/-O/g;
$searchTerm =~ s/ ?- ?p/-P/g;
$searchTerm =~ s/ ?- ?q/-Q/g;
$searchTerm =~ s/ ?- ?r/-R/g;
$searchTerm =~ s/ ?- ?s/-S/g;
$searchTerm =~ s/ ?- ?t/-T/g;
$searchTerm =~ s/ ?- ?u/-U/g;
$searchTerm =~ s/ ?- ?v/-V/g;
$searchTerm =~ s/ ?- ?w/-W/g;
$searchTerm =~ s/ ?- ?x/-X/g;
$searchTerm =~ s/ ?- ?y/-Y/g;
$searchTerm =~ s/ ?- ?z/-Z/g;
$searchTerm =~ s/ ?- ?ä/-Ä/g;
$searchTerm =~ s/ ?- ?ö/-Ö/g;
$searchTerm =~ s/ ?- ?ü/-Ü/g;
# or subst in output below:
# $letter/term
}
if ($searchTerm =~ /(aü|äü|üä)/i) {
$searchTerm =~ s/(Aü|Äü|Üä|Uä)/Äu/g;
$searchTerm =~ s/(aü|äü|üä)/äu/g;
} elsif ($searchTerm =~ /aer$/) {
$searchTerm =~ s/aer$/är/;
}
$page = "Statistics/loggedSearches/$searchTerm";
}
if ($project eq "Wikimedia") {
# And now comes a potential RAM blaster (you better should use Linux, to "nice" this ;-)
$wikiPage = "$wiki:-:$page";
if (!$pageViews{$wikiPage}) {$pageViews{$wikiPage} = 0;}
$pageViews{$wikiPage} = $pageViews{$wikiPage} + $views;
if (!$max{$wiki}) {$max{$wiki} = 0;}
if ($pageViews{$wikiPage} > $max{$wiki}) {$max{$wiki} = $pageViews{$wikiPage};}
} else {
if (!$pageViews{$page}) {$pageViews{$page} = 0;}
$pageViews{$page} = $pageViews{$page} + $views;
if ($pageViews{$page} > $max) {$max = $pageViews{$page};}
}
}
}
}
}
close IN;
}
}
close LIST;
$uniqueVisitors = 0;
$loggedSearches = 0;
if ($project ne "Wikimedia") {open VIS, ">uniqueVisitors-$date.txt";}
if ($project eq "Wikimedia") {
my $langCode = "aa";
# And now comes a potential swap space blaster (you really should use Linux, to "nice" that one ;-)
print "Sorting data...\n";
foreach (keys %pageViews) {
if ($pageViews{$_} < 3) {
delete $pageViews{$_};
} else {
$curKey = $_;
$curWiki = $curKey;
$curWiki =~ s/^([a-z-]+):-:([^ ]+)$/$1/;
if ($pageViews{$curKey} < $tenthOfPermille{$curWiki}) {
delete $pageViews{$curKey};
}
}
}
my @abc = sort keys %pageViews;
print " Processing data from $langCode wiki ...";
$arrayPos = -1;
foreach (@abc) {
$key = $_;
$arrayPos++;
if ($key =~ /^([a-z-]+):-:([^ ]+)$/) {
$code = $1;
$langPage = $2;
#if ($langCode =~ /(commons|meta|species)/) {
# $subDom = "$langCode.wikimedia";
#} else {
$subDom = "$langCode.wikipedia";
#}
if ($code ne $langCode) {
print " creating chart ...";
mkdir "$date/$langCode" unless -d "$date/$langCode";
open OUT, ">$date/$langCode/index.html";
print OUT "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
print OUT "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n\n";
print OUT "<head>\n";
print OUT "<meta name=\"robots\" content=\"noindex, noarchive, nosnippet\" />\n";
print OUT "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n";
print OUT "<title>Wikimedia wiki page Hits for $langCode</title>\n";
print OUT "</head>\n\n";
print OUT "<body style=\"background-color: #FFFFF0; margin: 10px;\">\n";
print OUT "
\n";
$zero = ""; if ($langCode =~ /[ev]o/) {$zero = "0";}
print OUT "
\n"; print OUT "
- \n"; my $i = $max{$langCode}+1; my $j = 0; # Or with values? for ($i > 0; $i = $i-1;) { foreach (@pageViewList) { $item = $_; if ($item =~ /^
- ([0-9]+)<\/b>/ && $1 eq $i) { if ($j < 1000 && $item !~ /(\/A_simple_and_harmless_Visitor_Counter|:Statistik\/Suchen\/)/i) { $item =~ s/([0-9])([0-9]{3,3})<\/b>/$1,$2<\/b>/; $item =~ s/([0-9])([0-9]{3,3}),/$1,$2,/; print OUT $item; $j++; } } } } print OUT "
\n\n";
$yearMonth = $date;
$yearMonth =~ s/[0-9]{2,2}$//;
print OUT "Missing your article in top 1000? Just spam it upwards ;-)
No, seriously: Just have a look on the <a href=\"http://stats.grok.se/$langCode/$yearMonth/\">Wikipedia article traffic statistics</a>!\n";
print OUT "
\n
\n
\n"; print OUT "
\n";
print OUT "</body>\n</html>";
close OUT;
@pageViewList = ();
$langCode = $code;
print " done\n Processing data from $code wiki ...";
}
$percent = $pageViews{$key}/$onePercent{$langCode};
$percent =~ s/\.([0-9]{2,2}).+$/.$1/;
push(@pageViewList, "
- $pageViews{$key} [$percent %]: <a href=\"http://$subDom.org/wiki/$langPage\">$langPage</a>
- \n");
delete $pageViews{$key};
}
$abc[$arrayPos] = "";
}
} else {
for (my $i = $tenthOfPermille; $i <= $max; $i++) {
foreach (keys %pageViews) {
$key = $_;
if ($pageViews{$_} < $tenthOfPermille) {delete $pageViews{$_};}
if ($pageViews{$_} eq $i) {
if ($key =~ /\/A_simple_and_harmless_Visitor_Counter/i) {
$uniqueVisitors = $pageViews{$_};
# It's a JavaScript-based counter (needing cookies being enabled)! [JS: ~95% / C: ~99%]
# ~95%: TheCounter.com/stats
# ~99%: WebHits.de/deutsch/webstats.html
$allUniqueVisitors = ($uniqueVisitors/94)*100;
$allUniqueVisitors =~ s/^([0-9]+)\..+$/$1/;
print VIS "$allUniqueVisitors unique visitors (based on JavaScript and cookies, not IPs)";
} elsif ($key =~ /^Statistics\/loggedSearches\/(.+)$/i) {
if ($key =~ /\/deWiktionary\/(.+)$/i) {
$searchTerm = $1;
#ToDo: for or while
if ($searchTerm =~ /(be|[^is]cht?|ck|[^i]de|[^w]eit|[^b]el|fer?|ft|ge|ien?|[^e]in|ke|le|me|mus|ne|nis|pe|re|rn|se|ße|st|tat|tät|ter?|tik|ion|tor?|tum|tz|inge?|ug|ung|uss?|ut|wang|ze|z|ache|burg|hafen|hause?n?|heim|hof|stadt|weiler|wort|wert|off|ende)( |$)/) {
$suffix = $1;
$searchTerm =~ s/(^| |-)([a-zäèéöüß]+)$suffix( |$)/$1\{\{subst:UCFIRST:$2$suffix\}\}$3/g;
}
if ($searchTerm =~ /(eit|schaft|ion|ung|ach|burg)en( |$)/) {
$suffix = $1;
$searchTerm =~ s/(^| |-)([a-zäèéöüß]+)$suffix\en( |$)/$1\{\{subst:UCFIRST:$2$suffix\}\}$3/g;
}
if ($searchTerm =~ /[äöü]/ && $searchTerm =~ /(chen|lein)( |$)/) {
$suffix = $1;
$searchTerm =~ s/(^| |-)([a-zäèéöüß]+)$suffix( |$)/$1\{\{subst:UCFIRST:$2$suffix\}\}$3/g;
}
if ($searchTerm =~ /inn?en(-| |$)/) {
$searchTerm =~ s/(^| |-)([a-zäèéöüß]+)inn?en(-| |$)/$1\{\{subst:UCFIRST:$2$\in\}\}$3/g;
}
if ($searchTerm =~ /niss?e( |$)/) {
$searchTerm =~ s/(^| |-)([a-zäèéöüß]+)niss?e( |$)/$1\{\{subst:UCFIRST:$2$\nis\}\}$3/g;
}
if ($searchTerm =~ /(ats|fts|eits|ngs)/) {
$suffix = $1;
$searchTerm =~ s/(^| |-)([A-ZÄÖÜa-zäèéöüß]+)$suffix([A-ZÄÖÜa-zäèéöüß-]+)( |$)/$1\{\{subst:UCFIRST:$2$suffix$3\}\}$4/g;
}
if ($searchTerm =~ /(m|n)f( |$)/) {
$suffix = "$1$\f";
$searchTerm =~ s/(^| |-)([a-zäèéöüß]+)$suffix( |$)/$1\{\{subst:UCFIRST:$2$suffix\}\}$3/g;
# For the following stuff most searches have already been done in lowercase ;-)
}
if ($searchTerm =~ /(bar|den|los|ieren|gt|ig|isch|lich|end|ten|rt|sh)( |$)/) {
$suffix = $1;
$searchTerm =~ s/(^| |-)([A-ZÄÖÜ])([a-zäèéöüß]+)$suffix( |$)/$1\{\{subst:LCFIRST:$2$3$suffix\}\}$4/g;
}
if ($searchTerm =~ /[dpkt]le?n?( |$)/) {
$searchTerm =~ s/([dpkt])l(e?)(n?)( |$)/$1$\l$2$3$4/g;
}
if ($searchTerm =~ /\{\{subst/) {
while ($searchTerm =~ /^(.*?)\{\{subst:UCFIRST:([^\}]+)\}\}(.*?)$/g) {
$sTs = "";
$revised = ucfirst($2);
$revised =~ s/^ä/Ä/;
$revised =~ s/^ö/Ö/;
$revised =~ s/^ü/Ü/;
$searchTerm = "$1$revised$3";
if ($3 =~ /^en( |$)/) {$sTs = "en$1";}
}
while ($searchTerm =~ /^(.*?)\{\{subst:LCFIRST:([^\}]+)\}\}(.*?)$/g) {
$sTs = "";
$revised = lcfirst($2);
$revised =~ s/^Ä/ä/;
$revised =~ s/^Ö/ö/;
$revised =~ s/^Ü/ü/;
$searchTerm = "$1$revised$3";
}
unshift(@wiktSearchTermList, "
- $pageViews{$_}: <a href=\"http://de.wiktionary.org/wiki/$searchTerm\" style=\"color: #ba0000;\">$searchTerm$sTs</a>
- \n");
} else {
unshift(@wiktSearchTermList, "
- $pageViews{$_}: <a href=\"http://de.wiktionary.org/wiki/$searchTerm\" style=\"color: #ba0000;\">$searchTerm</a>
- \n");
}
} elsif ($key !~ /iktionary\//) {
unshift(@searchTermList, "
- $pageViews{$_}: <a href=\"http://als.wikipedia.org/wiki/$1\" style=\"color: #ba0000;\">$1</a>
- \n");
}
$loggedSearches = $loggedSearches+$pageViews{$_};
} else {
# The JavaScript counter influences the overall sum!
# [With higher $i, $loggedSearches gets more exact]!
$realTotalHits = $totalHits-$pageViews{"Wikipedia:Statistik/Besucher/A_simple_and_harmless_Visitor_Counter"}-$loggedSearches;
$onePercent = $realTotalHits/100;
$percent = $pageViews{$_}/$onePercent;
$percent =~ s/\.([0-9]{2,2}).+$/.$1/;
unshift(@pageViewList, "#$pageViews{$_} [$percent %]: $key\n");
delete $pageViews{$_};
}
}
}
}
}
if ($project ne "Wikimedia") {
close VIS;
open OUT, ">pageHits-$date.txt";
print OUT "Hits/views per page; including those of bots, reloads etc. ($date, UTC$ARGV[2])\n\n";
for (my $p = 0; $p < 5000; $p++) {
print OUT $pageViewList[$p];
}
close OUT;
open ST, ">$date/searchTerms.htm";
print ST "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
print ST "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n\n";
print ST "<head>\n";
print ST "<meta name=\"robots\" content=\"noindex, noarchive, nosnippet\" />\n";
print ST "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n";
print ST "<title>Protokolyrte Suechaafróga</title>\n";
print ST "</head>\n\n";
print ST "<body style=\"background-color: #FFFFF0; margin: 10px;\">\n";
print ST "
\n";
#print ST "Search terms for not found articles ($date, UTC$ARGV[2]); possible inexactness of around +5 (Cookies, Squids)\n\n";
print ST "
Èrschtbuechschtabe vo alle Werter mit meh as 3 Buechschtabe sind mit ucfirst(albert einstein) outomatisch umgwandlet worre!
\n"; print ST "
\n\n";
print ST "</body>\n</html>"; close ST; open WST, ">$date/wiktSearchTerms.htm"; print WST "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"; print WST "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n\n"; print WST "<head>\n"; print WST "<meta name=\"robots\" content=\"noindex, noarchive, nosnippet\" />\n"; print WST "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"; print WST "<title>Protokollierte Suchanfragen</title>\n"; print WST "</head>\n\n"; print WST "<body style=\"background-color: #FFFFF0; margin: 10px;\">\n";
print WST "
\n";
#print WST "Search terms for not found articles ($date, UTC$ARGV[2]); possible inexactness of around +5 (Cookies, Squids)\n\n";
print WST "
Achtung: Ungenauigkeiten von etwa +5 mgl. (Cookies, Squids); enthält trotz autom. Groß-/Kleinschreibkorrektur noch massenhaft Rechtschreibfehler!
\n"; print WST "
\n\n";
print WST "</body>\n</html>";
close WST;
open OLD, "totalHits-$date.txt";
while(<OLD>) {
if ($_ =~ /^([0-9]+) /) {
$totalLine = $_;
$fixedTotal = $1-$uniqueVisitors-$loggedSearches;
$totalLine =~ s/^[0-9]+ (.+)$/$fixedTotal\ $1/;
}
}
close OLD;
open FIX, ">totalHits-$date.txt";
print FIX $totalLine;
close FIX;
}
} else {
print "\nYou have to specify your project code and the exact day and hour (UTC) to begin with!\n"; print " If you want to evaluate the day 2008-02-17, for example:\n"; print " If your wiki's timezone is UTC+2 or more, you have to type \"perl pageHits.pl de 20080216 +2\"\n"; print " If your wiki's timezone is UTC-5 [< +2], you have to type \"perl pageHits.pl en 20080217 -5\"\n"; print " If your project is Wikimedia Commons you may just type \"perl pageHits.pl commons 20080217\"\n\n";
} unlink ("pagecounts/extract.sh");
- unlink ("pagecounts/list.txt");
- unlink ("pagecounts-files")?
- rmdir "pagecounts-folder"?
print "\nPhew...\nFinished!\n";

