まとめサイトの巡回は、一覧の 1 ページ目しか見ていなかった:トレカの記事は 2〜4 ページ目にあり、本文も先頭 6,000 文字で切れていた
トレカダッシュ 開発の記録 / 2026年8月
iOS アプリ「トレカダッシュ」の情報源の 1 つに、入荷情報のまとめサイトがあります。抽選の記事を、まとめて載せているサイトです。この巡回に、「出るべきものが、出ていない」原因が、2 つ、ありました。
この記事は、2026 年 8 月 28 日の作業の記録から書いています。
原因 1:一覧の、1 ページ目しか見ていなかった
まとめサイトの、抽選の記事の一覧を読む処理(fetchNyukaNowChusenArticles)は、一覧の1 ページ目だけを読んでいました。1 ページ目の 11 件は、ゲーム機、たまごっち、ぬいぐるみなどが中心でした。トレーディングカードの記事は、後ろのページにありました。
| 記事の種類 | どこにあったか |
|---|---|
| ポケモンカード各種 | 後ろのページ |
| ガンダムカードゲーム各種 | 2 ページ目 |
| ドラゴンボール、デジモン、デュエル・マスターズ各種 | 3 ページ目 |
| ユニオンアリーナ、ヴァイスシュヴァルツ各種 | 4 ページ目 |
既存の記事の多くは、あるポケモンカードのまとめ記事の由来なのに、その記事自体を、今は、読みに行っていませんでした。直し方は、12 ページまで、たどることでした。
原因 2:本文の、先頭 6,000 文字しか、AI に渡していなかった
ポケモンカードのまとめは、1 ページに、15 店以上が並びます。AI には、本文の先頭の 6,000 文字だけを渡していたので、後半の店が、まるごと落ちていました。読み取れる件数が、実行のたびに、48、39、40 件と、揺れていたのも、このためでした。
直し方は、5,000 文字ずつ、600 文字の重なりをつけて、全部を読むことでした。取り込みの本体も、同じ関数を使います。
同じ日に見つけた、年のない日付
まとめの表は、「8 月 30 日(日)」としか書きません。今日の日付を、AI に渡していなかったので、ポケモンカードの案件が、軒並み2020 年 8 月 30 日として返っていました。過去の締切は、入口の関門が弾くので、この経路のポケモンカードの案件は、まるごと取り込まれていませんでした。プロンプトに、今日の日付と、「今日より前の年を補ってはいけない」を入れたところ、受付中の案件は、0 件から 46 件読めるようになりました。(これは、別の記事にも書いた話です。)
分かったこと
取り込みの 3 つの「切れ目」:ページ、文字数、年。
- 一覧は、最後のページまで読む。1 ページ目に、欲しいものがあるとは限りません。
- AI に渡す文字数の上限で、後半が落ちていないか見る。読み取れる件数の揺れは、サインです。
- 全文を、重なりつきで、順に渡す。先頭だけを渡すと、後ろが落ちます。
- 年のない日付は、今日の日付を渡す。6 年前を補われます。
- 「既存の記事の由来を、今は読んでいない」は、取りこぼしの印。
この話に出てくるもの
- トレカダッシュ — トレカの抽選・予約・先着の情報を集める iPhone アプリ
- 本物の抽選を、静かに捨てていた 4 つの実例 — 年のない日付の話
- 競合サイトと突き合わせて、取りこぼしを数えた — 取りこぼしを数えた話
- 「変な記事がめっちゃ増えてる」 — 経路ごとに数えた話
ほかの記録
- 「サーバーが落ちた。こちらからは復旧できない」は、誤りだった:止まっていたのは、SSH の受信だけだった — 午前 3 時 10 分からサーバーに接続できなくなり、私は「止まった」と判断した。実際は、プロセスは 7 日以上動き続け、定期実行 192 本も正常で、遮断されていたのは SSH の受信だけだった。
- 「変な記事がめっちゃ増えてる」:作られた経路ごとに数えて入口を塞いだ。数え方も 2 回、間違えた — 表示中の抽選 252 件を経路ごとに数えた。まとめの表に残る終わった回を毎日取り込んで締切が空になっていた(33 件)ほか、応募リンクが検索結果やトップ、締切が自分の店の行と食い違うものを、入口で塞いだ。
- 「自動化できるものは全部自動化して」:まず数えると、修復処理 66 個が一度も定期実行から呼ばれていなかった。全部は載せず、6 個だけ載せた — HTTP の 319 個と定期実行の 184 個を呼び出しで突き合わせると、66 個が手で叩かないと動かなかった。継続的なものだけを、下見のあとで 6 個載せた。キューに積む処理が順番待ちを見ておらず、待ち行列が伸び続けていたことも直した。
コメント
感想や、記事の間違いの指摘は、ここへ。書くには、GitHub のアカウントが要ります。
押すと、giscus(giscus.app)と GitHub に接続します。押さなければ、接続しません。詳しくはあつかいに書いています。