@MiscListOrder=('AddToFavourites','JavascriptDisabled','JavaEnabled','DirectorSupport','FlashSupport','RealPlayerSupport','QuickTimeSupport','WindowsMediaPlayerSupport','PDFSupport');
%MiscListCalc=('TotalMisc'=>'','AddToFavourites'=>'u','JavascriptDisabled'=>'hm','JavaEnabled'=>'hm','DirectorSupport'=>'hm','FlashSupport'=>'hm','RealPlayerSupport'=>'hm','QuickTimeSupport'=>'hm','WindowsMediaPlayerSupport'=>'hm','PDFSupport'=>'hm');
@OSFamily=('win','mac');
-#%BrowsersFamily=('msie'=>1,'netscape'=>2,'mozilla'=>3);
-%BrowsersFamily=('msie'=>1,'netscape'=>2);
+%BrowsersFamily=('msie'=>1,'firefox'=>2,'netscape'=>3);
@SessionsRange=('0s-30s','30s-2mn','2mn-5mn','5mn-15mn','15mn-30mn','30mn-1h','1h+');
%SessionsAverage=('0s-30s',15,'30s-2mn',75,'2mn-5mn',210,'5mn-15mn',600,'15mn-30mn',1350,'30mn-1h',2700,'1h+',3600);
# HTTP-Accept or Lang parameter => AWStats code to use for lang
sub Read_Ref_Data {
# Check lib files in common possible directories :
# Windows and standard package: "$DIR/lib" (lib in same dir than awstats.pl)
- # Debian package : "/usr/share/awstats/lib"
+ # Debian package: "/usr/share/awstats/lib"
my @PossibleLibDir=("$DIR/lib","/usr/share/awstats/lib");
my %FilePath=(); my %DirAddedInINC=();
my @FileListToLoad=();
}
# Sanity check (if loaded)
if ((scalar keys %OSHashID) && @OSSearchIDOrder != scalar keys %OSHashID) { error("Not same number of records of OSSearchIDOrder (".(@OSSearchIDOrder)." entries) and OSHashID (".(scalar keys %OSHashID)." entries) in OS database. Check your file ".$FilePath{"operating_systems.pm"}); }
- if ((scalar keys %SearchEnginesHashID) && (@SearchEnginesSearchIDOrder_list1+@SearchEnginesSearchIDOrder_list2+@SearchEnginesSearchIDOrder_listgen) != scalar keys %SearchEnginesHashID) { error("Not same number of records of SearchEnginesSearchIDOrder_listx (total is ".(@SearchEnginesSearchIDOrder_list1+@SearchEnginesSearchIDOrder_list2+@SearchEnginesSearchIDOrder_listgen)." entries) and SearchEnginesHashID (".(scalar keys %SearchEnginesHashID)." entries) in Search Engines database. Check your file ".$FilePath{"search_engines.pm"}); }
- if ((scalar keys %BrowsersHashIDLib) && @BrowsersSearchIDOrder != (scalar keys %BrowsersHashIDLib) - 2) { error("Not same number of records of BrowsersSearchIDOrder (".(@BrowsersSearchIDOrder)." entries) and BrowsersHashIDLib (".((scalar keys %BrowsersHashIDLib) - 2)." entries without msie and netscape) in Browsers database. Check your file ".$FilePath{"browsers.pm"}); }
- if ((scalar keys %RobotsHashIDLib) && (@RobotsSearchIDOrder_list1+@RobotsSearchIDOrder_list2+@RobotsSearchIDOrder_listgen) != (scalar keys %RobotsHashIDLib) - 1) { error("Not same number of records of RobotsSearchIDOrder_listx (total is ".(@RobotsSearchIDOrder_list1+@RobotsSearchIDOrder_list2+@RobotsSearchIDOrder_listgen)." entries) and RobotsHashIDLib (".((scalar keys %RobotsHashIDLib) - 1)." entries without 'unknown') in Robots database. Check your file ".$FilePath{"robots.pm"}); }
+ if ((scalar keys %SearchEnginesHashID) && (@SearchEnginesSearchIDOrder_list1+@SearchEnginesSearchIDOrder_list2+@SearchEnginesSearchIDOrder_listgen) != scalar keys %SearchEnginesHashID) { error("Not same number of records of SearchEnginesSearchIDOrder_listx (total is ".(@SearchEnginesSearchIDOrder_list1+@SearchEnginesSearchIDOrder_list2+@SearchEnginesSearchIDOrder_listgen)." entries) and SearchEnginesHashID (".(scalar keys %SearchEnginesHashID)." entries) in Search Engines database. Check your file ".$FilePath{"search_engines.pm"}." is up to date."); }
+ if ((scalar keys %BrowsersHashIDLib) && @BrowsersSearchIDOrder != (scalar keys %BrowsersHashIDLib) - 3) { error("Not same number of records of BrowsersSearchIDOrder (".(@BrowsersSearchIDOrder)." entries) and BrowsersHashIDLib (".((scalar keys %BrowsersHashIDLib) - 3)." entries without msie,netscape,firefox) in Browsers database. May be you updated AWStats without updating browsers.pm file or you made changed into browsers.pm not correctly. Check your file ".$FilePath{"browsers.pm"}." is up to date."); }
+ if ((scalar keys %RobotsHashIDLib) && (@RobotsSearchIDOrder_list1+@RobotsSearchIDOrder_list2+@RobotsSearchIDOrder_listgen) != (scalar keys %RobotsHashIDLib) - 1) { error("Not same number of records of RobotsSearchIDOrder_listx (total is ".(@RobotsSearchIDOrder_list1+@RobotsSearchIDOrder_list2+@RobotsSearchIDOrder_listgen)." entries) and RobotsHashIDLib (".((scalar keys %RobotsHashIDLib) - 1)." entries without 'unknown') in Robots database. Check your file ".$FilePath{"robots.pm"}." is up to date."); }
}
my $regipv6=qr/^[0-9A-F]*:/i;
my $regvermsie=qr/msie([+_ ]|)([\d\.]*)/i;
my $regvernetscape=qr/netscape.?\/([\d\.]*)/i;
+ my $regverfirefox=qr/firefox\/([\d\.]*)/i;
my $regvermozilla=qr/mozilla(\/|)([\d\.]*)/i;
my $regnotie=qr/webtv|omniweb|opera/i;
my $regnotnetscape=qr/gecko|compatible|opera|galeon|safari/i;
$_browser_h{"msie$2"}++;
$TmpBrowser{$UserAgent}="msie$2";
}
+ # Firefox ?
+ elsif ($UserAgent =~ /$regverfirefox/o) {
+ $_browser_h{"firefox$1"}++;
+ $TmpBrowser{$UserAgent}="firefox$1";
+ }
# Netscape 6.x, 7.x ... ?
elsif ($UserAgent =~ /$regvernetscape/o) {
$_browser_h{"netscape$1"}++;
# Note: Regex IDs are in lower case and ' ' and '+' are changed into '_'
#-------------------------------------------------------
@BrowsersSearchIDOrder = (
-# Most frequent standard web browsers are first in this list
+# Most frequent standard web browsers are first in this list (except msie, netscape and firefox)
'firebird',
-'firefox',
'go!zilla',
'icab',
'konqueror',
# Common web browsers text
'msie','MS Internet Explorer',
'netscape','Netscape',
-'firebird','Firebird (Old Firefox)',
'firefox','Firefox',
+
+'firebird','Firebird (Old Firefox)',
'go!zilla','Go!Zilla',
'icab','iCab',
'konqueror','Konqueror',
# Standard web browsers
'msie','msie',
'netscape','netscape',
+'firefox','firefox',
'firebird','phoenix',
-'firefox','firefox',
'go!zilla','gozilla',
'icab','icab',
'konqueror','konqueror',
1;
-# TODO
-# Add Gecko category -> IE / Netscape / Gecko(except Netscape) / Other
-# IE (based on Mosaic)
-# Netscape family
-# Gecko except Netscape (Mozilla, Firebird (was Phoenix), Galeon, AmiZilla, Dino, and few others)
-# Opera (Opera 6/7)
-# KHTML (Konqueror, Safari)
-
-
-# Browsers example
+# Browsers examples by engines
#
+# -- Mosaic --
# MSIE 4.0 Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt; KITV4 Wanadoo; KITV5 Wanadoo)
#
+# -- Gecko Netscape --
# Netscape 4.05 Mozilla/4.05 [fr]C-SYMPA (Win95; I)
# Netscape 4.7 Mozilla/4.7 [fr] (Win95; I)
# Netscape 6.0 Mozilla/5.0 (Macintosh; N; PPC; fr-FR; m18) Gecko/20001108 Netscape6/6.0
# Netscape 7.02 Mozilla/5.0 (Platform; Security; OS-or-CPU; Localization; rv:1.0.2) Gecko/20030208 Netscape/7.02
#
+# -- Gecko others --
# Mozilla 1.3 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3) Gecko/20030312
+# Firefox 0.9 Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5a) Gecko/20030728 Mozilla Firefox/0.9.1
+# Firebird,Phoenix,Galeon,AmiZilla,Dino
+# Autre Mozilla/3.01 (compatible;)
#
-# Firebird 0.6 Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5a) Gecko/20030728 Mozilla Firebird/0.6.1
-#
+# -- Opera --
# Opera 6.03 Mozilla/3.0 (Windows 98; U) Opera 6.03 [en]
# Opera 5.12 Mozilla/3.0 (Windows 98; U) Opera 5.12 [en]
# Opera 3.21 Opera 3.21, Windows:
#
-# Galeon
-#
+# -- KHTML --
# Safari
-#
# Konqueror
#
-# Autre Mozilla/3.01 (compatible;)