https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113527

Revision: 113527
Author:   a_engels
Date:     2012-03-09 21:20:11 +0000 (Fri, 09 Mar 2012)
Log Message:
-----------
Improved recognition & specification of mobile applications

Modified Paths:
--------------
    trunk/wikistats/squids/SquidCountArchive.pl
    trunk/wikistats/squids/SquidCountArchiveProcessLogRecord.pm
    trunk/wikistats/squids/SquidCountArchiveWriteOutput.pm

Modified: trunk/wikistats/squids/SquidCountArchive.pl
===================================================================
--- trunk/wikistats/squids/SquidCountArchive.pl 2012-03-09 21:17:17 UTC (rev 
113526)
+++ trunk/wikistats/squids/SquidCountArchive.pl 2012-03-09 21:20:11 UTC (rev 
113527)
@@ -55,7 +55,7 @@
   $time_start = time ;
 
   $path_root = $job_runs_on_production_server ? $cfg_path_root_production : 
$cfg_path_root_test ;
-  $tags_wiki_mobile = "CFNetwork|Dalvik" ;
+  $tags_wiki_mobile = "CFNetwork|Dalvik|WikipediaMobile|Appcelerator" ;
 
   $tags_mobile      = "Android|BlackBerry|Windows 
CE|DoCoMo|iPad|iPod|iPhone|HipTop|Kindle|LGE|Linux 
arm|Mobile|MIDP|NetFront|Nintendo|Nokia|Obigo|Opera Mini|Opera 
Mobi|Palm|Playstation|Samsung|SoftBank|SonyEricsson|SymbianOS|UP\.Browser|Vodafone|WAP|webOS|HTC_Touch|KDDI|FOMA|HTC_HD2|Polaris|Teleca"
 ;
   $tags_mobile_upd  = "February 2012" ;

Modified: trunk/wikistats/squids/SquidCountArchiveProcessLogRecord.pm
===================================================================
--- trunk/wikistats/squids/SquidCountArchiveProcessLogRecord.pm 2012-03-09 
21:17:17 UTC (rev 113526)
+++ trunk/wikistats/squids/SquidCountArchiveProcessLogRecord.pm 2012-03-09 
21:20:11 UTC (rev 113527)
@@ -290,7 +290,7 @@
 
   $os = ".." ;
 
-  if ($agent2 =~ /CFNetwork/io)     { $os = "iPhone" ; }
+  if ($agent2 =~ /CFNetwork/io)     { $os = "iOS" }
   elsif ($agent2 =~ /BlackBerry/io)     {($os = $agent2) =~ 
s/^.*?BlackBerry[^\/]*\/(\d+\.\d+).*$/BlackBerry\/$1/io ; } # 
BlackBerry/8320/4.2 -> BlackBerry/4.2
   elsif ($agent2 =~ /DoCoMo/io)         { $os = "DoCoMo" ; }
   elsif ($agent2 =~ /iPad/io)           { $version = "iPad" ;   ($os = 
$agent2) =~ s/^.*?(iPad OS \d+\_\d+).*$/$1/io ; }
@@ -341,7 +341,7 @@
   elsif ($agent2 =~ /Danger/io)         { $os = "Danger" ; }
   elsif ($agent2 =~ /J2ME\/MIDP/io)     { $os = "Java/ME" ; }
   elsif ($agent2 =~ /Kindle/io)         { $os = "Kindle" ; }
-  elsif ($agent2 =~ /Dalvik/io)         { $os = "Android" ; }
+  elsif ($agent2 =~ /Dalvik/io)         { $os = "Android" }
 
   if (($os eq '..') && ($mobile eq 'M' || $mobile eq 'W'))
   {
@@ -349,7 +349,7 @@
     $mobile_other {$agent2} += $count_event ; 
   }
 
-  if ($version =~ /(?:iPod|iPhone|iPad)/io)
+  if ($version =~ /(?:iPod|iPhone)/io)
   {
     if ($os !~ /Iphone OS \d/io)
     { $os = "iPhone OS 1_X" ; }
@@ -408,6 +408,14 @@
   elsif ($agent2 eq "-")
   {;}
 
+  # iOS APPLICATIONS
+  elsif ($agent2 =~ /CFNetwork/io)
+  { 
+    $agent2 =~ s/^(.*) CFNetwork.*$/iOS: $1/io ;
+    if ($agent2 =~ /Wikipedia Mobile\//io) { $agent2 =~ s/$/ (WMF)/io ; } 
+    $version = $agent2 ;
+  }
+
   # KINDLE
   elsif ($agent2 =~ /Kindle/io)
   { ($version = $agent2) =~ s/^.*?(Kindle \d+\.\d+).*$/$1/io ; }
@@ -474,11 +482,18 @@
 
   # DALVIK (applications on Android)
   elsif ($agent2 =~ /Dalvik\/\d+/io)
-  { ($version = $agent2) =~ s/^.*?(Dalvik\/\d+\.?\d*).*$/$1/o ; }
+  { ($version = $agent2) =~ s/^.*?(Dalvik\/\d+\.?\d*).*$/Android: $1/o ; }
 
+  # WIKIPEDIA MOBILE
+  elsif ($agent2 =~ /WikipediaMobile(\/| )\d+/io)
+  { ($version = $agent2) =~ s/^.*(WikipediaMobile(\/| )(\d|\.)+).*$/Android: 
$1 (WMF)/o ; }
+
   # ANDROID
   elsif ($agent2 =~ /Android\/\d+/io)
-  { ($version = $agent2) =~ s/^.*?(Android\/\d+\.?\d*).*$/$1/o ; }
+  {
+    $agent2 =~ s/^.*?(Android\/\d+\.?\d*).*$/$1/o ;
+    $version = $agent2 ;
+  }
 
   # EXPLORER
   elsif ($agent2 =~ /Mozilla\/\d+\.\d+ \(compatible;.*MSIE/io)
@@ -572,6 +587,11 @@
     $agent2  = "*[$version] [$os] --- $agent2" ;
   }
 
+  if ($version =~ /\d.*\([^\)]{10}/io)
+  {
+    $version =~ s/\([^\)]{10}.*$//io ;
+  }
+
   if ((! $bot) && ($agent ne "-"))
   {
     $engine  =~ s/,/,/go ;

Modified: trunk/wikistats/squids/SquidCountArchiveWriteOutput.pm
===================================================================
--- trunk/wikistats/squids/SquidCountArchiveWriteOutput.pm      2012-03-09 
21:17:17 UTC (rev 113526)
+++ trunk/wikistats/squids/SquidCountArchiveWriteOutput.pm      2012-03-09 
21:20:11 UTC (rev 113527)
@@ -625,9 +625,14 @@
     ($mobile,$version,$mimecat) = split (',', $key) ;
     print OUT2 "\%CLIENTS: '$mobile','$version','$mimecat': " . $clients{$key} 
. "\n" ;
     $total_clients {$mimecat} += $clients{$key} ;
-    $version =~ s/ .*$// ;
-    $version =~ s/\/.*$// ;
+    my $wmf = ($version =~ /\(WMF\)/ ) ;
+    if ($version =~ /\//)
+    { $version =~ s/\/.*$// ;}
+    else
+    { $version =~ s/ .*$// ; }
     $version =~ s/,/,/g ;
+    if ($wmf && ! ($version =~ /\(WMF\)/ ))
+    { $version =~ s/$/ (WMF)/ ; }
     $group = "$mobile,$version,$mimecat" ;
     $grouped_clients {$group} += $clients{$key} ;
   }


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to