キャッシュの見直しと諸々の修正

APIamazonさんから情報を頂くときは回数制限があるのでアクセスの度にamazonさんのAPIをたたくとすぐに制限がきてしまいます。
そこでmyreleaseではAPI導入し始めの頃から一応キャッシュはしていたのだが今まで機能毎にバラバラに最低限度の情報のみをキャッシュしていたのを統一しました。場合によってはですが少し表示速度が速くなったかと思います。

あと、在庫情報やオンラインショップへのリンクが一部おかしくなっていたので修正いたしました。

今年の初め頃からamazonの書籍の定価情報が無くなり、暫定で他のパラメータを載せて変な金額表示になっていました。
確実ではありませんが正確な金額になるよう調整いたしました。

Product Advertising APIから情報が返って来なくなった!?

昨日からシステムの不都合によりご迷惑をおかけしまし申し訳ございませんでした。

昨日(25日)からProduct Advertising API(amazonから商品情報を入手するAPI)から商品情報が返ってこなくなりマイリリースのサービスが機能しなくなった。
最初に思ったのは「amazonAPIの提供を辞めたのでは?」と思ったが他の方の運営してるサイトは通常通り運用しているようなのでウチだけという事になる。
もしかして仕様が変わった連絡を見過ごしたかと思って調べてみたが特に仕様が変わったという情報は無かった。
もしかして管理者のアカウントをいじったりしたのでAWSAccessKeyIdが変わったのかと思って確認しようとしたがProduct Advertising APIの管理画面が以前と変わっていてAWSAccessKeyIdが確認出来ない仕様になっていたので再度AWSAccessKeyIdを発行して試したが変わらず。
あと考えられるのは売り上げに対するリクエスト数の上限が定められているので上限を超えてしまったのかもと思い、とりあえず最低限動作するようにして解決を翌日に持ち越した。

明けて今日確認してみたが、未だ動作していない。
エラーメッセージを確認すると
「Request has expired. Timestamp date is 〜」
と「〜」の所にある時間が時計と2時間ほどずれてる事に気づいた。
調べるとTimestampの値の時間から15分しか許可されていないので2時間も過ぎていれば商品情報が返ってくるはずもない。
とりあえずPHPで時刻を調べたが2時間ほどずれている。(gmdateの方はamazonで指定するグリニッジ標準時なので普通の時刻とは違う)
echo date('Y-m-d H:i:s');
echo gmdate('Y-m-d\TH:i:s\Z');
ターミナルでdateコマンドを実行しても2時間ほど過ぎていた。
とりあえずハードの時計を見てみると正常な時間を返した。
# hwclock -r

ログ(/var/log/messages)を確認すると25日(昨日)の7時に時計合わせをしようとして異常終了した形跡が見つかった。
panic_stop +5321 s; set clock manually within 1000 s.
ntpd(時計合わせのサービス)を確認すると
# service ntpd status
ntpdが停止していますがPIDファイルが残っています
とエラーが出た。
エアーメッセージをググると解決策が書かれてたのでその通りしてみた。
○○が停止していますが PID ファイルが残っています - iwamocchan blog
# rm /var/run/ntpd.pid
# rm /var/lock/subsys/ntpd
# service ntpd start
これでmyreleaseに戻って確認すると正常に商品情報が返ってくるようになった。

まさかの時計が壊れた事が原因だったとは・・・

セブンネットのAPI改悪で在庫情報がなくなる

先月AmazonAPIHTTPSに変更するように通知があり変更したばかりなのに今月からセブンネットショッピングもリニューアルされたとかでURLやAPIが一新された。
セブンネットに限らずAPIとか開発者向けの説明は説明が薄く分りづらいがなんとか解読して、URLや検索方法や条件など微妙に変化あったのはなんとか対応できたが、APIから返ってくる情報が少なくなってしまい在庫情報が無くなってしまった。
もちろんWEBサイトをスクレイピングして、無理矢理在庫情報を抽出する事も可能だけど重くなるのでセブンネットは在庫情報は非表示にします。
いつかセブンネットのAPIが改善されたらまた復活したいと思います。

ログインフォームのアニメーションなど

Giving Animations Life — Tictail  —  Behind the Scenes — Mediumの「Final Iteration — Squash and Stretch」の動きが気に入ったのでマイリリースのログインボタンに採用する事にしました。
採用するとは言え掲載されてるのはGIF画像でアニメーションのソースコードが書かれていないので耳コピならぬ目コピで何度も繰り返し見ながら再現しています。
GIF画像とは方向が逆なので軽やかに現れる感じですがボイーンと落ちてくる感じになりました。
ソースコードが書かれていないと書きましたが、短略URLをクリックして「Export CSS」を見るとソースが見れました。私の目コピが5行のCSSでアニメーションしているところを66行も使ってアニメーションしてるので結果的にかなり簡略化した事になります。)

このところ連続して微修正したのでまとめておきます。

■PC版トップページの「今日発売のコミック」
以前は正方形のサムネイルを並べただけだったのですがテキスト情報も見えるようにし、カーソルを合わせるとマガジンラックから雑誌をつまみ上げるような動きをさせました。

■PC版このマンガがすごい!等を年別に
このマンガがすごい!このライトノベルがすごい!の件数が多くなってきたので各年に分けて表示するようにしました。

コミック雑誌の発売日の更新
マグデリに新雑誌が追加されてないので気づかなかったのですがコミック雑誌の創刊廃刊を調べ直し改訂しました。WEBコミックが増加してます。

■商品詳細に楽天プロダクトに対応
以前は楽天BOOKに無い商品はリンクしてなかったのですが、楽天BOOKに無さそうな商品は楽天プロダクトを検索するようにしました。
imp. R2-D2 バーチャルキーボード IMP-101

■入会・登録の呼び方を統一
各所に入会・登録が混在した呼称を利用登録に統一しました。アカウント登録と悩んだのですがLINEに倣って利用登録にしました。

スマホ版トップから利用登録フォームを移動
スマホトップのログインボタンにアクセスしやすいように新着を下部に移動し利用登録フォームを別ページにしました。

■PC版のヘッダーからサイトの概要を排除
古いSEO対策でヘッダーにサイトの概要を入れていたが効果が薄いのでトップページのみサイト概要を記述するようにしました。

honto with

16日にhonto with - 書店がもっと身近になる読書体験を広げるアプリが公開された。
リアル本屋の検索が出来るというアプリで公開前から期待してた。使ってみると「丸善」「ジュンク堂」「文教堂」のみなんですね。

私の場合は欲しい本は「丸善」「ジュンク堂」「文教堂」といった大型店舗なら大抵あるので、家の近くの数件の小さい本屋さんの在庫が調べられると期待したのですが・・・

とりあえず、凄くレアな本を実店舗で買いたいという方にはオススメなアプリです。

除外コンテンツ

「設定の変更」に除外コンテンツを付けました。

コミックと文庫のみだったのを3年前に書籍を追加してから書籍や廉価版が混在してしまうので、除外する機能は準備してました。(私のリストは以前から廉価版を除外してました。(ゝω・) )

ただ、DVDはディズニー作品のMovieNEXのようにDVDとブルーレイがセットになってるものがあり、コミックは「バンブーコミックス」のようにハッキリしないものがあったので公開を戸惑ってましたが、御意見箱でmmmさんの仰ってたように廉価版コミックの除外には使えるので公開しました。

ただ、あまりオススメできる出来では無いので新着には掲載せずこっそり公開とします。

あと、PC版の「設定の変更」と「プロフィール変更」を微調整しました。

ちょこちょこ改善

サーバーの引っ越し時に間に合わなかった細々した修正をしました。
・パソコン版の「あとで」をメインメニューに追加しました。
スマホ版のコミュニティのコミック一覧をスワイプで全巻見れるようにしました。
スマホ版の商品詳細とコミュニティのレイアウトを調整しました。

あと、今月の発売情報から検索できる機能をこっそり付けました。
このキーワードで検索されるのか不安な時に使ってみてください。
http://my-release.info/DETAIL/