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
260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 |
# File 'lib/ayadn/api.rb', line 260 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] if directed == true || directed == 1 directed = 1 else directed = 0 end html = 0 if arg[:since_id] "&count=#{count}&include_html=#{html}&include_directed_posts=#{directed}&include_deleted=0&include_annotations=1&since_id=#{arg[:since_id]}" elsif arg[:recent_message] "&count=#{count}&include_html=#{html}&include_directed_posts=#{directed}&include_deleted=0&include_annotations=1&include_recent_message=#{arg[:recent_message]}" else "&count=#{count}&include_html=#{html}&include_directed_posts=#{directed}&include_deleted=0&include_annotations=1" end end |
Instance Method Details
#block(username) ⇒ Object
174 175 176 |
# File 'lib/ayadn/api.rb', line 174 def block(username) JSON.parse(CNX.post(Endpoints.new.block(username))) end |
#check_response_meta_code(res) ⇒ Object
243 244 245 246 247 248 249 |
# File 'lib/ayadn/api.rb', line 243 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
186 187 188 |
# File 'lib/ayadn/api.rb', line 186 def (channel_id, ) JSON.parse(CNX.delete(Endpoints.new.(channel_id, ))) end |
#delete_post(post_id) ⇒ Object
182 183 184 |
# File 'lib/ayadn/api.rb', line 182 def delete_post(post_id) JSON.parse(CNX.delete(Endpoints.new.delete_post(post_id))) end |
#follow(username) ⇒ Object
166 167 168 |
# File 'lib/ayadn/api.rb', line 166 def follow(username) JSON.parse(CNX.post(Endpoints.new.follow(username))) end |
#get_blocked ⇒ Object
113 114 115 |
# File 'lib/ayadn/api.rb', line 113 def get_blocked build_list(nil, :blocked) end |
#get_channel(channel_id, options = {}) ⇒ Object
229 230 231 232 |
# File 'lib/ayadn/api.rb', line 229 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
215 216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'lib/ayadn/api.rb', line 215 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
15 16 17 18 |
# File 'lib/ayadn/api.rb', line 15 def get_checkins() = paginate , 'explore:checkins' get_parsed_response(Endpoints.new.checkins()) end |
#get_config ⇒ Object
239 240 241 |
# File 'lib/ayadn/api.rb', line 239 def get_config get_parsed_response(Endpoints.new.config_api_url) end |
#get_conversations(options) ⇒ Object
33 34 35 36 |
# File 'lib/ayadn/api.rb', line 33 def get_conversations() = paginate , 'explore:replies' get_explore(:conversations, ) end |
#get_convo(post_id, options = {}) ⇒ Object
73 74 75 |
# File 'lib/ayadn/api.rb', line 73 def get_convo(post_id, = {}) get_parsed_response(Endpoints.new.convo(post_id, )) end |
#get_details(post_id, options = {}) ⇒ Object
137 138 139 |
# File 'lib/ayadn/api.rb', line 137 def get_details(post_id, = {}) get_parsed_response(Endpoints.new.single_post(post_id, )) end |
#get_explore(explore, options) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/ayadn/api.rb', line 38 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
158 159 160 |
# File 'lib/ayadn/api.rb', line 158 def get_file(file_id) get_parsed_response(Endpoints.new.file(file_id)) end |
#get_files_list(options) ⇒ Object
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 |
# File 'lib/ayadn/api.rb', line 141 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
105 106 107 |
# File 'lib/ayadn/api.rb', line 105 def get_followers(username) build_list(username, :followers) end |
#get_followings(username) ⇒ Object
101 102 103 |
# File 'lib/ayadn/api.rb', line 101 def get_followings(username) build_list(username, :followings) end |
#get_global(options) ⇒ Object
20 21 22 23 |
# File 'lib/ayadn/api.rb', line 20 def get_global() = paginate , 'global' get_parsed_response(Endpoints.new.global()) end |
#get_hashtag(hashtag) ⇒ Object
77 78 79 |
# File 'lib/ayadn/api.rb', line 77 def get_hashtag(hashtag) get_parsed_response(Endpoints.new.hashtag(hashtag)) end |
#get_interactions ⇒ Object
57 58 59 |
# File 'lib/ayadn/api.rb', line 57 def get_interactions get_parsed_response(Endpoints.new.interactions) end |
#get_mentions(username, options) ⇒ Object
45 46 47 |
# File 'lib/ayadn/api.rb', line 45 def get_mentions(username, ) get_parsed_response(Endpoints.new.mentions(username, )) end |
#get_messages(channel_id, options) ⇒ Object
234 235 236 237 |
# File 'lib/ayadn/api.rb', line 234 def (channel_id, ) = paginate , "channel:#{channel_id}" get_parsed_response(Endpoints.new.(channel_id, )) end |
#get_muted ⇒ Object
109 110 111 |
# File 'lib/ayadn/api.rb', line 109 def get_muted build_list(nil, :muted) end |
#get_photos(options) ⇒ Object
29 30 31 32 |
# File 'lib/ayadn/api.rb', line 29 def get_photos() = paginate , 'explore:photos' get_explore(:photos, ) end |
#get_posts(username, options) ⇒ Object
49 50 51 |
# File 'lib/ayadn/api.rb', line 49 def get_posts(username, ) get_parsed_response(Endpoints.new.posts(username, )) end |
#get_raw_list(username, target) ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/ayadn/api.rb', line 117 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
81 82 83 |
# File 'lib/ayadn/api.rb', line 81 def get_search(words, ) get_parsed_response(Endpoints.new.search(words, )) end |
#get_token_info ⇒ Object
61 62 63 |
# File 'lib/ayadn/api.rb', line 61 def get_token_info get_parsed_response(Endpoints.new.token_info) end |
#get_trending(options) ⇒ Object
25 26 27 28 |
# File 'lib/ayadn/api.rb', line 25 def get_trending() = paginate , 'explore:trending' get_explore(:trending, ) end |
#get_unified(options) ⇒ Object
10 11 12 13 |
# File 'lib/ayadn/api.rb', line 10 def get_unified() = paginate , 'unified' get_parsed_response(Endpoints.new.unified()) end |
#get_user(username) ⇒ Object
129 130 131 |
# File 'lib/ayadn/api.rb', line 129 def get_user(username) get_parsed_response(Endpoints.new.user(username)) end |
#get_users(usernames) ⇒ Object
133 134 135 |
# File 'lib/ayadn/api.rb', line 133 def get_users(usernames) get_parsed_response(Endpoints.new.users(usernames)) end |
#get_whatstarred(username, options) ⇒ Object
53 54 55 |
# File 'lib/ayadn/api.rb', line 53 def get_whatstarred(username, ) get_parsed_response(Endpoints.new.whatstarred(username, )) end |
#get_whoreposted(post_id) ⇒ Object
65 66 67 |
# File 'lib/ayadn/api.rb', line 65 def get_whoreposted(post_id) get_parsed_response(Endpoints.new.whoreposted(post_id)) end |
#get_whostarred(post_id) ⇒ Object
69 70 71 |
# File 'lib/ayadn/api.rb', line 69 def get_whostarred(post_id) get_parsed_response(Endpoints.new.whostarred(post_id)) end |
#mute(username) ⇒ Object
170 171 172 |
# File 'lib/ayadn/api.rb', line 170 def mute(username) JSON.parse(CNX.post(Endpoints.new.mute(username))) end |
#repost(post_id) ⇒ Object
178 179 180 |
# File 'lib/ayadn/api.rb', line 178 def repost(post_id) JSON.parse(CNX.post(Endpoints.new.repost(post_id))) end |
#search_annotations(words, options) ⇒ Object
89 90 91 |
# File 'lib/ayadn/api.rb', line 89 def search_annotations words, get_parsed_response(Endpoints.new.search_annotations(words, )) end |
#search_channels(words, options) ⇒ Object
93 94 95 |
# File 'lib/ayadn/api.rb', line 93 def search_channels words, get_parsed_response(Endpoints.new.search_channels(words, )) end |
#search_messages(channel_id, words, options) ⇒ Object
97 98 99 |
# File 'lib/ayadn/api.rb', line 97 def channel_id, words, get_parsed_response(Endpoints.new.(channel_id, words, )) end |
#search_users(words, options) ⇒ Object
85 86 87 |
# File 'lib/ayadn/api.rb', line 85 def search_users words, get_parsed_response(Endpoints.new.search_users(words, )) end |
#star(post_id) ⇒ Object
162 163 164 |
# File 'lib/ayadn/api.rb', line 162 def star(post_id) JSON.parse(CNX.post(Endpoints.new.star(post_id))) end |
#unblock(username) ⇒ Object
202 203 204 |
# File 'lib/ayadn/api.rb', line 202 def unblock(username) JSON.parse(CNX.delete(Endpoints.new.block(username))) end |
#unfollow(username) ⇒ Object
194 195 196 |
# File 'lib/ayadn/api.rb', line 194 def unfollow(username) JSON.parse(CNX.delete(Endpoints.new.follow(username))) end |
#unmute(username) ⇒ Object
198 199 200 |
# File 'lib/ayadn/api.rb', line 198 def unmute(username) JSON.parse(CNX.delete(Endpoints.new.mute(username))) end |
#unrepost(post_id) ⇒ Object
206 207 208 209 210 211 212 213 |
# File 'lib/ayadn/api.rb', line 206 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
190 191 192 |
# File 'lib/ayadn/api.rb', line 190 def unstar(post_id) JSON.parse(CNX.delete(Endpoints.new.star(post_id))) end |
#update_marker(name, last_read_id) ⇒ Object
251 252 253 254 255 256 257 258 |
# File 'lib/ayadn/api.rb', line 251 def update_marker(name, last_read_id) obj = { 'name' => name, 'id' => last_read_id } url = Endpoints.new.update_marker CNX.post(url, obj) end |