意外にBuggyなNet::Amazon

2007年3月19日 20:28

PerlでAmazon APIを使うNet::Amazonモジュールの話。


Net::Amazonでは、Amazonストアでの種別(本とかCDとか)別にプロパティクラス(Net::Amazon::Property::*)があるんだけど、現状では

  • Book
  • CE
  • DVD
  • Music
  • Software
  • VideoGames



しか用意されていない。これ以外の種別のItemの場合、ItemLookupをしたときに汎用オブジェクト(Net::Amazon::Propery)でプロパティが帰ってくるんだけど、このクラスのコンストラクタ処理が不完全っぽくてカスタマーレビューが返ってこなかったり、製品名が返ってこなかったり。。。



ということで、テキトーなパッチ。いまの仕事が片付いたらちゃんとdiffとって報告せねば。

*** Property.pm.org     2007-03-15 01:25:47.000000000 +0900



— Property.pm 2007-03-19 20:30:27.000000000 +0900

***************

*** 30,36 ****

      OurPrice => [qw(Offers Offer OfferListing Price FormattedPrice)],

      SmallImageUrl => [qw(SmallImage URL)],

      SuperSaverShipping => [qw(Offers Offer OfferListing IsEligibleForSuperSave

rShipping)],

!     Title => [qw(Title)],

      ThirdPartyNewCount => [qw(OfferSummary TotalNew)],

      ThirdPartyNewPrice => [qw(OfferSummary LowestNewPrice FormattedPrice)],

      TotalOffers => [qw(Offers TotalOffers)],

— 30,36 —-

      OurPrice => [qw(Offers Offer OfferListing Price FormattedPrice)],

      SmallImageUrl => [qw(SmallImage URL)],

      SuperSaverShipping => [qw(Offers Offer OfferListing IsEligibleForSuperSave

rShipping)],

!     Title => [qw(ItemAttributes Title)],

      ThirdPartyNewCount => [qw(OfferSummary TotalNew)],

      ThirdPartyNewPrice => [qw(OfferSummary LowestNewPrice FormattedPrice)],

      TotalOffers => [qw(Offers TotalOffers)],

***************

*** 47,53 ****

        ‘Asin’        => ‘ASIN’,

        ‘url’         => ‘DetailPageURL’,

      ‘Media’       => ‘Binding’,

!     ’ProductName’ => ‘title’,

  );

 

  __PACKAGE__->make_accessor($_) for @DEFAULT_ATTRIBUTES;

— 47,53 —-

        ‘Asin’        => ‘ASIN’,

        ‘url’         => ‘DetailPageURL’,

      ‘Media’       => ‘Binding’,

!     ’ProductName’ => ‘Title’,

  );

 

  __PACKAGE__->make_accessor($_) for @DEFAULT_ATTRIBUTES;

***************

*** 163,168 ****

— 163,169 —-

  #         die “%Error: there is no property defined for type ‘$catalog’\n”;

          DEBUG(“Creating new Default Property ($catalog)”);

          $obj = Net::Amazon::Property->new(xmlref => $xmlref);

+         $obj->init_via_xmlref( $xmlref );

      }

 

      return $obj;

~ # 追記@3/20 2:00。誤字修正。

コメント:
利用可能なタグ: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>