小説を読もう!(小説家になろうグループ) 内の検索結果を自分のウェブページに挿入するためのライブラリを書いた。
使うには jQuery が必要 (jQuery のプラグインとして作ってもよかったかもしれない)。
簡単な使い方
手順としては以下の通り。
- RequestBuilder を new する
var requestBuilder = new com.hiyoko.NarouAPI.NovelAPI.getRequestBuilder();
- requestBuilder を用いてリクエストを組み立てる。組み立てる際に使うことができる関数は後述。
- requestBuilder の request 関数を使って結果を取得する。request 関数には callback 関数を与え、結果を利用する。
HTML に次のように記述する。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://shunshun94.web.fc2.com/lib/narouNovelAPI.js"></script>
次のようにすると結果を簡単に参照できる。コンソールを使うことですぐに結果を確認できる。
var requestBuilder = com.hiyoko.NarouAPI.NovelAPI.getRequestBuilder();
requestBuilder.limit(112).orderToReviewer.request(function(list, count){console.log(list);});
各クラス・関数の説明
概要
このライブラリは以下の2つのクラスからなります。
- com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
- com.hiyoko.NarouAPI.NovelAPI.Novel
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
なろう小説APIに送るリクエストを作成・送信するためのクラスです。
リクエストを組み立てるための関数と、リクエストを送るための関数があります。
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.limit => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
リクエストして得られる小説の件数の最大値を指定します。最大値は500です (なろう API の仕様による)
引数:
- opt_count: number
リクエストして得られる小説の件数の最大値です
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.start => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
リクエストして得られる小説の表示開始位置を指定します。たとえば全部で10作品あるとして、3作品目以降の小説情報を取得したい場合は3と指定します。
引数:
- opt_count: number
リクエストして得られる小説の表示開始位置です
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.genre => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
引数:
- code:string|number
ジャンルコードです。ハイフン区切りで複数入れることもできます。
ジャンルコードは com.hiyoko.NarouAPI.NovelAPI.Genre に一覧されています。
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByUniqueView => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
閲覧者が多い順に並べます。2016年2月現在、小説家になろうに実装されてない機能であるため無効です。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByBookmarkCount => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
ブックマーク数が多い順に並べます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByReviewCount => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
レビュー数が多い順に並べます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByScore => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
総合評価の高い順に並べます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByScoreAsc => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
総合評価の低い順に並べます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByComment => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
感想の多い順に並べます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByReviewer => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
評価した人が多い順に並べます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByReviewerAsc => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
評価した人が少ない順に並べます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByWeekly => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
週間の閲覧者数が多い順に並べます。この値は毎週火曜日にリセットされます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByLength => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
小説本文の文字数が多い順に並べます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByLengthAsc => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
小説本文の文字数が少ない順に並べます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByNewer => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
N コードが新しい順に並べます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.orderByOlder => com.hiyoko.NarouAPI.NovelAPI.RequestBuilder
古い順に並べます。
引数:
返り値:
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder:この関数による設定を反映済みの RequestBuilder が返ります
com.hiyoko.NarouAPI.NovelAPI.RequestBuilder.request => void
リクエストを小説家になろうのサイトに送信し、コールバック関数で結果を受け取ります。
引数:
- callback: function(novels, allResultCount)
コールバック関数を引数にとります。 コールバック関数の第一引数は Array. (つまり com.hiyoko.NarouAPI.NovelAPI.Novel の配列)。 第二引数は検索の全件数を number で受け取ります。
返り値:
なし
com.hiyoko.NarouAPI.NovelAPI.Novel
なろう小説 API の結果を扱う JavaScript オブジェクトです。関数は持たず、プロパティのみ持ちます。
com.hiyoko.NarouAPI.NovelAPI.Novel.title => string
小説のタイトルです。
com.hiyoko.NarouAPI.NovelAPI.Novel.writer => string
小説の著者です。
com.hiyoko.NarouAPI.NovelAPI.Novel.outline => string
小説のあらすじです。
com.hiyoko.NarouAPI.NovelAPI.Novel.isCompleted => boolean
小説が完結済みか否かを表します。完結済みならば true が返ります。
com.hiyoko.NarouAPI.NovelAPI.Novel.isSuspend =>boolean
小説が更新を長期停止しているか否かを表します。停止しているならば true が返ります。
com.hiyoko.NarouAPI.NovelAPI.Novel.keywords => Array.
小説に登録された keyword です。
com.hiyoko.NarouAPI.NovelAPI.Novel.date.start => string
初回掲載日です。YYYY-MM-DD HH:MM:SSの形式で格納されています。
com.hiyoko.NarouAPI.NovelAPI.Novel.date.last => string
最終掲載日です。YYYY-MM-DD HH:MM:SSの形式で格納されています。
com.hiyoko.NarouAPI.NovelAPI.Novel.date.update => string
更新日時ですです。YYYY-MM-DD HH:MM:SSの形式で格納されています。
com.hiyoko.NarouAPI.NovelAPI.Novel.review.point => number
小説の評価点です。
com.hiyoko.NarouAPI.NovelAPI.Novel.review.fav => number
小説のブックマーク数です。
com.hiyoko.NarouAPI.NovelAPI.Novel.url.nobel => string
小説の URL です。
com.hiyoko.NarouAPI.NovelAPI.Novel.url.writer => string
小説の著者の URL です。