Apache2-ApacheMobileFilter
view release on metacpan or search on metacpan
lib/Apache2/AMFSwitcher.pm view on Meta::CPAN
$forcetablet="false";
}
$CommonLib->printLog("ForceTabletAsFullBrowser is: $forcetablet");
}
if ($ENV{MobileVersionUrl}) {
$mobileversionurl=$ENV{MobileVersionUrl};
$ArrayPath{1}=$ENV{MobileVersionUrl};
$CommonLib->printLog("MobileVersionUrl is: $mobileversionurl");
$mobileversionurl_ck=$ENV{MobileVersionUrl};
push(@ExcludeString,$ENV{MobileVersionUrl});
if (substr ($mobileversionurl,0,5) eq "http:") {
my ($dummy,$dummy2,$url_domain,$dummy3)=split(/\//, $mobileversionurl);
$mobileDomain=$url_domain;
}
}
$CommonLib->printLog("Finish loading parameter");
}
sub handler {
my $f = shift;
my $capability2;
my $query_string=$f->args;
my $device_claims_web_support="null";
my $is_wireless_device="null";
my $is_transcoder="null";
my $location="none";
my $return_value=Apache2::Const::DECLINED;
my $device_type=1;
my $no_redirect=1;
my $uri=$f->unparsed_uri();
my $servername=$f->get_server_name();
my $uriAppend="";
my $filter="true";
my %ArrayQuery;
my $isTablet="null";
my $amf_device_ismobile = "true";
my $amf_force_to_mobile = "false";
if ($query_string) {
my @vars = split(/&/, $query_string);
foreach my $var (sort @vars){
if ($var) {
my ($v,$i) = split(/=/, $var);
$v =~ tr/+/ /;
$v =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($i) {
$i =~ tr/+/ /;
$i =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$i =~ s/<!--(.|\n)*-->//g;
}
$ArrayQuery{$v}="ok";
}
}
}
if ($f->pnotes('is_tablet')) {
$isTablet=$f->pnotes('is_tablet')
}
if ($f->pnotes('is_transcoder')) {
$is_transcoder=$f->pnotes('is_transcoder');
}
if ($f->pnotes('amf_force_to_desktop')) {
$amf_force_to_mobile=$f->pnotes('amf_force_to_desktop');
}
if ($f->pnotes('amf_device_ismobile')) {
$amf_device_ismobile=$f->pnotes('amf_device_ismobile');
}
foreach my $string (@ExcludeString) {
if (index($uri,$string) > -1) {
$filter="false";
}
}
if ($filter eq "true"){
if ($amf_device_ismobile eq 'false'|| ($isTablet eq "true" && $forcetablet eq "true")) {
if ($fullbrowserDomain ne $servername) {
if ($fullbrowserurl ne 'none') {
if ($wildcardredirect eq 'true'){
$location=$uri;
if ($location =~ /$mobileversionurl_ck/o) {
$location =~ s/$mobileversionurl_ck/$fullbrowserurl/;
} else {
$location = $fullbrowserurl;
}
} else {
$location = $fullbrowserurl;
}
}
$device_type=2;
}
} else {
if ($mobileDomain ne $servername) {
if ($wildcardredirect eq 'true'){
$location=$uri;
if ($location =~ /$fullbrowserurl_ck/o) {
$location =~ s/$fullbrowserurl_ck/$mobileversionurl/;
} else {
$location = $mobileversionurl;
}
} else {
$location = $mobileversionurl;
}
} else {
if (substr ($mobileversionurl,0,4) eq "http") {
$location = $mobileversionurl;
}
}
$device_type=1;
}
if ($is_transcoder eq 'true') {
if ($transcoderDomain ne $servername) {
if ($redirecttranscoderurl ne 'none') {
if ($wildcardredirect eq 'true'){
$location=$uri;
if ($location =~ /$fullbrowserurl_ck/o) {
$location =~ s/$fullbrowserurl_ck/$redirecttranscoderurl/;
} else {
$location = $redirecttranscoderurl;
}
}
}
$device_type=3;
}
}
( run in 1.118 second using v1.01-cache-2.11-cpan-2e0ccfb7a10 )