class BilibiliSunday::Client
Constants
- DEFAULT_HOST
- DEFAULT_PORT
Public Class Methods
new(host = nil, port = nil, working_dir = nil)
click to toggle source
# File lib/bilibili_sunday/client.rb, line 13 def initialize(host = nil, port = nil, working_dir = nil) @host = host || DEFAULT_HOST @port = port || DEFAULT_PORT end
Public Instance Methods
active_videos()
click to toggle source
# File lib/bilibili_sunday/client.rb, line 34 def active_videos rpc_call('active_videos', []) end
all_videos()
click to toggle source
# File lib/bilibili_sunday/client.rb, line 30 def all_videos rpc_call('all_videos', []) end
cid_for_video_url(url)
click to toggle source
# File lib/bilibili_sunday/client.rb, line 18 def cid_for_video_url(url) rpc_call('cid_for_video_url', [url]) end
query_status(cid)
click to toggle source
# File lib/bilibili_sunday/client.rb, line 38 def query_status(cid) rpc_call('query_status', [cid]) end
remove_cache(cid)
click to toggle source
# File lib/bilibili_sunday/client.rb, line 42 def remove_cache(cid) rpc_call('remove_cache', [cid]) end
request_cache(cid)
click to toggle source
# File lib/bilibili_sunday/client.rb, line 26 def request_cache(cid) rpc_call('request_cache', [cid]) end
title_for_video_url(url)
click to toggle source
# File lib/bilibili_sunday/client.rb, line 22 def title_for_video_url(url) rpc_call('title_for_video_url', [url]) end
Private Instance Methods
get(url, params = {})
click to toggle source
# File lib/bilibili_sunday/client.rb, line 48 def get(url, params = {}) uri = URI.parse(url) uri.query = URI.encode_www_form(params) http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Get.new(uri.request_uri) response = http.request(request) { 'code' => response.code.to_i, 'body' => response.body } end
rpc_call(method, params)
click to toggle source
# File lib/bilibili_sunday/client.rb, line 68 def rpc_call(method, params) method = "bilibili_sunday.#{method}" id = 'bilibili_sunday_client' params_encoded = Base64.encode64(JSON.generate(params)) response = get("#{rpc_path}", {'method' => method, 'id' => id, 'params' => params_encoded}) answer = JSON.parse(response['body']) if response['code'] == 200 answer['result'] else raise "BilibiliSunday Server error #{answer['error']['code'].to_i}: #{answer['error']['message']}" end end
rpc_path()
click to toggle source
# File lib/bilibili_sunday/client.rb, line 64 def rpc_path "http://#{@host}:#{@port}/jsonrpc" end