の記事一覧 2020年05月

2020/05/21

【考察】ユーザ数の限界値

【開発開始】小説家になろう。更新通知プログラム

【考察】小説家になろうAPI

実際に作成するにあたって、いくつか欲しい機能がある。メールでの通知だ。

最初は、Twitterでの通知を考えたが、昨今のTwitterの動きを見ていると、BOT的な動きに見られてしまう可能性がある通知を行うのは控えた方がよいと考えた。DMもTwitterAPIから送れなくなっている。Twitterをくだらない出会いやSPAMツールにした奴らへの対応だろうが、本当につまらなくなってしまった。

Android端末と連動して通知を出す方法もあるが、世間ではまだiOSが搭載されているスマホを使っている人もいる。ChromeやMicrosoft Edgeとかに通知する方法も考えたが、あまり複雑なことができそうにない。サーバの負荷が上がってしまう可能性がある。

それらの条件を考えると、メールで通知するのが一番現実的に思えてくる。

個人的に使うだけなら、タスクバーにアイコンを常駐させて通知してもいいし、それこそポップアップを表示してもいい。

今考えているのは、サーバ経由での通知の方法だ。

手元のWindowsプログラムで、サーバに自分が読んでいる小説を登録して、小説の更新頻度から適当に割り振った小説家になろうAPIをコールする頻度を決めて、サーバからまとめてコールする。

そこから、1時間毎程度の頻度で更新された小説の情報を取得して登録ユーザにメールする。

使っている一番安心できそうなサーバがXserveなので、メールの限界を調べる。

各プラン共通で、下記の通りメール送信数の目安を設けております。

1,500通/時間
15,000通/日

上記の目安量を著しく超えている場合は、メール機能の利用制限を行う場合があります。

制限に引っかかりそうなのは、後者の15,000通/日なので、ユーザ数の上限を考えると、1時間に一度か一日1回程度のメール送信を考える。メールの本文に、更新された小説の情報が並べばいいと思っている。

そうなると、15000/24 = 625 が最大許容ユーザ数になる。実際には、余裕を持たせるので、半分に設定したとして、300ユーザを上限にする。

サイトのアクセス状況から、300名のユーザが確保できるとは思えないので、十分な数字だと判断する。

300名のユーザが、小説家になろうのブックマークの限界の半分を使っているとすると2,000件の登録を平均になる。多い気がするが、2,000の登録を300ユーザが行うと、600,000件のデータになる。有名作品などのダブりがあるだろうが、そのあたりは考慮しないとしても、60万の小説データを毎日取得するのは現実的ではない。小説家になろうAPIの制限を考える必要がありそうだ。

2020/05/20

【考察】小説家になろうAPI

Windowsプログラムで作成する場合には、制限はそれほど考えなくてよさそうだ。

IPアドレスごとに利用制限を行います。
1日の利用上限は80,000または転送量上限400MByteです。
利用制限は初回アクセスから24時間が適用範囲です。
初回のアクセスから24時間後に回数と転送量を記録していたカウンタと
初回アクセス時刻をリセットします。

http://dev.syosetu.com/man/api/

遅延に関しては、もうあきらめるしかないが、制限は考える必要はなさそうだ。

取得するデータも最小限に抑えればいい。

なろうAPIを見ていると、なんとなく問題点が見えてくる。

話数別の更新日時が取得できない。そのために、メールなどでの告知ができないのだろう。あと、APIには”章”の考え方もない事から、機能として後付けされたのだろう。

フラグが大量に存在しているが、本来このフラグは種別分けされて処理されるべき物だろう。APIだからこうしているという考えもできるが、不自然な感じがしてしまう。フラグは、楽だからこうしていると思えばいいのだが、問題はポイントの取り扱い部分だ。APIの仕様を見てもいまいちはっきりとしたい。

日間ポイント
(ランキング集計時点から過去24時間以内で新たに登録されたブックマークや評価が対象)

週間ポイント
(ランキング集計時点から過去7日以内で新たに登録されたブックマークや評価が対象)

月間ポイント
(ランキング集計時点から過去30日以内で新たに登録されたブックマークや評価が対象)

四半期ポイント
(ランキング集計時点から過去90日以内で新たに登録されたブックマークや評価が対象)

年間ポイント
(ランキング集計時点から過去365日以内で新たに登録されたブックマークや評価が対象)

この部分だ。

”ランキング集計時点”の指定がないのだ。どこかに、保存してあれば、24時間毎にデータを取得すれば履歴として使える。1時間毎にデータを取得すれば、時間ごとの集計が可能になる。しかし、この書き方だと、曖昧過ぎる。ランキング集計時点がシステムで決められているのなら、APIで取得できる数値は参考値になってしまう。参考値なら参考値で説明を追記してほしい。

あと説明が不親切。

novelupdated_at 小説の更新日時
general_lastup 最終掲載日
YYYY-MM-DD HH:MM:SSの形式

の違いに関して

novelupdated_at 小説の更新時刻
最後に小説データが更新された時刻です。
general_lastup 小説最終掲載日です。小説を公開した時点で反映されます。
上のgeneral_firstupと違い連載小説の場合、次話投稿時にも反映されます。ただし編集の場合は反映されません。

と説明されています。

特に、二つ目はひどいです。

”小説を公開した時点で繁栄されます”と”次話投稿時にも反映されます”となっています。ただし以降の書き方に関しては意味不明です。

データを取得して調べるしかないので、APIの調査は実際にプログラムを組んでみて調べるしかないと結論づけます。

はぁ・・・。

そもそも、更新通知をメールで投げてくれれば問題は解決するのに・・・SPAMにでも指定されたから止めたのか?

それとも単純に、メールで告知して小説を読まれると、広告が表示されなくてクリックされないから、作らなかったのか?

ユーザビリティが他の投稿サイトに追い越されて行ってしまっているように感じてしまう。

2020/05/18

【開発開始】小説家になろう。更新通知プログラム

小説家になろうのAPIを使って一定時間毎にチェックを行って、更新情報を通知する。

Windowsプログラムにしようか、Webプログラムにしようか迷っているのだけど、サーバの負荷とか考えると、Windowsプログラムなんだよな。

更新情報だけ、サーバにあげてもいいけど・・・さて、どうしようか考えている。

一番いいのは、小説家になろうのサイトで更新情報を通知してくれる方法だけど、期待できないのだよな。

広告