同人ゲームを底値で買いたくて、FANZAとDLsiteの価格を毎日記録するサイトを作ってみた

前回の日記で「最近個人開発をよくやるようになりました」と書いたのですが、そのうちの1つの話です。

※成人向け作品を扱うサイトの紹介です。この日記に成人向けの画像はありません。

 

同人ゲームを買うとき、FANZAとDLsiteがそれぞれでセールやってるので片方で作品を見つけても「一応もう片方もチェックしておこうかな」ってなるんですよね。

 

でも、毎回両方開いて見比べるのは面倒

しかも300円セールだって油断してると実は以前100円セールでも売られてた作品だったする。

 

というわけで価格履歴を見れるサイトを作りました

 

同人価格DB — FANZA・DLsiteの同人作品 価格推移とセール履歴

FANZA同人とDLsiteの価格を毎日記録して、作品毎に

- 両ストアの今の価格と割引率
- 価格の推移グラフ
- 記録を始めてからの最安値

がまとめて見られます。

 

SteamでいうSteamDBの同人版的なやつです。

 

こんな画面(作品はサンプルです)

 

これで「今が最安値」って時に買える。

逆に「前回は半額だったのに今回は30%OFFか、じゃあ待つか」という判断もできます。


一覧やセールのページで毎回ここから集計すると重いので、クロールが終わった後にマテリアライズドビューを作り直して、画面はそれを読むだけにしてます。

一番ハマったのは「同じ作品」を見つける所

FANZAとDLsiteって、共通の作品IDが無いんですよね。

なのでタイトルとサークル名で突き合わせる事になるのですが、同じ作品でもストアによって表記が微妙に違う……。

  • 全角と半角 (`?` と `?`、`~` と `~`)
  • 伏字の記号 (`●` と `○`)
  • `♡` が片方では `(はーと)` や `♪` になってる
  • 大文字と小文字 (`COMIC Ver.` と `COMIC ver.`)
  • サークル名の表記 (`BULLET` と `Bullet`)

まあ揃えてから比べればいいか、と思ってやってたのですが、緩くしすぎると今度は別の商品がくっつきます。

タイトルの末尾に付いてる `《…》` を「どうせ購入特典の表記だろう」と思って無視してたら、`《総集編》` みたいな版の違いまで消えてて、別の商品が90件くらい1作品にまとまってた……。

表記がもっと大きく違うやつは、毎晩候補を出して、以下を全部満たした時だけ自動で1作品にまとめる様にしてます。

  • 同じサークルで、相手が1つに決まる (1対多は触らない)
  • タイトルの類似度 (bigramのDice係数) が0.95以上
  • タイトルに含まれる数字と、版を表す語が一致する
  • サムネイル画像のハッシュ (dHash) の差が256bit中8bit以内
  • 定価がほぼ同じ (2%以内)

1つでも外れたら人間(自分)が目で見て判断。

サムネイルが一致してても「表紙を使い回した版違い」ってのがあるので、画像だけだと決められないんですよね。

同じ作品が2つに分かれるより、別の作品が1つにまとまる方が被害が大きい(違う商品の値段が混ざる)ので、迷ったらまとめない方に倒してます。

他にもハマった所

  • DMMのWeb APIが新着作品の約25%を返してくれない(品番を直接指定しても0件)
  • FANZAのランキングは上位1.5〜2万件より先が実質順不同だった
  • AIクローラーにLightsailのCPUバースト枠を使い切られた

特に最近はAIクローラーがマジ多い。最初滅茶苦茶アクセスあるなって思ったら全部AIクローラーでした。

 

ブラウザ拡張も作りました

で、サイトを作ったはいいけど、毎回サイトを開いて調べるのも結局面倒。

ってことでブラウザ拡張も作りました。

FANZAやDLsiteの作品ページを開くと、価格表示のすぐ下に

  • もう片方のストアの今の価格
  • 両ストアの価格推移グラフと最安値
  • 今どっちが安いか

が出ます。

 


DLsiteで見てる時に「FANZAの方が安いな」とか、逆に「このままDLsiteで買っていいな」ってのがその場で分かります。

タブを行ったり来たりしなくて良くなった。

インディー価格DB - Chrome Web Store

同人価格DB 価格履歴 – 🦊 Firefox (ja) 向け拡張機能を入手

是非インストールしてください。chromeの制限引っかからないようにchromeの場合はオプションで成人向けを許可しないと一般向け作品のみになります。

googleカレンダーに対してicalから同期が取れなくなった現象の解決方法

久しぶりの日記更新です。


先月末、gmailの2段階認証*1をしてからiCalで
「入力されたパスワードが違う可能性があります。」とかパスワードが違う的なメッセージが表示されてました。
アプリケーション固有のパスワードを発行して、何度も試していたのですが、それでもパスワード入力が求められてました。


今日なんとか試行錯誤してたんですが、結果的に[システム環境設定]の[メール/連絡先/カレンダー]で
一回既存のgmailアカウントを削除して、アカウントを追加し直すことで解決しました。


大分ハマったので情報共有の為にメモ。

*1:2段階確認プロセスって表現の方が正確なのかもしれない

URLを付けたショートカットキーのマッピングがわからない。

twitterにブラウザ上からツイートしたくてvimperatorのプラグインの
はてなグループ
を入れてみました。

:tw {コメント}

しかしこうなってくると今見てるURLにコメント付けて

:tw http://d.hatena.ne.jp/zenpou/ 

とかやりたくなってきました。
そういえばvimperatorで"T"とか"O"とかやってる時現在開いてるページのURLが付いてるよねーと
思ってmapしようとしたのですが、urlってどう書くんだ?

map S :tw {url}

ってやっても当然動かないし
ってことでvimperatorのソース落としてきて"T"とか"O"がどうやってマッピングされてるか見てたら

        mappings.add([modes.NORMAL], ["O"],
            "Open one or more URLs, based on current location",
            function () { commandline.open("", "open " + util.losslessDecodeURI(buffer.URL), modes.EX); }); 

ってやってた……。
うーん。vimperatorrcでやりたいけどmapでどう書けばいいかわからんしなあ。
ってことで.vimperator/plugin/に

mappings.add([modes.NORMAL], ["S"],
        "Twitter send with url ",
        function () { commandline.open("", "tw " + util.losslessDecodeURI(buffer.URL) + " - " + buffer.title, modes.EX); });

こんなん書いた(ついでにタイトルも付けるようにしてます)
メンテし辛いし凄いバッドノウハウな感じがするので「こうすればいいよ」って事知ってる方いましたら教えてください。

Firefoxで右クリックで図書館の蔵書検索できるようになった

最近よく葛飾区の図書館を利用するのですが、毎回葛飾区図書館に移動するの面倒。


firefoxで文字列選択して右クリックして「ほにゃらら」をGoogleで検索とかできますけど
あれを拡張して、登録してある検索エンジンからさがすプラグインがありました。
Context Search(リンク)って言うので、
右クリックから検索する検索エンジンが選べる様になります。


で、図書館の検索なんてデフォルトじゃ出来ないので追加する必要があるのですが、
検索エンジンの追加については検索エンジンの管理というのがありました。
てか、この機能さっきまで知らなかった。



でもプラグイン形式みたいで見つからない……
まあ、じゃあ作るのか、作り方ぐぐろーって思って検索して「firefox 検索エンジン 追加」で
ヒットして出てきたサイトに行くと
拡張を使って自分で作成って項目がありました。


Ready2Searchというものがあるらしい。
使い方を知るためにReady2Searchでの検索プラグイン作成にアクセスすると
東京の都立・区立図書館OPAC検索とかがすでにあった。


というわけでそこの葛飾区図書館のプラグインインストールして
右クリックからすぐ図書館の本検索できるようになった。


なんも新しい方法じゃないけど、さっき調べるまで知らなかったのでメモ。


ちなみに手順を調べようってきっかけになった本は図書館に6冊もあったけど予約40件もあって
借りれそうになかった……。

TinyMCEの画像挿入がFirefoxの3.6.9で動作しない現象

9/7のFirefoxのアップデートで、TinyMCEの2.1.2を使っているサイトで
画像が挿入できなくなる現象が発生しました。


原因を探るためにimgタグを挿入してるmceInsertContentってところまで
追ったところimgタグ内にsrcはちゃんと設定されてる……。
もうちょっと先までステップ毎に実行した処
fixGeckoBaseHREFBugって関数内で

			if (m == 1) {
				h = h.replace(/\ssrc=/gi, " mce_tsrc=");
				h = h.replace(/\shref=/gi, " mce_thref=");

				return h;
			} else {

という2.0.6系から入っていた関数がありました。
ここのreplaceをコメントアウトした所解決した。


ちなみに、mce_tsrcと3.6.9でぐぐったら、
http://tinymce.moxiecode.com/punbb/viewtopic.php?pid=80188
ってのがあった。


同じ事やってる人が既に……。
しかし関数名から考えるとブラウザの不具合を修正する為の対応っぽいので対応方法としては不安。


てか、そもそもアップデートしろって事ですね。