Module: Douban::Client::Music

Included in:
Douban::Client
Defined in:
lib/douban_api/client/music.rb

Overview

Instance Method Summary collapse

Instance Method Details

#create_music_review(id, options = {}) ⇒ Hashie::Mash

发表新评论

Examples:

给 id为2243497 的音乐添加评论

client.create_music_review("2243497", {
  :title  => "用中枢神经在工地现场弹出印记",
  :content => "哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
   哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
   哈哈哈哈哈哈哈哈哈哈哈哈...(省略一些哈)",
  :rating => 5
})

Parameters:

  • id (String)

    音乐的id

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :title (String)

    必传

  • :content (String)

    必传,且多于150字

  • :rating (Integer)

    非必传,数字1~5为合法值,其他信息默认为不打分

Returns:

  • (Hashie::Mash)

    音乐评论信息

See Also:

是否需要认证:

  • true



79
80
81
# File 'lib/douban_api/client/music.rb', line 79

def create_music_review(id, options={})
  post "v2/music/reviews", options
end

#edit_music_review(id, options = {}) ⇒ Hashie::Mash

修改评论

Examples:

修改 id为1206396 的评论

client.edit_music_review("1206396", {
  :title  => "用中枢神经在工地现场弹出印记",
  :content => "嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿
   嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿
   嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿...(省略一些嘿)",
  :rating => 5
})

Parameters:

  • id (String)

    评论的id

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :title (String)

    必传

  • :content (String)

    必传,且多于150字

  • :rating (Integer)

    非必传,数字1~5为合法值,其他信息默认为不打分

Returns:

  • (Hashie::Mash)

    音乐评论信息

See Also:

是否需要认证:

  • true



101
102
103
# File 'lib/douban_api/client/music.rb', line 101

def edit_music_review(id, options={})
  put "v2/music/reviews/#{id}", options
end

#music(id) ⇒ Hashie::Mash

获取音乐信息

Examples:

获取 id为2243497 的音乐信息

Douban.music('2243497')

Parameters:

  • id (String)

    音乐的id

Returns:

  • (Hashie::Mash)

    音乐信息

See Also:

是否需要认证:

  • false



15
16
17
# File 'lib/douban_api/client/music.rb', line 15

def music(id)
  response = get "v2/music/#{id}"
end

#music_tags(id, optins = {}) ⇒ Array<Hashie::Mash>

某个音乐中标记最多的标签

Examples:

获取 id为2243497 的音乐的标记最多的标签

Douban.music_tags("2243497")

Parameters:

  • id (String)

    音乐的id

Returns:

  • (Array<Hashie::Mash>)

    标签的列表

See Also:

是否需要认证:

  • false



28
29
30
31
# File 'lib/douban_api/client/music.rb', line 28

def music_tags(id, optins={})
  response = get "v2/music/#{id}/tags", options
  responses["tags"]
end

#remove_music_review(id) ⇒ Boolean

删除评论

Examples:

删除 id为2243497 电影评论

client.remove_music_review('2243497')

Parameters:

  • id (String)

    音乐的id

Returns:

  • (Boolean)

    删除成功则返回true, 否则false

See Also:

是否需要认证:

  • true



114
115
116
117
118
119
120
121
# File 'lib/douban_api/client/music.rb', line 114

def remove_music_review(id)
  begin
    delete "v2/music/review/#{id}"
    return true
  rescue Douban::NotFound
    return false
  end
end

#search_music(q, options = {}) ⇒ Hashie::Mash

搜索音乐

Examples:

搜索音乐 LCD soundsystem 相关的音乐

Douban.search_musics("LCD soundsystem")

Parameters:

  • q (String)

    查询关键字

Returns:

  • (Hashie::Mash)

    音乐列表

See Also:

是否需要认证:

  • false



42
43
44
45
# File 'lib/douban_api/client/music.rb', line 42

def search_music(q, options={})
  response = get "v2/music/search", options.merge(:q => q)
  response["musics"]
end

#search_music_by_tag(tag, options = {}) ⇒ Hashie::Mash

搜索音乐(通过标签)

Examples:

搜索含有标签 post_punk 的音乐

Douban.search_music_by_tag("post_punk")

Parameters:

  • tag (String)

    查询的tag

Returns:

  • (Hashie::Mash)

    音乐列表

See Also:

是否需要认证:

  • false



56
57
58
59
# File 'lib/douban_api/client/music.rb', line 56

def search_music_by_tag(tag, options={})
  response = get "v2/music/search", options.merge(:tag => tag)
  response["musics"]
end

#user_music_tags(user_id = nil, options = {}) ⇒ Array<Hashie::Mash>

用户对音乐的所有标签

Examples:

获取数字id为2217855的用户电影收藏的所有标签

Douban.user_music_tags('2217855')      

获取已认证用户的图书收藏的所有标签

client.user_music_tags

Parameters:

  • user_id (String) (defaults to: nil)

    用户的数字id

Returns:

  • (Array<Hashie::Mash>)

    标签列表

See Also:

是否需要认证:

  • false



135
136
137
138
139
140
141
142
# File 'lib/douban_api/client/music.rb', line 135

def user_music_tags(user_id=nil, options={})
  if user_id.nil?
    response = get("v2/music/user_tags/#{get_user_id}", options)
  else
    response = get("v2/music/user_tags/#{user_id}", options)
  end
  response["tags"]
end