weibo2 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,32 @@
1
+ module Weibo2
2
+ module Interface
3
+
4
+ # The Base class of API
5
+ class Base
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
10
+ def request(verb, path, opts={}, &block)
11
+ unless @client.is_authorized?
12
+ raise "I can't find a valid access_token. Forgot to get it or expired?"
13
+ end
14
+
15
+ response = @client.token.request(verb, path, opts, &block)
16
+ if response.error
17
+ raise Error.new(response)
18
+ end
19
+ response
20
+ end
21
+
22
+ def get(path, opts={}, &block)
23
+ request(:get, path, opts, &block)
24
+ end
25
+
26
+ def post(path, opts={}, &block)
27
+ request(:post, path, opts, &block)
28
+ end
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,143 @@
1
+ # encoding: utf-8
2
+ module Weibo2
3
+ module Interface
4
+
5
+ # Comments API
6
+ #
7
+ # @see http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2#.E8.AF.84.E8.AE.BA
8
+ class Comments < Base
9
+
10
+ # 根据微博ID返回某条微博的评论列表
11
+ #
12
+ # @param [int64] id 需要查询的微博ID
13
+ # @param [Hash] opts
14
+ # @option opts [int64] :since_id 若指定此参数,则返回ID比since_id大的评论(即比since_id时间晚的评论),默认为0
15
+ # @option opts [int64] :max_id 若指定此参数,则返回ID小于或等于max_id的评论,默认为0
16
+ # @option opts [int] :count 单页返回的记录条数,默认为50
17
+ # @option opts [int] :page 返回结果的页码,默认为1
18
+ # @option opts [int] :filter_by_author 作者筛选类型,0:全部、1:我关注的人、2:陌生人,默认为0
19
+ #
20
+ # @see http://open.weibo.com/wiki/2/comments/show
21
+ def show(id, opts={})
22
+ get 'comments/show.json', :params => {:id => id}.merge(opts)
23
+ end
24
+
25
+ # 获取当前登录用户所发出的评论列表
26
+ #
27
+ # @param [Hash] opts
28
+ # @option opts [int64] :since_id 若指定此参数,则返回ID比since_id大的评论(即比since_id时间晚的评论),默认为0
29
+ # @option opts [int64] :max_id 若指定此参数,则返回ID小于或等于max_id的评论,默认为0
30
+ # @option opts [int] :count 单页返回的记录条数,默认为50
31
+ # @option opts [int] :page 返回结果的页码,默认为1
32
+ # @option opts [int] :filter_by_source 来源筛选类型,0:全部、1:来自微博的评论、2:来自微群的评论,默认为0
33
+ #
34
+ # @see http://open.weibo.com/wiki/2/comments/by_me
35
+ def by_me(opts={})
36
+ get 'comments/by_me.json', :params => opts
37
+ end
38
+
39
+ # 获取当前登录用户所接收到的评论列表
40
+ #
41
+ # @param [Hash] opts
42
+ # @option opts [int64] :since_id 若指定此参数,则返回ID比since_id大的评论(即比since_id时间晚的评论),默认为0
43
+ # @option opts [int64] :max_id 若指定此参数,则返回ID小于或等于max_id的评论,默认为0
44
+ # @option opts [int] :count 单页返回的记录条数,默认为50
45
+ # @option opts [int] :page 返回结果的页码,默认为1
46
+ # @option opts [int] :filter_by_author 作者筛选类型,0:全部、1:我关注的人、2:陌生人,默认为0
47
+ # @option opts [int] :filter_by_source 来源筛选类型,0:全部、1:来自微博的评论、2:来自微群的评论,默认为0
48
+ #
49
+ # @see http://open.weibo.com/wiki/2/comments/to_me
50
+ def to_me(opts={})
51
+ get 'comments/to_me.json', :params => opts
52
+ end
53
+
54
+ # 获取当前登录用户的最新评论包括接收到的与发出的
55
+ #
56
+ # @param [Hash] opts
57
+ # @option opts [int64] :since_id 若指定此参数,则返回ID比since_id大的评论(即比since_id时间晚的评论),默认为0
58
+ # @option opts [int64] :max_id 若指定此参数,则返回ID小于或等于max_id的评论,默认为0
59
+ # @option opts [int] :count 单页返回的记录条数,默认为50
60
+ # @option opts [int] :page 返回结果的页码,默认为1
61
+ #
62
+ # @see http://open.weibo.com/wiki/2/comments/timeline
63
+ def timeline(opts={})
64
+ get 'comments/timeline.json', :params => opts
65
+ end
66
+
67
+ # 获取最新的提到当前登录用户的评论,即@我的评论
68
+ #
69
+ # @param [Hash] opts
70
+ # @option opts [int64] :since_id 若指定此参数,则返回ID比since_id大的评论(即比since_id时间晚的评论),默认为0
71
+ # @option opts [int64] :max_id 若指定此参数,则返回ID小于或等于max_id的评论,默认为0
72
+ # @option opts [int] :count 单页返回的记录条数,默认为50
73
+ # @option opts [int] :page 返回结果的页码,默认为1
74
+ # @option opts [int] :filter_by_author 作者筛选类型,0:全部、1:我关注的人、2:陌生人,默认为0
75
+ # @option opts [int] :filter_by_source 来源筛选类型,0:全部、1:来自微博的评论、2:来自微群的评论,默认为0
76
+ #
77
+ # @see http://open.weibo.com/wiki/2/comments/mentions
78
+ def mentions(opts={})
79
+ get 'comments/mentions.json', :params => opts
80
+ end
81
+
82
+ # 根据评论ID批量返回评论信息
83
+ #
84
+ # @param [String] cids 需要查询的批量评论ID,用半角逗号分隔,最大50
85
+ #
86
+ # @see http://open.weibo.com/wiki/2/comments/show_batch
87
+ def show_batch(cids)
88
+ get 'comments/show_batch.json', :params => {:cids => cids}
89
+ end
90
+
91
+ #
92
+ # write
93
+ #
94
+
95
+ # 对一条微博进行评论
96
+ #
97
+ # @param [String] comment 评论内容,内容不超过140个汉字
98
+ # @param [int64] id 需要评论的微博ID
99
+ # @param [Hash] opts
100
+ # @option opts [int] :comment_on 当评论转发微博时,是否评论给原微博,0:否、1:是,默认为0
101
+ #
102
+ # @see http://open.weibo.com/wiki/2/comments/create
103
+ def create(comment, id)
104
+ post 'comments/create.json', :body => {:comment => comment, :id => id}
105
+ end
106
+
107
+ # no test
108
+ # 删除一条评论
109
+ #
110
+ # @param [int64] cid 要删除的评论ID,只能删除登录用户自己发布的评论
111
+ #
112
+ # @see http://open.weibo.com/wiki/2/comments/destroy
113
+ def destroy(cid)
114
+ post 'comments/destroy.json', :body => {:cid => cid}
115
+ end
116
+
117
+ # 根据评论ID批量删除评论
118
+ #
119
+ # @param [String] cids 需要删除的评论ID,用半角逗号隔开,最多20个
120
+ #
121
+ # @see http://open.weibo.com/wiki/2/comments/destroy_batch
122
+ def destroy_batch(cids)
123
+ post 'comments/destroy_batch.json', :body => {:cids => cids}
124
+ end
125
+
126
+ # no test
127
+ # 回复一条评论
128
+ #
129
+ # @param [int64] cid 需要回复的评论ID
130
+ # @param [int64] id 需要评论的微博ID
131
+ # @param [String] comment 回复评论内容,内容不超过140个汉字
132
+ # @param [Hash] opts
133
+ # @option opts [int] :without_mention 回复中是否自动加入“回复@用户名”,0:是、1:否,默认为0
134
+ # @option opts [int] :comment_on 当评论转发微博时,是否评论给原微博,0:否、1:是,默认为0
135
+ #
136
+ # @see http://open.weibo.com/wiki/2/comments/reply
137
+ def reply(cid, id, comment, opts={})
138
+ post 'comments/reply.json', :body => {:cid => cid, :id => id, :comment => comment}.merge(opts)
139
+ end
140
+
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,114 @@
1
+ # encoding: utf-8
2
+ module Weibo2
3
+ module Interface
4
+
5
+ # Favorites API
6
+ #
7
+ # @see http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2#.E6.94.B6.E8.97.8F
8
+ class Favorites < Base
9
+
10
+ # 获取当前登录用户的收藏列表
11
+ #
12
+ # @param [Hash] opts
13
+ # @option opts [int] :count 单页返回的记录条数,默认为50
14
+ # @option opts [int] :page 返回结果的页码,默认为1
15
+ #
16
+ # @see http://open.weibo.com/wiki/2/favorites
17
+ def favorites(opts={})
18
+ get 'favorites.json', :params => opts
19
+ end
20
+
21
+ # 根据收藏ID获取指定的收藏信息
22
+ #
23
+ # @param [int64] id 需要查询的收藏ID
24
+ #
25
+ # @see http://open.weibo.com/wiki/2/favorites/show
26
+ def show(id)
27
+ get 'favorites/show.json', :params => {:id => id}
28
+ end
29
+
30
+ # 根据标签获取当前登录用户该标签下的收藏列表
31
+ #
32
+ # @param [int64] tid 需要查询的标签ID
33
+ # @param [Hash] opts
34
+ # @option opts [int] :count 单页返回的记录条数,默认为50
35
+ # @option opts [int] :page 返回结果的页码,默认为1
36
+ #
37
+ # @see http://open.weibo.com/wiki/2/favorites/by_tags
38
+ def by_tags(tid, opts={})
39
+ get 'favorites/by_tags.json', :params => {:tid => tid}.merge(opts)
40
+ end
41
+
42
+ # 获取当前登录用户的收藏标签列表
43
+ #
44
+ # @param [Hash] opts
45
+ # @option opts [int] :count 单页返回的记录条数,默认为10
46
+ # @option opts [int] :page 返回结果的页码,默认为1
47
+ #
48
+ # @see http://open.weibo.com/wiki/2/favorites/tags
49
+ def tags(opts={})
50
+ get 'favorites/tags.json', :params => opts
51
+ end
52
+
53
+ #
54
+ # write
55
+ #
56
+
57
+ #test no pass below
58
+ # 添加一条微博到收藏里
59
+ #
60
+ # @param [int64] id 要收藏的微博ID
61
+ #
62
+ # @see http://open.weibo.com/wiki/2/favorites/create
63
+ def create(id)
64
+ post 'favorites/create.json', :body => {:id => id}
65
+ end
66
+
67
+ # 取消收藏一条微博
68
+ #
69
+ # @param [int64] id 要取消收藏的微博ID
70
+ #
71
+ # @see http://open.weibo.com/wiki/2/favorites/destroy
72
+ def destroy(id)
73
+ post 'favorites/destroy.json', :body => {:id => id}
74
+ end
75
+
76
+ # 根据收藏ID批量取消收藏
77
+ #
78
+ # @param [String] ids 要取消收藏的收藏ID,用半角逗号分隔,最多不超过10个
79
+ # @see http://open.weibo.com/wiki/2/favorites/destroy_batch
80
+ def destroy_batch(ids)
81
+ post 'favorites/destroy_batch.json', :body => {:ids => ids}
82
+ end
83
+
84
+ # 更新一条收藏的收藏标签
85
+ #
86
+ # @param [int64] id 需要更新的收藏ID
87
+ # @param [Hash] opts
88
+ # @option opts [String] :tags 需要更新的标签内容,用半角逗号分隔,最多不超过2条
89
+ #
90
+ # @see http://open.weibo.com/wiki/2/favorites/tags/update
91
+ def tags_update(id, opt={})
92
+ post 'favorites/tags/update.json', :body => {:id => id}.merge(opts)
93
+ end
94
+
95
+ # 更新当前登录用户所有收藏下的指定标签
96
+ #
97
+ # @param [int64] tid 需要更新的标签ID
98
+ # @param [String] tag 需要更新的标签内容
99
+ # @see http://open.weibo.com/wiki/2/favorites/tags/update_batch
100
+ def tags_update_batch(tid, tag)
101
+ post 'favorites/tags/update_batch.json', :body => {:tid => tid, :tag => tag}
102
+ end
103
+
104
+ # 删除当前登录用户所有收藏下的指定标签
105
+ #
106
+ # @param [int64] tid 需要删除的标签ID
107
+ #
108
+ # @see http://open.weibo.com/wiki/2/favorites/tags/destroy_batch
109
+ def tags_destroy_batch(tid)
110
+ post 'favorites/tags/destroy_batch.json', :body => {:tid => tid}
111
+ end
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,193 @@
1
+ # encoding: utf-8
2
+ module Weibo2
3
+ module Interface
4
+
5
+ # Friendships API
6
+ #
7
+ # @see http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2#.E5.85.B3.E7.B3.BB
8
+ class Friendships < Base
9
+
10
+ # 获取用户的关注列表
11
+ #
12
+ # @param [Hash] opts
13
+ # @option opts [int64] :uid 需要查询的用户UID
14
+ # @option opts [String] :screen_name 需要查询的用户昵称
15
+ # @option opts [int] :count 单页返回的记录条数,默认为50,最大不超过200
16
+ # @option opts [int] :cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0
17
+ #
18
+ # @see http://open.weibo.com/wiki/2/friendships/friends
19
+ def friends(opts={})
20
+ get 'friendships/friends.json', :params => opts
21
+ end
22
+
23
+ # 获取两个用户之间的共同关注人列表
24
+ #
25
+ # @param [int64] uid 需要获取共同关注关系的用户UID
26
+ # @param [Hash] opts
27
+ # @option opts [int64] :suid 需要获取共同关注关系的用户UID,默认为当前登录用户
28
+ # @option opts [int] :count 单页返回的记录条数,默认为50
29
+ # @option opts [int] :page 返回结果的页码,默认为1
30
+ #
31
+ # @see http://open.weibo.com/wiki/2/friendships/friends/in_common
32
+ def friends_in_common(uid, opts={})
33
+ get 'friendships/friends/in_common.json', :params => {:uid => uid}.merge(opts)
34
+ end
35
+
36
+ # 获取用户的双向关注列表,即互粉列表
37
+ #
38
+ # @param [int64] uid 需要获取双向关注列表的用户UID
39
+ # @param [Hash] opts
40
+ # @option opts [int] :count 单页返回的记录条数,默认为50
41
+ # @option opts [int] :page 返回结果的页码,默认为1
42
+ # @option opts [int] :sort 排序类型,0:按关注时间最近排序,默认为0
43
+ #
44
+ # @see http://open.weibo.com/wiki/2/friendships/friends/bilateral
45
+ def friends_bilateral(uid, opts={})
46
+ get 'friendships/friends/bilateral.json', :params => {:uid => uid}.merge(opts)
47
+ end
48
+
49
+ # 获取用户双向关注的用户ID列表,即互粉UID列表
50
+ #
51
+ # @param [int64] uid 需要获取双向关注列表的用户UID
52
+ # @param [Hash] opts
53
+ # @option opts [int] :count 单页返回的记录条数,默认为50,最大不超过2000
54
+ # @option opts [int] :page 返回结果的页码,默认为1
55
+ # @option opts [int] :sort 排序类型,0:按关注时间最近排序,默认为0
56
+ #
57
+ # @see http://open.weibo.com/wiki/2/friendships/friends/bilateral/ids
58
+ def friends_bilateral_ids(uid, opts={})
59
+ get 'friendships/friends/bilateral/ids.json', :params => {:uid => uid}.merge(opts)
60
+ end
61
+
62
+ # 获取用户关注的用户UID列表
63
+ #
64
+ # @param [Hash] opts
65
+ # @option opts [int64] :uid 需要查询的用户UID
66
+ # @option opts [String] :screen_name 需要查询的用户昵称
67
+ # @option opts [int] :count 单页返回的记录条数,默认为500,最大不超过5000
68
+ # @option opts [int] :cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0
69
+ #
70
+ # @see http://open.weibo.com/wiki/2/friendships/friends/ids
71
+ def friends_ids(opts={})
72
+ get 'friendships/friends/ids.json', :params => opts
73
+ end
74
+
75
+ # 批量获取当前登录用户的关注人的备注信息 [Privilege]
76
+ #
77
+ # @param [String] uids 需要获取备注的用户UID,用半角逗号分隔,最多不超过50个
78
+ #
79
+ # @see http://open.weibo.com/wiki/2/friendships/friends/remark_batch
80
+ def friends_remark_batch(uids)
81
+ get 'friendships/friends/remark_batch.json', :params => {:uids => uids}
82
+ end
83
+
84
+ # 获取用户的粉丝列表
85
+ #
86
+ # @param [Hash] opts
87
+ # @option opts [int64] :uid 需要查询的用户UID
88
+ # @option opts [String] :screen_name 需要查询的用户昵称
89
+ # @option opts [int] :count 单页返回的记录条数,默认为50,最大不超过200
90
+ # @option opts [int] :cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0
91
+ #
92
+ # @see http://open.weibo.com/wiki/2/friendships/followers
93
+ def followers(opts={})
94
+ get 'friendships/followers.json', :params => opts
95
+ end
96
+
97
+ # 获取用户粉丝的用户UID列表
98
+ #
99
+ # @param [Hash] opts
100
+ # @option opts [int64] :uid 需要查询的用户UID
101
+ # @option opts [String] :screen_name 需要查询的用户昵称
102
+ # @option opts [int] :count 单页返回的记录条数,默认为500,最大不超过5000
103
+ # @option opts [int] :cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0
104
+ #
105
+ # @see http://open.weibo.com/wiki/2/friendships/followers/ids
106
+ def followers_ids(opts={})
107
+ get 'friendships/followers/ids.json', :params => opts
108
+ end
109
+
110
+ # 获取用户的活跃粉丝列表
111
+ # @param [int64] uid 需要查询的用户UID
112
+ # @param [Hash] opts
113
+ # @option opts [int] :count 返回的记录条数,默认为20,最大不超过200
114
+ #
115
+ # @see http://open.weibo.com/wiki/2/friendships/followers/active
116
+ def followers_active(uid, opts={})
117
+ get 'friendships/followers/active.json', :params => {:uid => uid}.merge(opts)
118
+ end
119
+
120
+ # 获取当前登录用户的关注人中又关注了指定用户的用户列表
121
+ #
122
+ # @param [int64] uid 指定的关注目标用户UID
123
+ # @param [Hash] opts
124
+ # @option opts [int] :count 单页返回的记录条数,默认为50
125
+ # @option opts [int] :page 返回结果的页码,默认为1
126
+ #
127
+ # @see http://open.weibo.com/wiki/2/friendships/friends_chain/followers
128
+ def friends_chain_followers(uid, opts={})
129
+ get 'friendships/friends_chain/followers.json', :params => {:uid => uid}.merge(opts)
130
+ end
131
+
132
+ # 获取两个用户之间的详细关注关系情况
133
+ #
134
+ # @param [Hash] opts
135
+ # @option opts [int64] :source_id 源用户的UID
136
+ # @option opts [String] :source_screen_name 源用户的微博昵称
137
+ # @option opts [int64] :target_id 目标用户的UID
138
+ # @option opts [String] :target_screen_name 目标用户的微博昵称
139
+ #
140
+ # @see http://open.weibo.com/wiki/2/friendships/show
141
+ def show(opts={})
142
+ get 'friendships/show.json', :params => opts
143
+ end
144
+
145
+ #
146
+ # write
147
+ #
148
+
149
+ # no test below
150
+ # 关注一个用户
151
+ #
152
+ # @param [Hash] opts
153
+ # @option opts [int64] :uid 需要关注的用户ID
154
+ # @option opts [String] :screen_name 需要关注的用户昵称
155
+ #
156
+ # @see http://open.weibo.com/wiki/2/friendships/create
157
+ def create(opts={})
158
+ post 'friendships/create.json', :body => opts
159
+ end
160
+
161
+ # 根据用户UID批量关注用户 [Privilege]
162
+ #
163
+ # @param [String] uids 要关注的用户UID,用半角逗号分隔,最多不超过20个
164
+ #
165
+ # @see http://open.weibo.com/wiki/2/friendships/create_batch
166
+ def create_batch(uids)
167
+ post 'friendships/create_batch.json', :body => {:uids => uids}
168
+ end
169
+
170
+ # 取消关注一个用户
171
+ #
172
+ # @param [Hash] opts
173
+ # @option opts [int64] :uid 需要取消关注的用户ID
174
+ # @option opts [String] :screen_name 需要取消关注的用户昵称
175
+ #
176
+ # @see http://open.weibo.com/wiki/2/friendships/destroy
177
+ def destroy(opts={})
178
+ post 'friendships/destroy.json', :body => opts
179
+ end
180
+
181
+ # 更新当前登录用户所关注的某个好友的备注信息 [Privilege]
182
+ #
183
+ # @param [int64] uid 需要修改备注信息的用户UID
184
+ # @param [String] remark 备注信息
185
+ #
186
+ # @see http://open.weibo.com/wiki/2/friendships/remark/update
187
+ def remark_update(uid, remark)
188
+ post 'friendships/remark/update.json', :body => {:uid => uid, :remark => remark}
189
+ end
190
+
191
+ end
192
+ end
193
+ end