Module: Douban::Client::Shuo

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

Overview

Instance Method Summary collapse

Instance Method Details

#block(user_id) ⇒ Boolean

block用户

Examples:

block id为2012964的用户

client.block('2012964')

Parameters:

  • user_id (String)

    用户的数字id

Returns:

  • (Boolean)

    block成功则返回true, 否则false

See Also:

是否需要认证:

  • true



318
319
320
# File 'lib/douban_api/client/shuo.rb', line 318

def block(user_id)
  post("shuo/v2/users/#{user_id}/block")["r"] == 1
end

#comment(id) ⇒ Hashie::Mash

获取单条回复的内容

Examples:

获取 id 为2998638 的评论

Douban.comment('2998638')

Parameters:

  • id (String)

    评论的id

Returns:

  • (Hashie::Mash)

    评论信息

See Also:

是否需要认证:

  • false



128
129
130
# File 'lib/douban_api/client/shuo.rb', line 128

def comment(id) 
  get "shuo/v2/statuses/comment/#{id}"
end

#create_reshare(id) ⇒ Hashie::Mash Also known as: reshare

转播

Examples:

转播id为1057472949的广播

client.reshare('1057472949')

Parameters:

  • id (String)

    广播id

Returns:

  • (Hashie::Mash)

    广播列表

See Also:

是否需要认证:

  • true



159
160
161
# File 'lib/douban_api/client/shuo.rb', line 159

def create_reshare(id)
  post "shuo/v2/statuses/#{id}/reshare"
end

#create_status(text, options = {}) ⇒ Hashie::Mash Also known as: shuo

发送一条广播

TODO 支持附带图片的广播

Examples:

发送一条广播

client.create_status("嘻嘻")

Parameters:

  • text (String)

    广播文本内容

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

    a customizable set of options

Options Hash (options):

  • :rec_title (String)

    推荐网址的标题

  • :rec_url (String)

    推荐网址的href

  • :rec_desc (String)

    推荐网址的描述

Returns:

  • (Hashie::Mash)

    发送成功的广播数据

See Also:

是否需要认证:

  • true



19
20
21
22
# File 'lib/douban_api/client/shuo.rb', line 19

def create_status(text, options={})
  options.merge!(:text => text, :source => client_id)
  post "shuo/v2/statuses/", options
end

#create_status_comment(id, text) ⇒ Hashie::Mash

添加一条评论

TODO report to douban api team

Examples:

评论一个条广播

client.create_status_comment('1057158586', "谢谢啊!")

Parameters:

  • id (String)

    广播的id

  • text (String)

    评论的文本

Returns:

  • (Hashie::Mash)

    广播信息

See Also:

是否需要认证:

  • true



115
116
117
# File 'lib/douban_api/client/shuo.rb', line 115

def create_status_comment(id, text)
  post "shuo/v2/statuses/#{id}/comments", options.merge(:text => text)
end

#follow(user_id) ⇒ Hashie::Mash

follow一个用户

Examples:

follow id为2012964的用户

client.follow('2012964')

Parameters:

  • user_id (String)

    用户的数字id

Returns:

  • (Hashie::Mash)

    follow用户的信息

See Also:

是否需要认证:

  • true



331
332
333
# File 'lib/douban_api/client/shuo.rb', line 331

def follow(user_id)
  post "shuo/v2/friendships/create", :source => client_id, :user_id => user_id
end

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

获取共同关注的用户列表

Examples:

获取已认证用户和2012964的共同关注者

client.follow_in_common('2012964')

Parameters:

  • user_id (String)

    用户的数字id

Returns:

  • (Array<Hashie::Mash>)

    用户列表

See Also:

是否需要认证:

  • true



279
280
281
# File 'lib/douban_api/client/shuo.rb', line 279

def follow_in_common(user_id, options={})
  get "shuo/v2/users/#{user_id}/follow_in_common", options
end

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

获取用户关注者列表

Examples:

获取2217855的关注者

Douban.followers('2217855')

Parameters:

  • user_id (String) (defaults to: nil)

    用户的数字id

Returns:

  • (Array<Hashie::Mash>)

    用户列表

See Also:

是否需要认证:

  • false



262
263
264
265
266
267
268
# File 'lib/douban_api/client/shuo.rb', line 262

def followers(user_id=nil, options={})
  if user_id.nil?
    get "shuo/v2/users/#{get_user_id}/followers", options
  else
    get "shuo/v2/users/#{user_id}/followers", options
  end
end

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

获取用户关注列表

Examples:

获取2217855关注的用户

Douban.following('2217855')

Parameters:

  • user_id (String) (defaults to: nil)

    用户的数字id

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

    a customizable set of options

Options Hash (options):

  • :tag (Integer)

    该tag的id

Returns:

  • (Array<Hashie::Mash>)

    用户列表

See Also:

是否需要认证:

  • false



245
246
247
248
249
250
251
# File 'lib/douban_api/client/shuo.rb', line 245

def following(user_id=nil, options={})
  if user_id.nil?
    get "shuo/v2/users/#{get_user_id}/following", options
  else
    get "shuo/v2/users/#{user_id}/following", options
  end
end

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

获取关注的人关注了该用户的列表

Examples:

关注的人也关注2012964的用户

client.following_followers_of('2012964')

Parameters:

  • user_id (String) (defaults to: ni)

    用户的数字id

Returns:

  • (Array<Hashie::Mash>)

    用户列表

See Also:

是否需要认证:

  • true



292
293
294
# File 'lib/douban_api/client/shuo.rb', line 292

def following_followers_of(user_id=ni, options={})
  get "shuo/v2/users/#{user_id}/following_followers_of"
end

#friendship(source_id, target_id) ⇒ Hashie::Mash

取消关注一个用户

Examples:

获取 id 2217855 和 2012964 的用户关系

client.friendship('2217855','2012964')

Parameters:

  • source_id (String)

    用户的数字id

  • target_id (String)

    用户的数字id

Returns:

  • (Hashie::Mash)

    关系的信息

See Also:

是否需要认证:

  • false



358
359
360
361
# File 'lib/douban_api/client/shuo.rb', line 358

def friendship(source_id, target_id)
  options = {:source_id => source_id, :target_id => target_id, :source => client_id}
  get "shuo/v2/friendships/show", options
end

#like(id) ⇒ Hashie::Mash

赞一条广播

Examples:

赞id为1057472949的广播

client.like('1057472949')

Parameters:

  • id (String)

    广播的id

Returns:

  • (Hashie::Mash)

    对应的广播数据

See Also:

是否需要认证:

  • true



205
206
207
# File 'lib/douban_api/client/shuo.rb', line 205

def like(id)
  post "shuo/v2/statuses/#{id}/like"
end

#liked_users(id, options = {}) ⇒ Array<Hashie::Mash>

获取最近赞的用户列表

Examples:

获取id为1057472949的用户

Douban.liked_users('1057472949')

Parameters:

  • id (String)

    广播的id

Returns:

  • (Array<Hashie::Mash>)

    用户列表

See Also:

是否需要认证:

  • false



218
219
220
# File 'lib/douban_api/client/shuo.rb', line 218

def liked_users(id, options={})
  get "shuo/v2/statuses/#{id}/like", options
end

#remove_comment(id) ⇒ Boolean

删除回复

Examples:

删除 id 为2998638 的评论

client.remove_comment('2998638')

Parameters:

  • id (String)

    评论的id

Returns:

  • (Boolean)

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

See Also:

是否需要认证:

  • true



141
142
143
144
145
146
147
148
# File 'lib/douban_api/client/shuo.rb', line 141

def remove_comment(id)
  begin
    delete "shuo/v2/statuses/comment/#{id}"
    return true
  rescue Douban::NotFound
    return false
  end
end

#remove_reshare(id) ⇒ Boolean Also known as: unreshare

删除转播

Examples:

删除用户对id为1057472949的广播的转播

client.remove_reshare('1057472949')

Parameters:

  • id (String)

    广播的id

Returns:

  • (Boolean)

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

See Also:

是否需要认证:

  • true



186
187
188
189
190
191
192
193
# File 'lib/douban_api/client/shuo.rb', line 186

def remove_reshare(id)
  begin
    delete "shuo/v2/statuses/#{id}/reshare"
    return true
  rescue Douban::NotFound
    return false
  end
end

#remove_status(id) ⇒ Boolean

删除一条广播(只有删除自己的广播)

Examples:

删除id为1057462112的广播

client.remove_status('1057462112')

Parameters:

  • id (String)

    广播的id

Returns:

  • (Boolean)

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

See Also:

是否需要认证:

  • true



82
83
84
85
86
87
88
89
# File 'lib/douban_api/client/shuo.rb', line 82

def remove_status(id)
  begin
    delete "shuo/v2/statuses/#{id}"
    return true
  rescue Douban::NotFound
    return false
  end
end

#resharers(id, options = {}) ⇒ Array<Hashie::Mash>

获取最近转播的用户列表

Examples:

查看id为1057472949的广播的转发者

Douban.resharers('1057472949')

Parameters:

  • id (String)

    广播id

Returns:

  • (Array<Hashie::Mash>)

    用户列表

See Also:

是否需要认证:

  • false



173
174
175
# File 'lib/douban_api/client/shuo.rb', line 173

def resharers(id, options={})
  get "shuo/v2/statuses/#{id}/reshare", options
end

#shuo_search_users(q, options = {}) ⇒ Array<Hashie::Mash>

搜索用户

Examples:

关注的人也关注2012964的用户

Douban.shuo_search_users("小明")

Parameters:

  • q (String)

    搜索字符串

Returns:

  • (Array<Hashie::Mash>)

    用户列表

See Also:

是否需要认证:

  • false



305
306
307
# File 'lib/douban_api/client/shuo.rb', line 305

def shuo_search_users(q, options={})
  get "shuo/v2/users/search", options.merge(:q => q)
end

#status(id, pack = false) ⇒ Hashie::Mash

读取一条广播

Examples:

获取id为1057462112的广播,并且包含resharers 和 comments 数据

Douban.status('1057462112', true)

Parameters:

  • id (String)

    广播的id

  • pack (Hash) (defaults to: false)

    a customizable set of options

Options Hash (pack):

  • 是否打包 (Boolean)

    resharers 和 comments 数据

Returns:

  • (Hashie::Mash)

    广播信息

See Also:

是否需要认证:

  • false



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

def status(id, pack=false)
  get "shuo/v2/statuses/#{id}", :pack => pack
end

#status_comments(id, options = {}) ⇒ Array<Hashie::Mash>

获取一条广播的回复列表

Examples:

获取id为1056160363的广播的评论

Douban.status_comments('1056160363')

Parameters:

  • id (String)

    广播的id

Returns:

  • (Array<Hashie::Mash>)

    评论列表

See Also:

是否需要认证:

  • false



100
101
102
# File 'lib/douban_api/client/shuo.rb', line 100

def status_comments(id, options={})
  get "shuo/v2/statuses/#{id}/comments", options
end

#timeline(options = {}) ⇒ Array<Hashie::Mash>

友邻广播

Examples:

获取当前认证用户的友邻广播

client.timeline

Parameters:

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

    a customizable set of options

Options Hash (options):

  • :since_id (Integer)

    若指定此参数,则只返回ID比since_id大的广播消息(即比since_id发表时间晚的广播消息)。

  • :until_id (Integer)

    若指定此参数,则返回ID小于或等于until_id的广播消息

Returns:

  • (Array<Hashie::Mash>)

    广播列表

See Also:

是否需要认证:

  • true



37
38
39
# File 'lib/douban_api/client/shuo.rb', line 37

def timeline(options={})
  get "shuo/v2/statuses/home_timeline", options
end

#unfollow(user_id) ⇒ Hashie::Mash

取消关注一个用户

Examples:

取消关注 id为2012964的用户

client.unfollow('2012964')

Parameters:

  • user_id (String)

    用户的数字id

Returns:

  • (Hashie::Mash)

    unfollow用户的信息

See Also:

是否需要认证:

  • true



344
345
346
# File 'lib/douban_api/client/shuo.rb', line 344

def unfollow(user_id)
  post "shuo/v2/friendships/destroy", :source => client_id, :user_id => user_id
end

#unlike(id) ⇒ Hashie::Mash

取消赞一条广播

Examples:

取消赞id为1057472949的广播

client.unlike('1057472949')

Parameters:

  • id (String)

    广播的id

Returns:

  • (Hashie::Mash)

    对应的广播数据

See Also:

是否需要认证:

  • true



231
232
233
# File 'lib/douban_api/client/shuo.rb', line 231

def unlike(id)
  delete "shuo/v2/statuses/#{id}/like"
end

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

获取用户发布的广播列表

Examples:

获取ahbei的广播列表

Douban.user_timeline('ahbei')

Parameters:

  • name (String) (defaults to: nil)

    用户uid或者数字id

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

    a customizable set of options

Options Hash (options):

  • :since_id (Integer)

    若指定此参数,则只返回ID比since_id大的广播消息(即比since_id发表时间晚的广播消息)。

  • :until_id (Integer)

    若指定此参数,则返回ID小于或等于until_id的广播消息

Returns:

  • (Array<Hashie::Mash>)

    广播列表

See Also:

是否需要认证:

  • false



54
55
56
# File 'lib/douban_api/client/shuo.rb', line 54

def user_timeline(name=nil, options={})
    get "shuo/v2/statuses/user_timeline/#{name}", options
end