Apache2-ApacheMobileFilter
view release on metacpan or search on metacpan
lib/Apache2/AMFCommonLib.pm view on Meta::CPAN
# Site: http://www.apachemobilefilter.org
# Mail: idel.fuschini@gmail.com
package Apache2::AMFCommonLib;
use strict;
use warnings;
use vars qw($VERSION);
$VERSION= "4.33";;;
sub new {
my $package = shift;
return bless({}, $package);
}
sub getMobileArray {
my %MobileArray;
my $mobileParam="android,bolt,brew,docomo,foma,hiptop,htc,ipod,ipad,kddi,kindle,lge,maemo,midp,mobi,netfront,nintendo,nokia,novarra,openweb,palm,phone,playstation,psp,samsung,sanyo,softbank,sony,symbian,up.browser,up.link,wap,webos,windows ce,wirel...
my @dummyMobileKeys = split(/,/, $mobileParam);
foreach my $dummy (@dummyMobileKeys) {
$MobileArray{$dummy}='mobile';
}
return %MobileArray;
}
sub getPCArray {
my %PCArray;
$PCArray{'chrome'}='google_chrome';
my $i=0;
while ($i < 28) {
$PCArray{"chrome/$i"}="google_chrome_$i";
$i++;
}
$i=4;
$PCArray{'firefox'}='firefox';
$PCArray{'firefox/1.0'}='firefox_1';
$PCArray{'firefox/2.0'}='firefox_2';
$PCArray{'firefox/3.0'}='firefox_3';
$PCArray{'firefox/3.5'}='firefox_3_5';
while ($i < 12) {
$PCArray{"firefox/$i.0"}="firefox_".$i."_0";
$i++;
}
$PCArray{'chrome/'}='google_chrome_';
$PCArray{'msie'}='msie';
$PCArray{'msie 5'}='msie_5';
$PCArray{'msie 6'}='msie_6';
$PCArray{'msie 7'}='msie_7';
$PCArray{'msie 8'}='msie_8';
$PCArray{'msie 9'}='msie_9';
$PCArray{'opera'}='opera';
$PCArray{'konqueror'}='konqueror';
return %PCArray;
}
sub getMD5 {
my $self = shift;
my $file;
if (@_) {
$file = shift;
}
open(FILE, $file) or die "Can't open '$file': $!";
binmode(FILE);
my $returnMD5=Digest::MD5->new->addfile(*FILE)->hexdigest;
return $returnMD5;
}
sub Data {
my $_sec;
my $_min;
my $_hour;
my $_mday;
my $_day;
my $_mon;
my $_year;
my $_wday;
my $_yday;
my $_isdst;
my $_data;
($_sec,$_min,$_hour,$_mday,$_mon,$_year,$_wday,$_yday,$_isdst) = localtime(time);
$_mon=$_mon+1;
$_year=substr($_year,1);
$_mon=&correct_number($_mon);
$_mday=&correct_number($_mday);
$_hour=&correct_number($_hour);
$_min=&correct_number($_min);
$_sec=&correct_number($_sec);
$_data="$_mday/$_mon/$_year - $_hour:$_min:$_sec";
return $_data;
}
sub correct_number {
my ($number) = @_;
if ($number < 10) {
$number="0$number";
}
return $number;
}
sub printLog {
my $self = shift;
if (@_) {
$self->{'printLog'} = shift;
}
my $data=Data();
print "$data - $self->{'printLog'}\n";
}
sub CleanUa {
my $self = shift;
my $UserAgent;
if (@_) {
$UserAgent = shift;
}
my $string="";
$UserAgent =~ s/\ //g;
#$UserAgent =~ s/([0-9\\.]+).*?//g;
$UserAgent =~ s/iemobile \/([0-9\\.]+).*?/iemobile /g;
$UserAgent =~ s/series40\/([0-9\\.]+)...(!?abc)*?/series40/g;
$UserAgent =~ s/series60\/([0-9\\.]+)...(!?abc)*?/series60/g;
if ( $UserAgent =~ m/^outlook/i ) {
$UserAgent=substr($UserAgent,index($UserAgent,'(') + 1,length($UserAgent) - index($UserAgent,'(') -2);
}
if ( $UserAgent =~ m/windows nt/i) {
my $first=substr($UserAgent,0,index($UserAgent,'windows nt') + 12);
( run in 0.721 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )