だらけ日記過去ログ:2011年1月8日(土)「アニメ感想Navi不具合のお知らせ」
発覚して4日経ちましたが、お問い合わせもお叱りもきてないのが逆に寂しいです。アニメ感想Naviのページではお知らせしていますが、月替わりの自動更新ギミックに失敗して、結構な量の登録データを消失しました。申し訳ない次第です。 再発しないように気をつけますが、しませんとは言い切れない不安はあります。所詮素人コードですから…。ただ、月末バックアップはなるべくしておこうと思いました。自動バックアップの仕組みを作ると、それはそれで失敗しそうで今は組み込むのが怖いです。 言い訳というか、失敗と油断をした原因を説明…する前にアニメ感想Naviの仕組みを説明しないとわかりませんな。 アニメ感想Naviで感想率を登録すると、その登録データは感想率登録フォルダのルートと、その下に作られたその月のフォルダ内に、同じテキストファイルが保存されるようになっています。今だと具体的には、ルートフォルダと、月別フォルダですね。んで、当初のシステムでは、月が変わる際に、ルートフォルダのデータから終了番組を削除して、その現在の番組データに変更されたファイルをまた新しい月のフォルダに保存する…つまり、先月のフォルダは変更されない仕組みだったんです。 ところが運用してみると、月頭にしょぼいカレンダーデータを取得の際、来月の新番組が入っていたり、まだ新番組が登録されていなかったりということがあることが発覚して、月頭に保存したデータをそのまま残すと、実際には放送されていなかった番組データが残ることになる懸念があるため、月替わりのデータ更新の際、当初のシステムでは変更予定のなかった先月フォルダ内のファイルを自動更新する…という仕組みを追加したんです。 やっていることはたいして難しくなくて、先月フォルダ内のファイルを総ざらいして、その月(先月)に放送されていなかった番組データ行を削除して上書き保存する…というものです。11月〜12月のデータで実験もしました。実際、今回の問題が起こった状態でも、最終回だったのに残っている番組はないと思われます。 問題は番組数の方で、先月の現役(本放送中の)番組を絞り込んでリスト化するというのは、今月(現在)の絞り込みとたいしてコードが変わらないため、コピーして使い回した際、使っていた変数をリネームし忘れていた箇所があったことです。具体的には番組の個数を調べてカウントアップしている変数。その値でループ数を決めているので、今月の番組数>先月の番組数 であると問題が発生しないんです。だから11月〜12月のデータで検証した際は問題(ミス)が見つかっていなかった。今月は、先月の終了番組>今月の新番組 なので、先月の現役番組が全て出切る前に、ループ回数が終わってしまった…つまり、先月放送していたのに、現役番組リストに入っていない状態=やっていなかった ことになってしまい、今回のように「番組データが消失する」という問題が発生した次第です。 問題的には終了番組に限らず、継続番組の一部も放送されていなかったことになり、先月のデータから消えていたんですが、こちらのデータは現役番組データ(ルートフォルダのファイル)から抜き出して先月分のデータにくっつけることで復旧しました(幸い新年早々更新されたデータはあまりなかったので)。 終了番組はそういう復旧ができないため、消えたものは消えたままになっています…。具体的には「夢色パティシエールSPプロフェッショナル」「俺の妹がこんなに可愛いわけがない」「ヨスガノソラ」「アイアンマン」「咎狗の血」「えむえむっ!」「刀語」「侵略!イカ娘」「そらのおとしものf」あたりが消えたと思われます。感想率を登録されていた方は再登録していただけると助かります。 自分的にはそういう問題だと思いたいのですが、現在のデータを見ると、必ずしも全部のデータが消えたわけではないので、バグの香りが…。(あ、わかった、取り扱い作品が全番組終了した場合に処理がスルーされてる → あとで直す) 表示系では、各ページで「先月分のページへの遷移リンク」が作られないという問題が発生していました。これは1月→12月の処理を入れ忘れていたからです。(1月→2月であれば動作したかと) あと、先月の感想率データ併記がうまく動いていなかったのも修正しました。あと、改編期で新番組データだけ参照したいなぁと思ったので、感想率ページに新番組または終了番組のみ表示フィルタをつけました。これに限らず感想率全体表示の絞り込みギミックは作っていかないといけないんだよなぁ…キャプ系のみとか、関東圏のみとかそういう絞り込みして、より感想サイトを見に行きやすくするような。 という問題をふまえて、先月分のデータを再更新できる仕組みを慌てて追加しました。先月、上記の番組を取り扱っていたサイト様は是非再登録をお願いします…。m(_ _)m この先月分再更新システムは来月以降も月頭限定で使用可能にするつもりです。