naroujs

a japanese novel sns syosetu.com api wrapper

Usage no npm install needed!

<script type="module">
  import naroujs from 'https://cdn.skypack.dev/naroujs';
</script>

README

naroujs

小説家になろうデベロッパー NodeJS/ブラウザー用 JavaScriptラッパー

インストール

インストール なろう小説API なろう小説ランキングAPI なろう殿堂入りAPI なろう18禁小説API

NodeJS

npm install naroujs --save
import naroujs from 'naroujs';
naroujs().then(result => console.log(result));

GET送信にaxiosを使用します。

ブラウザDownload

<script src="https://npmcdn.com/naroujs/lib/index.browser.min.js"></script>
<script>
naroujs().then(result => console.log(result));
</script>

GET送信にfetch-jsonpを使用します(CORS回避のため)。

API DEMO

なろう小説API

インストール なろう小説API なろう小説ランキングAPI なろう殿堂入りAPI なろう18禁小説API
  • naroujs(params) -> Promise<result>

    URLパラメータをオブジェクトで第一引数に渡し、APIへリクエストを送ります。 結果はPromiseでオブジェクトを返します。内容として

    • リクエストに使用した uri
    • リクエストに一致する全件数 allcount
    • リクエストに一致する結果 items

    を持ちます。

    naroujs({lim: 1}).then(result => console.log(result));
    // {
    //   uri: 'http://api.syosetu.com/novelapi/api/?lim=1',
    //   allcount: 396955,
    //   items:
    //    [
    //      {
    //        title: '無職転生 - 異世界行ったら本気だす -',
    //        ...
    
  • naroujs.pickup(params) -> Promise<result>

    naroujsと同じですが、paramsのデフォルト値として{ ispickup: 1, order: 'hyoka', lim: 200 }を持ちます。

    ▽ピックアップ指定/・条件抽出GETパラメータ / なろう小説API

    注意 小説家になろうのピックアップはispickupが1でさらに小説評価が高い順200件です。 小説家になろうのピックアップと同一結果を取得したい場合はispickupが1であるかを確認し、さらに総合評価で並べ替えその結果を200件取得する必要があります。

    http://api.syosetu.com/novelapi/api/?ispickup=1&order=hyoka&lim=200 小説家になろうで使っている小説ピックアップの情報を取得するURLです。

パラメーターの詳細

gzipoutは現在指定できません。NodeJSではgzip=5,out=json、ブラウザではout=jsonp固定になります。

なろう小説ランキングAPI

インストール なろう小説API なろう小説ランキングAPI なろう殿堂入りAPI なろう18禁小説API
  • naroujs.rank(params) -> Promise<result>

    APIの基準URLをhttp://api.syosetu.com/rank/rankget/(なろう小説ランキングAPI )に変更して、リクエストを発行します。内容として

    • リクエストに使用した uri
    • リクエストに一致する結果 items

    を持ちます。

    naroujs.rank({rtype: '20130501-m'}).then(result => console.log(result));
    // {
    //   uri: 'http://api.syosetu.com/rank/rankget/?rtype=20130501-m&out=json&gzip=5',
    //   items:
    //    [
    //      { ncode: 'N7648BN', pt: 36092, rank: 1 },
    //      ...
    

パラメーターの詳細

gzipoutは現在指定できません。NodeJSではgzip=5,out=json、ブラウザではout=jsonp固定になります。

なろう殿堂入りAPI

インストール なろう小説API なろう小説ランキングAPI なろう殿堂入りAPI なろう18禁小説API
  • naroujs.fame(params) -> Promise<result>

    APIの基準URLをhttp://api.syosetu.com/rank/rankin/(なろう殿堂入りAPI )に変更して、リクエストを発行します。内容として

    • リクエストに使用した uri
    • リクエストに一致する結果 items

    を持ちます。

    naroujs.fame({ncode: 'n9669bk'}).then(result => console.log(result));
    // {
    //   uri: 'http://api.syosetu.com/rank/rankin/?ncode=n9669bk&out=json&gzip=5',
    //   items:
    //    [
    //      { pt: 623, rank: 11, rtype: '20130501-d' },
    //      ...
    

パラメーターの詳細

gzipoutは現在指定できません。NodeJSではgzip=5,out=json、ブラウザではout=jsonp固定になります。

なろう18禁小説API

インストール なろう小説API なろう小説ランキングAPI なろう殿堂入りAPI なろう18禁小説API
  • naroujs.r18(params) -> Promise<result>

    APIの基準URLをhttp://api.syosetu.com/novel18api/api/(なろう18禁小説API )に変更して、リクエストを発行します。

  • naroujs.noc(params) -> Promise<result>

    naroujs.r18と同じですが、paramsのデフォルト値として{nocgenre: 1}を持ちます。 「ノクターンノベルズ(男性向け)」を検索対象とします。

  • naroujs.mnlt(params) -> Promise<result>

    naroujs.r18と同じですが、paramsのデフォルト値として{nocgenre: 2}を持ちます。 「ムーンライトノベルズ(女性向け)」を検索対象とします。

  • naroujs.bl(params) -> Promise<result>

    naroujs.r18と同じですが、paramsのデフォルト値として{nocgenre: 3}を持ちます。 「ムーンライトノベルズ(BL)」を検索対象とします。

  • naroujs.mid(params) -> Promise<result>

    naroujs.r18と同じですが、paramsのデフォルト値として{nocgenre: 4}を持ちます。 「ミッドナイトノベルズ(大人向け)」を検索対象とします。

パラメーターの詳細

gzipoutは現在指定できません。NodeJSではgzip=5,out=json、ブラウザではout=jsonp固定になります。

ほか、参考文献

謝辞

このアプリケーションは非公式のもので、株式会社ヒナプロジェクトが提供しているものではありません。

関連するプロジェクト

開発環境

下記がグローバルインストールされていることが前提です。

  • NodeJS v5.11.1
  • Npm v3.8.6 (or pnpm)
git clone https://github.com/59naga/naroujs
cd naroujs
npm install

npm test

License

MIT