●[sb] オススメ商品の著者名
February 09, 2005 00:04 PM written by 兼乃
少し前から気になっていたのだけれど sb 標準のオススメ商品の検索で音楽関係のアーティストは取得できるのだが、書籍の著者名できない。
この機能はAmazonWebサービスを使ってXMLで取得しているようなのでちょっと調べてみた。
この機能はAmazonWebサービスを使ってXMLで取得しているようなのでちょっと調べてみた。
sb では Artist要素を著者名(?)としてるが、書籍として検索した場合Amazonから帰ってくるXMLではAuthor要素に著者名が入っているようだ。
そうと分かればArtist要素だけでなくAuthor要素でも著者名と判別するように修正すればOK。
編集箇所は2カ所。(赤字が追記場所)
ArtistとAuthorの両要素があった場合どうなるんだろ・・・とちょっと不安だけど多分ないだろうと信じて。。
修正の部分は lib/sbaws.pl の sbaws_xmlChar 関数内なので、プラグインでオーバーライドしようかとしたのだけど巧くオーバライドしてくれない。
たぶん sbaws.pl が読み込まれるタイミングがプラグインでオーバーライド(?)した後だから無意味になっちゃうのかな。
sbaws.plを呼び出してる関数からオーバーライドして、sbaws.plは読み込まないようにして、sbaws.plの内容をプラグイン内で定義すればプラグインで修正できるのだけれどほんの2行を変更するだけのものにしては大げさな物だよね;;
一応その大げさなプラグインも作ってみたけれど、これに関しては仕様というよりは不具合っぽいのでプラグインで・・・というのはしない方がいいかな。
takkyunさんにフィードバックした方が良いとは思うのだがどこからしたものか・・MLに参加するしかないのかなぁ。
場違いかもしれないけど、1.14RのエントリにTBしてみたり。
そうと分かればArtist要素だけでなくAuthor要素でも著者名と判別するように修正すればOK。
編集箇所は2カ所。(赤字が追記場所)
lib/sbaws.pl の 75行目の部分。
} elsif ($gData{'aws'} eq 'Artists' or $gData{'aws'} eq 'Authors') {
同ファイル 78行目
} elsif ($gData{'aws'} eq 'Artist' or $gData{'aws'} eq 'Author') {
ArtistとAuthorの両要素があった場合どうなるんだろ・・・とちょっと不安だけど多分ないだろうと信じて。。
修正の部分は lib/sbaws.pl の sbaws_xmlChar 関数内なので、プラグインでオーバーライドしようかとしたのだけど巧くオーバライドしてくれない。
たぶん sbaws.pl が読み込まれるタイミングがプラグインでオーバーライド(?)した後だから無意味になっちゃうのかな。
sbaws.plを呼び出してる関数からオーバーライドして、sbaws.plは読み込まないようにして、sbaws.plの内容をプラグイン内で定義すればプラグインで修正できるのだけれどほんの2行を変更するだけのものにしては大げさな物だよね;;
一応その大げさなプラグインも作ってみたけれど、これに関しては仕様というよりは不具合っぽいのでプラグインで・・・というのはしない方がいいかな。
takkyunさんにフィードバックした方が良いとは思うのだがどこからしたものか・・MLに参加するしかないのかなぁ。
場違いかもしれないけど、1.14RのエントリにTBしてみたり。