Show
Ignore:
Timestamp:
05/21/08 14:48:25 (6 years ago)
Author:
takefumi
Message:

lang/perl/HTTP-MobileAgent?-Flash: SoftBankに対応した。

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/HTTP-MobileAgent-Flash/trunk/bin/make_map_flash_lite.pl

    r12097 r12104  
    33use strict; 
    44use warnings; 
     5 
     6use HTTP::MobileAgent; 
    57 
    68use WWW::MobileCarrierJP::DoCoMo::Flash; 
    79use WWW::MobileCarrierJP::EZWeb::DeviceID; 
    810use WWW::MobileCarrierJP::EZWeb::Model; 
     11use WWW::MobileCarrierJP::ThirdForce::UserAgent; 
     12use WWW::MobileCarrierJP::ThirdForce::Service; 
     13 
    914use Getopt::Long; 
    1015use Pod::Usage; 
     
    6570 
    6671my $map; 
    67 if    ($SCRAPE_CARRIER eq 'docomo') { $map = make_map_docomo() } 
    68 elsif ($SCRAPE_CARRIER eq 'ezweb')  { $map = make_map_ezweb()  } 
     72if    ($SCRAPE_CARRIER eq 'docomo')   { $map = make_map_docomo()   } 
     73elsif ($SCRAPE_CARRIER eq 'ezweb')    { $map = make_map_ezweb()    } 
     74elsif ($SCRAPE_CARRIER eq 'softbank') { $map = make_map_softbank() } 
    6975else { pod2usage(2) } 
    7076 
     
    184190} 
    185191 
     192sub make_map_softbank { 
     193 
     194    # - ThirdForce::Service, ThirdForce::UserAgent で取れる model 名が同一 
     195    #    機種で異なる場合がある。(SoftBankのサイトが異なってる) 
     196    #    Service では 913SH, 913SH G が2レコード 
     197    #    UserAgentでは 913SH/913SH G で1レコード 
     198    # 
     199    # - ThirdForce::Service, ThirdForce::UserAgent で取れる model 名が 
     200    #    HTTP::MobileAgent の model と異なる場合が上記以外である。 
     201    #    SoftBankのサイトでは    703SHf 
     202    #    HTTP::MobileAgent では V703SHf 
     203    # 
     204    my $flash_map; 
     205    for my $device (@{WWW::MobileCarrierJP::ThirdForce::Service->scrape()}) { 
     206        if ( 
     207            !$device->{flashlite}                  or 
     208            $device->{flashlite} !~ /^\d+(\.\d+)/  or 
     209            $device->{model}     !~ /^[\w\-]+$/ 
     210        ) { 
     211            next; 
     212        } 
     213 
     214        $flash_map->{$device->{model}} = { 
     215            version  => $device->{flashlite}, 
     216 
     217            # メディア編のPDF(P170)から 
     218            # http://creation.mb.softbank.jp/doc_tool/web_doc_tool.html 
     219            max_file_size => ($device->{flashlite} eq '1.1') ? 100 : 150, 
     220        }; 
     221    } 
     222 
     223    for my $device (@{WWW::MobileCarrierJP::ThirdForce::UserAgent->scrape()} ) { 
     224        $device->{user_agent} =~ s/^\s+//g; 
     225        $device->{user_agent} =~ s/\s+$//g; 
     226        my $agent = HTTP::MobileAgent->new($device->{user_agent}); 
     227 
     228        my $model     = $agent->{model}; 
     229        my $model_aho = $agent->{model}; 
     230           $model_aho =~ s/^.//; 
     231        if ($flash_map->{$model}) { 
     232            ; 
     233        } 
     234        elsif ($flash_map->{$model_aho}) { 
     235            $flash_map->{$model} = $flash_map->{$model_aho}; 
     236            delete $flash_map->{$model_aho}; 
     237        } 
     238        else { 
     239            next; 
     240        } 
     241 
     242        $flash_map->{$model}->{width}  = $device->{display}->{width}; 
     243        $flash_map->{$model}->{height} = $device->{display}->{height}; 
     244    } 
     245 
     246    return  $flash_map; 
     247} 
     248 
    186249# FIXME: ここまでヤルなら TT 使ったほうがよくね? 
    187250sub output_pm { 
     
    198261        $tmpl =~ s/{{MODULE_NAME}}/HTTP::MobileAgent::Flash::EZWebFlashMap/g; 
    199262        $tmpl =~ s/{{ENV_FLASH_MAP}}/EZWEB_FLASH_MAP/g; 
     263    } 
     264    elsif ($SCRAPE_CARRIER eq 'softbank') {  
     265        $tmpl =~ s/{{MODULE_NAME}}/HTTP::MobileAgent::Flash::SoftBankFlashMap/g; 
     266        $tmpl =~ s/{{ENV_FLASH_MAP}}/SOFTBANK_FLASH_MAP/g; 
    200267    } 
    201268 
     
    232299=head1 SYNOPSIS 
    233300 
    234 make_map_flash_lite.pl --output=[pm|yaml] --carrier=[docomo|ezweb] 
     301make_map_flash_lite.pl --output=[pm|yaml] --carrier=[docomo|ezweb|softbank] 
    235302 
    236303=cut