class Bilibili::BilibiliBase
base class
Attributes
video_qn[RW]
http_client[RW]
options[RW]
Public Class Methods
new(http_client)
click to toggle source
# File lib/bilibili_console/base.rb, line 23 def initialize(http_client) @http_client = http_client create_request_methods @options = { 'config_path' => '~/.bc', 'config_file' => '~/.bc/config.json', 'cookie_file' => '~/.bc/cookie.txt', 'download_path' => '~/.bc/download' } BilibiliBase.video_qn = { '240' => 6, '360' => 16, '480' => 32, '720' => 64, '720P60' => 74, '1080' => 80, '1080+' => 112, '1080P60' => 116, '4K' => 120, 'HDR' => 125 } end
Public Instance Methods
Private Instance Methods
check_config_path()
click to toggle source
# File lib/bilibili_console/base.rb, line 61 def check_config_path FileUtils.mkdir_p(config_path) unless Dir.exist?(config_path) end
config_path()
click to toggle source
# File lib/bilibili_console/base.rb, line 101 def config_path File.expand_path(@options['config_path'].to_s, __dir__) end
create_request_methods()
click to toggle source
# File lib/bilibili_console/base.rb, line 71 def create_request_methods methods = %w[login_http api_http manga_http] methods.each do |method| define_get_json_method(method) define_post_form_json_method(method) define_post_json_method(method) end end
define_get_json_method(method_name)
click to toggle source
# File lib/bilibili_console/base.rb, line 80 def define_get_json_method(method_name) new_method_name = "get_json#{method_name[0]}" BilibiliBase.define_method(new_method_name) do |url| @http_client.get_json(@http_client.instance_variable_get("@#{method_name}"), url) end end
define_post_form_json_method(method_name)
click to toggle source
# File lib/bilibili_console/base.rb, line 87 def define_post_form_json_method(method_name) new_method_name = "post_form_json#{method_name[0]}" BilibiliBase.define_method(new_method_name) do |url, params| @http_client.post_form_json(@http_client.instance_variable_get("@#{method_name}"), url, params) end end
define_post_json_method(method_name)
click to toggle source
# File lib/bilibili_console/base.rb, line 94 def define_post_json_method(method_name) new_method_name = "post_json#{method_name[0]}" BilibiliBase.define_method(new_method_name) do |url, headers, req_body| @http_client.post_json(@http_client.instance_variable_get("@#{method_name}"), url, headers, req_body) end end