Sha256: 9ca19e8140a0ab730b11dc2d61bd4bd5f8f218f6eaf8f02f38cb7f0bc7b60485
Contents?: true
Size: 1.71 KB
Versions: 4
Compression:
Stored size: 1.71 KB
Contents
# -*- coding: utf-8 -*- # # Copyright 2013 whiteleaf. All rights reserved. # require "open-uri" require "yaml" require_relative "../novelinfo" module Narou # # 小説家になろうデベロッパーAPI操作クラス # class API # # なろうデベロッパーAPIから情報を取得 # # setting: なろうの SiteSetting # of: 出力パラメータ(http://dev.syosetu.com/man/api/#of_parm 参照) # def initialize(setting, of) @setting = setting @api_url = @setting["narou_api_url"] @ncode = @setting["ncode"] request_api(of) end def [](key) @api_result[key] end def request_api(of, gzip = 5) # Ruby 2.0 以上だと gzip 自動デコード gzip_opt = RUBY_VERSION >= "2.0.0" ? "gzip=#{gzip}&" : "" url = "#{@api_url}?#{gzip_opt}ncode=#{@ncode}&of=#{of}" open(url) do |fp| result = YAML.load(fp.read) if result[0]["allcount"] == 1 @api_result = result[1] if of.length > 0 @api_result["novel_type"] = @api_result["noveltype"] @api_result["writer"] = @api_result["writer"].to_s # なろうAPIが返すデータが数値の場合があるため強制変換 end else # なろうAPIからデータを取得出来なかった # 開示設定が検索から除外に設定されるとAPIからはアクセスできなくなる result = NovelInfo.load(@setting) unless result error "小説家になろうからデータを取得出来ませんでした" exit end @api_result = result end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
narou-1.5.11 | lib/narou/api.rb |
narou-1.5.10.1 | lib/narou/api.rb |
narou-1.5.10 | lib/narou/api.rb |
narou-1.5.9 | lib/narou/api.rb |