]> git.ipfire.org Git - thirdparty/AWStats.git/commitdiff
New: Add a better way to detect Safari versions
authoreldy <>
Wed, 22 Jul 2009 12:21:24 +0000 (12:21 +0000)
committereldy <>
Wed, 22 Jul 2009 12:21:24 +0000 (12:21 +0000)
docs/awstats_changelog.txt
wwwroot/cgi-bin/awstats.pl

index b33dc45702b2e6c068e65b5565b517e5dc7aa573..13d6a7f30537d1cab06e7db2666750a4f54cdd68 100644 (file)
@@ -14,7 +14,8 @@ New features/improvements:
 - Update of browsers, robots and search_engines databases (among them, the
   bing search engine).
 - Added Brezhoneg language.
+- Add a better way to detect Safari versions.
+
 Fixes:
 - awstats emmits ton of warnings with new geoipfree - ID: 2794728
 - fix: can detect robots with robots.txt url even if file is not root.
index cdbc03676b83620fd60350a2fd369f127552453f..5e865690e386dee35e1ca85b58045ba2af238cb3 100644 (file)
@@ -467,6 +467,7 @@ use vars qw/
        'ar' => 'sa',
        'sr' => 'cs'
   );
+# TODO Remove this old array for an old way to detect Safari version 
 %SafariBuildToVersion = (
        '85'        => '1.0',
        '85.5'      => '1.0',
@@ -10564,6 +10565,7 @@ if ( $UpdateStats && $FrameName ne 'index' && $FrameName ne 'mainleft' )
        my $regverfirefox     = qr/firefox\/([\d\.]*)/i;
        my $regveropera       = qr/opera\/([\d\.]*)/i;
        my $regversafari      = qr/safari\/([\d\.]*)/i;
+       my $regversafariver   = qr/version\/([\d\.]*)/i; 
        my $regverchrome      = qr/chrome\/([\d\.]*)/i;
        my $regverkonqueror   = qr/konqueror\/([\d\.]*)/i;
        my $regversvn         = qr/svn\/([\d\.]*)/i;
@@ -12066,8 +12068,16 @@ if ( $UpdateStats && $FrameName ne 'index' && $FrameName ne 'mainleft' )
                                        if ( !$uabrowser ) {
                                                my $found = 1;
 
+                                               # Firefox ?
+                                               if ($UserAgent =~ /$regverfirefox/o
+                                                       && $UserAgent !~ /$regnotfirefox/o )
+                                               {
+                                                       $_browser_h{"firefox$1"}++;
+                                                       $TmpBrowser{$UserAgent} = "firefox$1";
+                                               }
+
                                                # Opera ?
-                                               if ( $UserAgent =~ /$regveropera/o ) {
+                                               elsif ( $UserAgent =~ /$regveropera/o ) {
                                                        $_browser_h{"opera$1"}++;
                                                        $TmpBrowser{$UserAgent} = "opera$1";
                                                }
@@ -12079,13 +12089,15 @@ if ( $UpdateStats && $FrameName ne 'index' && $FrameName ne 'mainleft' )
                                                }
 
                                                # Safari ?
-                                               elsif ($UserAgent =~ /$regversafari/o
-                                                       && $UserAgent !~ /$regnotsafari/o )
-                                               {
-                                                       my $safariver = $SafariBuildToVersion{$1};
-                                                       $_browser_h{"safari$safariver"}++;
-                                                       $TmpBrowser{$UserAgent} = "safari$safariver";
-                                               }
+                                               elsif ($UserAgent =~ /$regversafari/o && $UserAgent !~ /$regnotsafari/o) {
+                            my $safariver=$SafariBuildToVersion{$1};
+                            if ($UserAgent =~ /$regversafariver/o)
+                            {
+                               $safariver = $1;
+                            }
+                            $_browser_h{"safari$safariver"}++;
+                            $TmpBrowser{$UserAgent}="safari$safariver";
+                        } 
 
                                                # Konqueror ?
                                                elsif ( $UserAgent =~ /$regverkonqueror/o ) {
@@ -12093,7 +12105,13 @@ if ( $UpdateStats && $FrameName ne 'index' && $FrameName ne 'mainleft' )
                                                        $TmpBrowser{$UserAgent} = "konqueror$1";
                                                }
 
-                                               # IE ?
+                                               # Subversion ?
+                                               elsif ( $UserAgent =~ /$regversvn/o ) {
+                                                       $_browser_h{"svn$1"}++;
+                                                       $TmpBrowser{$UserAgent} = "svn$1";
+                                               }
+
+                                               # IE ? (must be at end of test)
                                                elsif ($UserAgent =~ /$regvermsie/o
                                                        && $UserAgent !~ /$regnotie/o )
                                                {
@@ -12101,27 +12119,13 @@ if ( $UpdateStats && $FrameName ne 'index' && $FrameName ne 'mainleft' )
                                                        $TmpBrowser{$UserAgent} = "msie$2";
                                                }
 
-                                               # Firefox ?
-                                               elsif ($UserAgent =~ /$regverfirefox/o
-                                                       && $UserAgent !~ /$regnotfirefox/o )
-                                               {
-                                                       $_browser_h{"firefox$1"}++;
-                                                       $TmpBrowser{$UserAgent} = "firefox$1";
-                                               }
-
-                                               # Subversion ?
-                                               elsif ( $UserAgent =~ /$regversvn/o ) {
-                                                       $_browser_h{"svn$1"}++;
-                                                       $TmpBrowser{$UserAgent} = "svn$1";
-                                               }
-
-                                               # Netscape 6.x, 7.x ... ?
+                                               # Netscape 6.x, 7.x ... ? (must be at end of test)
                                                elsif ( $UserAgent =~ /$regvernetscape/o ) {
                                                        $_browser_h{"netscape$1"}++;
                                                        $TmpBrowser{$UserAgent} = "netscape$1";
                                                }
 
-                                               # Netscape 3.x, 4.x ... ?
+                                               # Netscape 3.x, 4.x ... ? (must be at end of test)
                                                elsif ($UserAgent =~ /$regvermozilla/o
                                                        && $UserAgent !~ /$regnotnetscape/o )
                                                {