この記事は 驚異のFANZA女優検索 Advent Calendar 2021 の 11 日目の記事です。
データ更新
女優と作品のついては基本的には何もしなくてもほぼ毎日完全自動で更新している。デイリーで毎日0時とマンスリーで毎月1日12時にAzure WebjobsによってC#で書いたプログラムを動かしている。
#女優APIとDBの差分で新規女優を追加する
まずは女優APIで全女優を取得する。女優APIは日時指定がないため新しく追加された女優は分からない。全女優を取得して、次にDBに登録している女優データを全取得して2つの差分をとれば新しく追加された女優が分かる。新しく追加された女優をDBに登録すれば、これで勝手に最新データと追従出来る。最初の頃はこれを1週間に1回やっていた。
#作品情報の追加
暫くして作品情報も出すことにした。ただし女優APIからは作品情報は取れない。女優APIで取得したidを使って商品情報APIから作品を取得することが出来る。そこで次は、女優APIで全女優を取得して、女優を一人ずつループでぐるぐる回してidから作品情報を取って追加するようにした。女優同様に作品も差分だけを追加するようにして、さらに女優データに作品数という項目を増やして、追加数を加算するようにした。つまり女優データは全取得して一人ずつチェックして新規なら追加、変更があれば更新という仕組みだ。
#作品情報の更新
更新処理は最初は女優は女優数だけで、作品は特に何もしていなかった。ただ作品の場合サンプルが提供されるタイミングが大体新規のタイミングではないことが分かってきた。サンプルが追加されたかどうかは結局APIの結果を見ないと分からないので、作品は今日出た作品までは常に更新チェックをする仕組みにした。今の所、作品発売日以降の更新は特にしていない。もしかしたら細かい更新などはある可能性もあるが、大きく気になる所は見つかっていないので発売日までとしている。
#女優情報の更新
その後女優情報に関しては、女優APIから取れる情報以外にもWikipedia情報、さらにその情報からTwitter,Instagramの情報、その女優が出ている作品のジャンルの数、バストアップ画像がアダルト表現を含んでいるか、バストアップ画像がメガネをかけているか、一番新しい単体作品と一番古い単体作品を取得するようにした。さらにこのタイミングで新規作品や発売日作品のツイートもしている。これらは新規の場合は必ず、また作品数が変わった時も更新するようにしている。画像データやWikipedia情報などは何時更新されるか分からないが、常にやるほどではないので、作品数が変わった時のみ更新にしている。
#作品情報の月更新
ここまではデイリーでのみ回していたが、一度全体的に色々チェックしているとリンク切れになっている作品がちょこちょこあることに気づいた。調べてみると商品情報APIからもDMMの本サイトからもその情報が削除されていた。いわゆる絶版だと気づいた。絶版になった時にデータを非表示または削除するような仕組みを作っていなかった。絶版になるタイミングは何時か分からない、またそれが即時反映しなくても気づかない人は多いと思う。そうなると1か月に1回程度だけ絶版に対応するぐらい緩いしくみでも問題ないかと思った。
#女優情報の月更新
女優情報も名前など新規で取ればもう変わることが殆どないと思うデータは更新していない。スリーサイズやフリガナなどもそうだ。ただ実際にフリガナが間違っていて、後日修正されるケースがあった。もしかしたら他の項目、例えばスリーサイズが微妙に変わったりすることもあるかもしれない。ただ、変わっても殆どの人はそのことに気づかないと思ったのでこれも1か月に1回だけ全更新するようにした。
#デイリーとマンスリー
色々あってデイリーとマンスリーを分けた自動更新運用にしたが結果的にこれは中々良かった。なるべく短時間で沢山呼びたい情報はデイリー、時間がかかっても全更新したい場合はマンスリーと使い分けることで、プログラムで言うとビルド、リビルドのような使い分けが出来る。実際にたまたまユーザーからフリガナ間違いを指摘されたこともあってその時はピンポイント修正したが、特に誰も気づかないようなミスがあっても1か月後には勝手に直っているというのは心強い。データ管理的にもオススメの方法かなと思う。