Apache2-ApacheMobileFilter

 view release on metacpan or  search on metacpan

lib/Apache2/AMFCommonLib.pm  view on Meta::CPAN

	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);
	    my $second="";
	    if (length($UserAgent) > index($UserAgent,'windows nt') + 14) {
	      $second=substr($UserAgent,index($UserAgent,'windows nt') + 14);
	    }
	    $UserAgent=$first.$second;
	}
  	my @arrayFile=split(/\ /, $UserAgent);
	foreach my $field (@arrayFile) {
		if ($field =~ m/applewebkit/i || $field =~ m/chrome/i || $field =~ m/safari/i) {
			my ($first,$second)=split(/\//, $field);

			$string=$string." ".$first;
		} else {
			$string=$string." ".$field;
		}
	}
	$string=substr($string,1);
	return $string;
}
sub GetMultipleUa {
    my $self = shift;	
    my $UserAgent;
    my $deep;
    my $count=0;
    if (@_) {
	    $UserAgent = shift;
	    $deep = shift;
    }
    my $length=length($UserAgent);
    my %ArrayUAparse;
    if (substr($UserAgent,$length-1,1) eq ')') {
     $UserAgent=substr($UserAgent,0,$length-1);
    }
    $UserAgent =~ s/\ /|/g;
    $UserAgent =~ s/\//|/g;
    $UserAgent =~ s/\-/|/g;
    $UserAgent =~ s/\_/|/g;
    $UserAgent =~ s/\./|/g;
    my @pairs = split(/\|/, $UserAgent);
    my $deep_to_verify=scalar(@pairs) - $deep - 1;
    my $ind=0;
    my $string="";
    if ($deep > scalar(@pairs)) {
      $deep=scalar(@pairs) - 1;
    }
    foreach my $key (@pairs) {
        if ($ind==0) {
	  $string=$key;
	} else  {
	  $string=$string." ".$key;
	}
	if ($ind > $deep - 1) {
	   $ArrayUAparse{$ind}=$string;
	}
	$ind++;
    }
    return %ArrayUAparse;
    
}

sub androidDetection {
	my $self = shift;
	my $ua="";
	if (@_) {
	    $ua = shift;
	}
	#print "$ua----------\n";
	my $version='nc';
	my $os='nc';
	if (index($ua,'android') > -1 ) {
	       #my $string_to_parse=substr($ua,index($ua,'(') + 1,index($ua,')'));
	       my @param=split(/\;/,$ua);
	       #my ($dummy1,$dummy2,$vers,$lan,$dummy5)=split(/\;/,$string_to_parse);
	       my $element=scalar @param;
	       my $count=0;
	       my $count_add=0;
	       my @param_ua;
	       if ($element > 0) {
	       while ($count<$element) {
		  if (index($param[$count],'-')>-1 && length($param[$count])==6) {
		  } elsif (length($param[$count])==2) {
		  } elsif (index($param[$count],'android')>-1) {
			  ($os,$version)=split(/ /,$param[$count]);
			  if ($version) {
			    if (index($version,'.') > -1) {
			      $version =~ s/\.//g;
			    }
			  }
			  $param_ua[$count_add]="android xx";
			  $count_add++;
		  } else {
		     $param_ua[$count_add]=$param[$count];
		     $count_add++;
		  }
		  $count++;
	      }
	       	$count=0;
		$element=scalar @param_ua;
		$ua = "";
		while ($count < $element) {



( run in 0.777 second using v1.01-cache-2.11-cpan-13bb782fe5a )