Class: Ayadn::API
- Inherits:
-
Object
- Object
- Ayadn::API
- Defined in:
- lib/ayadn/api.rb
Class Method Summary collapse
Instance Method Summary collapse
- #block(username) ⇒ Object
- #check_response_meta_code(res) ⇒ Object
- #delete_message(channel_id, message_id) ⇒ Object
- #delete_post(post_id) ⇒ Object
- #follow(username) ⇒ Object
- #get_blocked ⇒ Object
- #get_channel(channel_id, options = {}) ⇒ Object
- #get_channels ⇒ Object
- #get_checkins(options) ⇒ Object
- #get_config ⇒ Object
- #get_conversations(options) ⇒ Object
- #get_convo(post_id, options = {}) ⇒ Object
- #get_details(post_id, options = {}) ⇒ Object
- #get_explore(explore, options) ⇒ Object
- #get_file(file_id) ⇒ Object
- #get_files_list(options) ⇒ Object
- #get_followers(username) ⇒ Object
- #get_followings(username) ⇒ Object
- #get_global(options) ⇒ Object
- #get_hashtag(hashtag) ⇒ Object
- #get_interactions ⇒ Object
- #get_mentions(username, options) ⇒ Object
- #get_messages(channel_id, options) ⇒ Object
- #get_muted ⇒ Object
- #get_photos(options) ⇒ Object
- #get_posts(username, options) ⇒ Object
- #get_raw_list(username, target) ⇒ Object
- #get_search(words, options) ⇒ Object
- #get_token_info ⇒ Object
- #get_trending(options) ⇒ Object
- #get_unified(options) ⇒ Object
- #get_user(username) ⇒ Object
- #get_users(usernames) ⇒ Object
- #get_whatstarred(username, options) ⇒ Object
- #get_whoreposted(post_id) ⇒ Object
- #get_whostarred(post_id) ⇒ Object
-
#initialize ⇒ API
constructor
A new instance of API.
- #mute(username) ⇒ Object
- #repost(post_id) ⇒ Object
- #search_annotations(words, options) ⇒ Object
- #search_channels(words, options) ⇒ Object
- #search_messages(channel_id, words, options) ⇒ Object
- #search_users(words, options) ⇒ Object
- #star(post_id) ⇒ Object
- #unblock(username) ⇒ Object
- #unfollow(username) ⇒ Object
- #unmute(username) ⇒ Object
- #unrepost(post_id) ⇒ Object
- #unstar(post_id) ⇒ Object
- #update_marker(name, last_read_id) ⇒ Object
Constructor Details
Class Method Details
.build_query(arg) ⇒ Object
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 |
# File 'lib/ayadn/api.rb', line 259 def self.build_query(arg) if arg[:count].to_s.is_integer? count = arg[:count] else count = Settings.[:counts][:default] end directed = arg[:directed] || Settings.[:timeline][:directed] html = arg[:html] || Settings.[:timeline][:html] if arg[:since_id] "&count=#{count}&include_html=#{html}&include_directed=#{directed}&include_deleted=0&include_annotations=1&since_id=#{arg[:since_id]}" elsif arg[:recent_message] "&count=#{count}&include_html=#{html}&include_directed=#{directed}&include_deleted=0&include_annotations=1&include_recent_message=#{arg[:recent_message]}" else "&count=#{count}&include_html=#{html}&include_directed=#{directed}&include_deleted=0&include_annotations=1" end end |
Instance Method Details
#block(username) ⇒ Object
173 174 175 |
# File 'lib/ayadn/api.rb', line 173 def block(username) JSON.parse(CNX.post(Endpoints.new.block(username))) end |
#check_response_meta_code(res) ⇒ Object
242 243 244 245 246 247 248 |
# File 'lib/ayadn/api.rb', line 242 def (res) if res['meta']['code'] == 200 res else Errors.global_error({error: nil, caller: caller, data: [res['meta']]}) end end |
#delete_message(channel_id, message_id) ⇒ Object
185 186 187 |
# File 'lib/ayadn/api.rb', line 185 def (channel_id, ) JSON.parse(CNX.delete(Endpoints.new.(channel_id, ))) end |
#delete_post(post_id) ⇒ Object
181 182 183 |
# File 'lib/ayadn/api.rb', line 181 def delete_post(post_id) JSON.parse(CNX.delete(Endpoints.new.delete_post(post_id))) end |
#follow(username) ⇒ Object
165 166 167 |
# File 'lib/ayadn/api.rb', line 165 def follow(username) JSON.parse(CNX.post(Endpoints.new.follow(username))) end |
#get_blocked ⇒ Object
112 113 114 |
# File 'lib/ayadn/api.rb', line 112 def get_blocked build_list(nil, :blocked) end |
#get_channel(channel_id, options = {}) ⇒ Object
228 229 230 231 |
# File 'lib/ayadn/api.rb', line 228 def get_channel channel_id, = {} = {:recent_message => 1, :annotations => 1, :before_id => nil} get_parsed_response(Endpoints.new.channel(channel_id, )) end |
#get_channels ⇒ Object
214 215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/ayadn/api.rb', line 214 def get_channels = {:count => 200, :recent_message => 1, :annotations => 1, :before_id => nil} get_parsed_response(Endpoints.new.channels()) # big = [] # loop do # resp = get_parsed_response(Endpoints.new.channels(options)) # #check_response_meta_code(resp) # big << resp # break if resp['meta']['more'] == false # options = {:count => 200, :before_id => resp['meta']['min_id']} # end # big end |
#get_checkins(options) ⇒ Object
14 15 16 17 |
# File 'lib/ayadn/api.rb', line 14 def get_checkins() = paginate , 'explore:checkins' get_parsed_response(Endpoints.new.checkins()) end |
#get_config ⇒ Object
238 239 240 |
# File 'lib/ayadn/api.rb', line 238 def get_config get_parsed_response(Endpoints.new.config_api_url) end |
#get_conversations(options) ⇒ Object
32 33 34 35 |
# File 'lib/ayadn/api.rb', line 32 def get_conversations() = paginate , 'explore:replies' get_explore(:conversations, ) end |
#get_convo(post_id, options = {}) ⇒ Object
72 73 74 |
# File 'lib/ayadn/api.rb', line 72 def get_convo(post_id, = {}) get_parsed_response(Endpoints.new.convo(post_id, )) end |
#get_details(post_id, options = {}) ⇒ Object
136 137 138 |
# File 'lib/ayadn/api.rb', line 136 def get_details(post_id, = {}) get_parsed_response(Endpoints.new.single_post(post_id, )) end |
#get_explore(explore, options) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/ayadn/api.rb', line 37 def get_explore(explore, ) url = Endpoints.new.trending() if explore == :trending url = Endpoints.new.photos() if explore == :photos url = Endpoints.new.conversations() if explore == :conversations get_parsed_response(url) end |
#get_file(file_id) ⇒ Object
157 158 159 |
# File 'lib/ayadn/api.rb', line 157 def get_file(file_id) get_parsed_response(Endpoints.new.file(file_id)) end |
#get_files_list(options) ⇒ Object
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/ayadn/api.rb', line 140 def get_files_list() array_of_hashes = [] unless [:all] resp = get_parsed_response(Endpoints.new.files_list()) resp['data'].each { |p| array_of_hashes << p } else = {:count => 200, :before_id => nil} loop do resp = get_parsed_response(Endpoints.new.files_list()) resp['data'].each { |p| array_of_hashes << p } break unless resp['meta']['more'] = {:count => 200, :before_id => resp['meta']['min_id']} end end array_of_hashes end |
#get_followers(username) ⇒ Object
104 105 106 |
# File 'lib/ayadn/api.rb', line 104 def get_followers(username) build_list(username, :followers) end |
#get_followings(username) ⇒ Object
100 101 102 |
# File 'lib/ayadn/api.rb', line 100 def get_followings(username) build_list(username, :followings) end |
#get_global(options) ⇒ Object
19 20 21 22 |
# File 'lib/ayadn/api.rb', line 19 def get_global() = paginate , 'global' get_parsed_response(Endpoints.new.global()) end |
#get_hashtag(hashtag) ⇒ Object
76 77 78 |
# File 'lib/ayadn/api.rb', line 76 def get_hashtag(hashtag) get_parsed_response(Endpoints.new.hashtag(hashtag)) end |
#get_interactions ⇒ Object
56 57 58 |
# File 'lib/ayadn/api.rb', line 56 def get_interactions get_parsed_response(Endpoints.new.interactions) end |
#get_mentions(username, options) ⇒ Object
44 45 46 |
# File 'lib/ayadn/api.rb', line 44 def get_mentions(username, ) get_parsed_response(Endpoints.new.mentions(username, )) end |
#get_messages(channel_id, options) ⇒ Object
233 234 235 236 |
# File 'lib/ayadn/api.rb', line 233 def (channel_id, ) = paginate , "channel:#{channel_id}" get_parsed_response(Endpoints.new.(channel_id, )) end |
#get_muted ⇒ Object
108 109 110 |
# File 'lib/ayadn/api.rb', line 108 def get_muted build_list(nil, :muted) end |
#get_photos(options) ⇒ Object
28 29 30 31 |
# File 'lib/ayadn/api.rb', line 28 def get_photos() = paginate , 'explore:photos' get_explore(:photos, ) end |
#get_posts(username, options) ⇒ Object
48 49 50 |
# File 'lib/ayadn/api.rb', line 48 def get_posts(username, ) get_parsed_response(Endpoints.new.posts(username, )) end |
#get_raw_list(username, target) ⇒ Object
116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/ayadn/api.rb', line 116 def get_raw_list(username, target) = {:count => 200, :before_id => nil} big = [] loop do resp = get_parsed_response(get_list_url(username, target, )) big << resp break if resp['meta']['min_id'] == nil || resp['meta']['more'] == false = {:count => 200, :before_id => resp['meta']['min_id']} end big end |
#get_search(words, options) ⇒ Object
80 81 82 |
# File 'lib/ayadn/api.rb', line 80 def get_search(words, ) get_parsed_response(Endpoints.new.search(words, )) end |
#get_token_info ⇒ Object
60 61 62 |
# File 'lib/ayadn/api.rb', line 60 def get_token_info get_parsed_response(Endpoints.new.token_info) end |
#get_trending(options) ⇒ Object
24 25 26 27 |
# File 'lib/ayadn/api.rb', line 24 def get_trending() = paginate , 'explore:trending' get_explore(:trending, ) end |
#get_unified(options) ⇒ Object
9 10 11 12 |
# File 'lib/ayadn/api.rb', line 9 def get_unified() = paginate , 'unified' get_parsed_response(Endpoints.new.unified()) end |
#get_user(username) ⇒ Object
128 129 130 |
# File 'lib/ayadn/api.rb', line 128 def get_user(username) get_parsed_response(Endpoints.new.user(username)) end |
#get_users(usernames) ⇒ Object
132 133 134 |
# File 'lib/ayadn/api.rb', line 132 def get_users(usernames) get_parsed_response(Endpoints.new.users(usernames)) end |
#get_whatstarred(username, options) ⇒ Object
52 53 54 |
# File 'lib/ayadn/api.rb', line 52 def get_whatstarred(username, ) get_parsed_response(Endpoints.new.whatstarred(username, )) end |
#get_whoreposted(post_id) ⇒ Object
64 65 66 |
# File 'lib/ayadn/api.rb', line 64 def get_whoreposted(post_id) get_parsed_response(Endpoints.new.whoreposted(post_id)) end |
#get_whostarred(post_id) ⇒ Object
68 69 70 |
# File 'lib/ayadn/api.rb', line 68 def get_whostarred(post_id) get_parsed_response(Endpoints.new.whostarred(post_id)) end |
#mute(username) ⇒ Object
169 170 171 |
# File 'lib/ayadn/api.rb', line 169 def mute(username) JSON.parse(CNX.post(Endpoints.new.mute(username))) end |
#repost(post_id) ⇒ Object
177 178 179 |
# File 'lib/ayadn/api.rb', line 177 def repost(post_id) JSON.parse(CNX.post(Endpoints.new.repost(post_id))) end |
#search_annotations(words, options) ⇒ Object
88 89 90 |
# File 'lib/ayadn/api.rb', line 88 def search_annotations words, get_parsed_response(Endpoints.new.search_annotations(words, )) end |
#search_channels(words, options) ⇒ Object
92 93 94 |
# File 'lib/ayadn/api.rb', line 92 def search_channels words, get_parsed_response(Endpoints.new.search_channels(words, )) end |
#search_messages(channel_id, words, options) ⇒ Object
96 97 98 |
# File 'lib/ayadn/api.rb', line 96 def channel_id, words, get_parsed_response(Endpoints.new.(channel_id, words, )) end |
#search_users(words, options) ⇒ Object
84 85 86 |
# File 'lib/ayadn/api.rb', line 84 def search_users words, get_parsed_response(Endpoints.new.search_users(words, )) end |
#star(post_id) ⇒ Object
161 162 163 |
# File 'lib/ayadn/api.rb', line 161 def star(post_id) JSON.parse(CNX.post(Endpoints.new.star(post_id))) end |
#unblock(username) ⇒ Object
201 202 203 |
# File 'lib/ayadn/api.rb', line 201 def unblock(username) JSON.parse(CNX.delete(Endpoints.new.block(username))) end |
#unfollow(username) ⇒ Object
193 194 195 |
# File 'lib/ayadn/api.rb', line 193 def unfollow(username) JSON.parse(CNX.delete(Endpoints.new.follow(username))) end |
#unmute(username) ⇒ Object
197 198 199 |
# File 'lib/ayadn/api.rb', line 197 def unmute(username) JSON.parse(CNX.delete(Endpoints.new.mute(username))) end |
#unrepost(post_id) ⇒ Object
205 206 207 208 209 210 211 212 |
# File 'lib/ayadn/api.rb', line 205 def unrepost(post_id) resp = JSON.parse(CNX.delete(Endpoints.new.repost(post_id))) if resp['data']['repost_of'] JSON.parse(CNX.delete(Endpoints.new.repost(resp['data']['repost_of']['id']))) else resp end end |
#unstar(post_id) ⇒ Object
189 190 191 |
# File 'lib/ayadn/api.rb', line 189 def unstar(post_id) JSON.parse(CNX.delete(Endpoints.new.star(post_id))) end |
#update_marker(name, last_read_id) ⇒ Object
250 251 252 253 254 255 256 257 |
# File 'lib/ayadn/api.rb', line 250 def update_marker(name, last_read_id) obj = { 'name' => name, 'id' => last_read_id } url = Endpoints.new.update_marker CNX.post(url, obj) end |