昔はそれほどストレスなく使えていたGAEだが、しばらく使っていないうちにサービスも大きく変わって、腕も鈍って、結構大変だった。が、、なんとかAmazon APIを叩いて、無料KindleコミックをRESTで取ってきて、それを整形して表示するシステムを組んだ。
いまはまだ都度検索しているので、時々タイムアウトになったり、めちゃくちゃ遅い。それに、TOP100冊しか表示できない(APIの制限により)。
今後はバッチで検索を実行して書籍情報をDBに蓄えることで、ストレスなく100冊ぐらいを一度に表示できるように改良したい。また、過去に読んだ本は表示しないとか、趣味に合わない○○系の本は出さなとか、パーソナライズできるようにしたい。興味がありましたら、以下のURLで使ってみてください。
https://amazon-kindle-search.appspot.com
Kindle無料コミック検索サイト(試作中)
※ご注意点:Amazonの価格変動が激しくて更新が追い付いていません。すでに無料期間が終わったコンテンツやらURLが変更になったのやらありまして、注文される場合は値段を十分に確認してください。
ちなみに、、検索条件をいろいろ指定すればいろんな情報を取り出せるけど、今は、以下で検索
(Kindle AND コミック AND 無料) AND ORDER : 新しい順
API呼び出しの指定パラメータは以下
params = { "Operation" : "ItemSearch", 'BrowseNode' : '2293143051', # Kindle Comics 'SearchIndex' : 'Books', 'MerchantId' : 'All', 'MaximumPrice' : '0', 'Sort' : 'daterank', 'ItemPage' : '1', 'ResponseGroup' : 'ItemIds', "Service" : "AWSECommerceService", "AWSAccessKeyId" : AMAZON_ACCESS_KEY, "AssociateTag" : AMAZON_ASSOC_TAG, "Timestamp" : time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) }
新しい順については、release-dateとpublish-dateがありどちらを使うべきかとかいまいちわかっておらず、また実装コードにちょっとバグがあるように思える。