Module: Douban::Client::Movie

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

Overview

Instance Method Summary collapse

Instance Method Details

#celebrity(id) ⇒ Hashie::Mash

获取影人信息

Examples:

获取 id为1054432 的影人信息

Douban.celebrity('1054432')

Parameters:

  • id (String)

    影人的id

Returns:

  • (Hashie::Mash)

    影人信息

See Also:

是否需要认证:

  • false



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

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

#celebrity_works(id) ⇒ Array<Hashie::Mash>

获取影人作品

Examples:

获取 id为1296987 的影人的作品列表

Douban.celebrity_works('1054432')

Parameters:

  • id (String)

    影人的id

Returns:

  • (Array<Hashie::Mash>)

    影人作品列表

See Also:

是否需要认证:

  • false



41
42
43
44
# File 'lib/douban_api/client/movie.rb', line 41

def celebrity_works(id)
  response = get "v2/movie/celebrity/#{id}/works"
  response["works"]
end

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

发表新评论

Examples:

给 id为1296987 的电影添加评论

client.create_movie_review("1296987", {
  :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



119
120
121
# File 'lib/douban_api/client/movie.rb', line 119

def create_movie_review(id, options={})
  post "v2/movie/reviews", options
end

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

修改评论

Examples:

修改id为1406334的评论

client.edit_movie_review("1406334", {
  :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



141
142
143
# File 'lib/douban_api/client/movie.rb', line 141

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

#imdb(id) ⇒ Hashie::Mash

根据imdb号获取电影信息

Examples:

获取 IMDb编号为tt0075686 的图书信息

Douban.imdb('tt0075686')

Parameters:

  • id (String)

    IMDb编号

Returns:

  • (Hashie::Mash)

    电影信息

See Also:

是否需要认证:

  • false



55
56
57
# File 'lib/douban_api/client/movie.rb', line 55

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

#movie(id) ⇒ Hashie::Mash

获取电影信息

Examples:

获取 id为1054432 的电影信息

Douban.movie('1054432')

Parameters:

  • id (String)

    电影的id

Returns:

  • (Hashie::Mash)

    电影信息

See Also:

是否需要认证:

  • false



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

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

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

某个电影中标记最多的标签

Examples:

获取 电影id为1296987 的标签

Douban.movie_tags('1296987')

Parameters:

  • id (String)

    电影的id

Returns:

  • (Array<Hashie::Mash>)

    标签列表

See Also:

是否需要认证:

  • false



68
69
70
71
# File 'lib/douban_api/client/movie.rb', line 68

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

#remove_movie_review(id) ⇒ Boolean

删除评论

Examples:

删除 id为1406334 电影评论

client.remove_movie_review('1406334')

Parameters:

  • id (String)

    电影的id

Returns:

  • (Boolean)

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

See Also:

是否需要认证:

  • true



154
155
156
157
158
159
160
161
# File 'lib/douban_api/client/movie.rb', line 154

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

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

搜索电影

Examples:

搜索电影 伍迪·艾伦 相关的电影

Douban.search_movies("伍迪·艾伦")

Parameters:

  • q (String)

    查询关键字

Returns:

  • (Hashie::Mash)

    电影列表

See Also:

是否需要认证:

  • false



82
83
84
85
# File 'lib/douban_api/client/movie.rb', line 82

def search_movies(q, options={})
  response = get "v2/movie/search", options.merge(:q => q)
  response["subjects"]
end

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

搜索电影(通过标签)

Examples:

搜索含有标签 悬疑 的电影

Douban.search_movies_by_tag("悬疑")

Parameters:

  • tag (String)

    查询的tag

Returns:

  • (Hashie::Mash)

    电影列表

See Also:

是否需要认证:

  • false



96
97
98
99
# File 'lib/douban_api/client/movie.rb', line 96

def search_movies_by_tag(tag, options={})
  response = get "v2/movie/search", options.merge(:tag => tag)
  response["movies"]
end

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

用户对电影的所有标签

Examples:

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

Douban.user_movie_tags('2217855')      

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

client.user_movie_tags

Parameters:

  • user_id (String) (defaults to: nil)

    用户的数字id

Returns:

  • (Array<Hashie::Mash>)

    标签列表

See Also:

是否需要认证:

  • false



174
175
176
177
178
179
180
181
182
# File 'lib/douban_api/client/movie.rb', line 174

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