class Ruboty::Niconico::Actions::Niconico
Constants
- NICOVIDEO_SEARCH_API_URL
Public Class Methods
new(query, mode)
click to toggle source
# File lib/ruboty/niconico/actions/niconico.rb, line 7 def initialize(query, mode) @query = query @mode = mode end
Public Instance Methods
post()
click to toggle source
# File lib/ruboty/niconico/actions/niconico.rb, line 12 def post case @mode when :top video_url(response.first) when :rand video_url(response.sample) end end
Private Instance Methods
api_url()
click to toggle source
# File lib/ruboty/niconico/actions/niconico.rb, line 48 def api_url NICOVIDEO_SEARCH_API_URL end
connection()
click to toggle source
# File lib/ruboty/niconico/actions/niconico.rb, line 40 def connection Faraday.new do |connection| connection.request :url_encoded connection.adapter :net_http connection.response :json end end
params()
click to toggle source
# File lib/ruboty/niconico/actions/niconico.rb, line 52 def params { query: @query, service: ["video"], search: ["title"], join: ["cmsid"], sort_by: "view_counter", size: 100, issuer: "ruboty-niconico" } end
response()
click to toggle source
# File lib/ruboty/niconico/actions/niconico.rb, line 27 def response uri = URI.parse(api_url) response = Net::HTTP.start(uri.host) do |http| http.open_timeout = 5 http.read_timeout = 10 http.post(uri.path, params.to_json) end response.body.scan(/\{"_rowid":.+?,"cmsid":".+?"\}/).map do | value | /\"cmsid\":\"(?<cmsid>.+)\"/ =~ value cmsid end end
video_url(cmsid)
click to toggle source
# File lib/ruboty/niconico/actions/niconico.rb, line 23 def video_url(cmsid) cmsid ? 'http://www.nicovideo.jp/watch/%s' % cmsid : nil end