コミックの移籍問題

まずは昨年末にガラケー対応を停止し、

ガラケーの対応の為にソースがぐちゃぐちゃになってる部分とかを見直したものを先月公開しました。
見た目は変わってないけどシステム的には大きく手を加えたのでいくつか不都合がありご迷惑をおかけしました。


半年ほど前から出版社を移籍が多くなりました。

マイリリースではキーワード登録の他にセット(コミュニティ)を登録する事でコミック発売日一覧に反映できるのですが、この方法だと移籍されると別のセット扱いになるので一覧に現れなくなってしまう問題があり、暫定的に再版されたものは無視して登録してたのですがそうすると出版社の表示が途中で変わってしまう問題がありました。
そこでセットとセットを関連づけして移籍したものや続編のものは発売日一覧に反映させるようにしました。
ただシステムが対応しただけで個々の関連づけは随時対応していきたいと思います。

サーバーを移転しました。

OSがcentos6.1で古くなってしまいサポートが11月に期限切れてしまうので新しいOSを入れたサーバーに引っ越しました。
サーバーはVPSも色々とありますが以前と同じ「さくらのVPS」にしました。
以前ハードウェアの不都合でデータを消されたので別のサーバーも考えたのですが、エコな姿勢は他には無いので「さくらのVPS」にしました。
ゾーンも同じ「石狩第1ゾーン」プランも同じ「SSD 4G」ですがバージョンがv3からv5になったことで仮想コア数が3コアから4コアにSSD容量が100GBから200GBとなってます。

PA-APIの改定によりDVD等のアダルト商品情報停止

アマゾンからの情報取得に使っているPA-APIというAPIが大きく改訂されました。


PA-APIは過去にも認証方法が変わったり、最大検索件数が100件(10page×10件)に制限されたり、売り上げ高によるアクセス制限がかかったりと変更がありましたが今回は変更というか根本的に作り直した感じです。


背景としてはamazonの売り上げにつながらないせどりツールなどがあり改訂は致し方ないです。

マイリリースに影響のあった主な変更点は下記のような感じです。

  • 検索(SearchItems)で成人向けのコンテンツが引っかからなくなった。
  • ジャンル(BrowseNodeId)での検索がなくなった。
  • 表示順(SortBy)が発売日順(NewestArrivals)に取得できない場合がある。
  • なぜかKindle本しか検索されない場合がある。
  • 商品によっては在庫切れになると廃盤扱いにされ情報が取得できない場合がある。
  • ASIN検索(GetItems)で一括取得した場合1件が廃盤等で取得できない場合残りの検索も失敗扱いになる。

裏技的な方法で解決できる部分もありましたし、マイリリースではコミックや文庫はアマゾンだけでなく様々なサイトから情報を集めてきてるので影響は限定的ですが、DVD等の成人向けコンテンツはほぼ取得不可能になりました。
今後もなんとか取得できる方法を試してみたいと思いますが、PA-APIの改善に期待したいです。

ハードウェア不具合

アクセス出来ない状態が続き申し訳ございません。

今朝からサーバの障害で止まっていたましたが
VPSに接続できなくなる障害が発生しました。
障害によりお客様ご利用のVPSに意図しない再起動が発生しました。」
と連絡があったのですが、その後
「データの不整合により正しく起動しないVPSが確認されております」
となってさらに連絡があり、
「ハードウェア不具合の影響によりデータの不整合が発生したため、
お客様ご利用中の「さくらのVPS」が正常に起動しない、または起動はするもののアプリケーションなどが正常に動作しない可能性がございます。」
という事でした。
サーバー屋さんからは10日前のデータなら戻せるという事でしたが
レスキューモードも使えるという事なので、現在レスキューモードでfsck(スキャンディスクのようなもの)を試しております。

もしも復旧に失敗してもDBは毎日バックアップ取っているのでお客様に登録いただいた情報は元には戻るのですが、発売情報が10日前になり諸々整合性がとれなくなるのでしばらく復旧の時間を頂戴したいと考えております。



2018年9月29日追加
昨日は夜まで復旧を試みるも残念ながら失敗しました。
昨晩遅くにサーバー屋さんに10日前の状態に戻す依頼をしました。
翌日になっても連絡がなかったのですが確認すると、しれっと復旧してました。
DBを28日5時時点に復旧し工事中を解除いたしました。
しばらくご迷惑をおかけしますが本日中には発売日情報も戻したいと思います。

Alexaのスキルを公開しました

マイリリースのAlexa版を公開しました。
以前作ったLINE Botと同じシステムなので「発売日を知りたいコミック名を聞かれると答える」という基本の解答システムは出来てるのでAlexa用にアレンジするだけなのですがAlexaの公式の説明がnode.jsで、無理矢理それっぽいやりとりをPHPで書いて見たがダメだったので、慣れないlambdaと慣れないnode.jsを使ったので多少時間がかかった。lambdaにはブラウザ上で開発できる環境があるがこれだけで作るとライブラリを入れるのも難しいし慣れたエディタも使えないのでローカルに環境を作ってzipで圧縮してアップする方法を使った。
ローカルに環境を作るのにバージョンを整える必要があるぐらいで特に難易度が高くはなかった。
難易度が高いのは審査だが。今回のamazonさんは口うるさいが親切にも何が悪いか教えてくれるので助かる。私は「適当に作って後で直す」スタンスで申請したのでかなり注意を受けたが3回目で審査に合格した。
今日は地震があってちょっと公開のタイミングとしては微妙だけど使ってくれる人が増えるとうれしいな。
コミック発売日のマイリリース: Alexaスキル

バーコード読み込みに対応しました

久々の追加機能となりましたが、念願のバーコード読み込みに対応しました。これでコミックの管理が少しは楽になるかもしれません。

元々バーコード読み込みの為にアプリ化するかって気持ちだったけどアプリ化は作業コスト的に厳しくて進んでなかったのですがJavascriptでもバーコードが読めるJQueryプラグインを見つけて導入しました。

数年前にJavascriptでもバーコードが読めるライブラリはいくつか見つけてたのですが写真を撮影してバーコードを読み取るタイプだったり、ライブカメラで読めるタイプのJQueryプラグインも見つけてもAndroidのみの対応だったりで導入を見送ってました。
そして今回見つけたhttps://serratus.github.io/examples/live_w_locator.html=QuaggaJSはリアルタイムかつiOSも使えます。

さすがにアプリと比べると認識スピードや精度にむらがあるのでβ版としております。

バーコードリーダー|コミック発売日 MyRelease
スマホでご確認ください。

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

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

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

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