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