Class: Ayadn::API

Inherits:
Object show all
Defined in:
lib/ayadn/api.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeAPI

Returns a new instance of API.



5
6
7
8
# File 'lib/ayadn/api.rb', line 5

def initialize
  @workers = Workers.new
  @status = Status.new
end

Class Method Details

.build_query(arg) ⇒ Object



265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
# File 'lib/ayadn/api.rb', line 265

def self.build_query(arg)
  if arg[:count].to_s.is_integer?
    count = arg[:count]
  else
    count = Settings.options[:counts][:default]
  end
  directed = arg[:directed] || Settings.options[: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



179
180
181
# File 'lib/ayadn/api.rb', line 179

def block(username)
  JSON.parse(CNX.post(Endpoints.new.block(username)))
end

#check_response_meta_code(res) ⇒ Object



248
249
250
251
252
253
254
# File 'lib/ayadn/api.rb', line 248

def check_response_meta_code(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



191
192
193
# File 'lib/ayadn/api.rb', line 191

def delete_message(channel_id, message_id)
  JSON.parse(CNX.delete(Endpoints.new.delete_message(channel_id, message_id)))
end

#delete_post(post_id) ⇒ Object



187
188
189
# File 'lib/ayadn/api.rb', line 187

def delete_post(post_id)
  JSON.parse(CNX.delete(Endpoints.new.delete_post(post_id)))
end

#follow(username) ⇒ Object



171
172
173
# File 'lib/ayadn/api.rb', line 171

def follow(username)
  JSON.parse(CNX.post(Endpoints.new.follow(username)))
end

#get_blockedObject



118
119
120
# File 'lib/ayadn/api.rb', line 118

def get_blocked
  build_list(nil, :blocked)
end

#get_channel(channel_id, options = {}) ⇒ Object



234
235
236
237
# File 'lib/ayadn/api.rb', line 234

def get_channel channel_id, options = {}
  options = {:recent_message => 1, :annotations => 1, :before_id => nil}
  get_parsed_response(Endpoints.new.channel(channel_id, options))
end

#get_channelsObject



220
221
222
223
224
225
226
227
228
229
230
231
232
# File 'lib/ayadn/api.rb', line 220

def get_channels
  options = {:count => 200, :recent_message => 1, :annotations => 1, :before_id => nil}
  get_parsed_response(Endpoints.new.channels(options))
  # 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(options)
  options = paginate options, 'explore:checkins'
  get_parsed_response(Endpoints.new.checkins(options))
end

#get_configObject



244
245
246
# File 'lib/ayadn/api.rb', line 244

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(options)
  options = paginate options, 'explore:replies'
  get_explore(:conversations, options)
end

#get_convo(post_id, options = {}) ⇒ Object



78
79
80
# File 'lib/ayadn/api.rb', line 78

def get_convo(post_id, options = {})
  get_parsed_response(Endpoints.new.convo(post_id, options))
end

#get_details(post_id, options = {}) ⇒ Object



142
143
144
# File 'lib/ayadn/api.rb', line 142

def get_details(post_id, options = {})
  get_parsed_response(Endpoints.new.single_post(post_id, options))
end

#get_explore(explore, options) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/ayadn/api.rb', line 38

def get_explore(explore, options)
  url = case explore
  when :trending
    Endpoints.new.trending(options)
  when :photos
    Endpoints.new.photos(options)
  when :conversations
    Endpoints.new.conversations(options)
  end
  get_parsed_response(url)
end

#get_file(file_id) ⇒ Object



163
164
165
# File 'lib/ayadn/api.rb', line 163

def get_file(file_id)
  get_parsed_response(Endpoints.new.file(file_id))
end

#get_files_list(options) ⇒ Object



146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# File 'lib/ayadn/api.rb', line 146

def get_files_list(options)
  array_of_hashes = []
  unless options[:all]
    resp = get_parsed_response(Endpoints.new.files_list(options))
    resp['data'].each { |p| array_of_hashes << p }
  else
    options = {:count => 200, :before_id => nil}
    loop do
      resp = get_parsed_response(Endpoints.new.files_list(options))
      resp['data'].each { |p| array_of_hashes << p }
      break unless resp['meta']['more']
      options = {:count => 200, :before_id => resp['meta']['min_id']}
    end
  end
  array_of_hashes
end

#get_followers(username) ⇒ Object



110
111
112
# File 'lib/ayadn/api.rb', line 110

def get_followers(username)
  build_list(username, :followers)
end

#get_followings(username) ⇒ Object



106
107
108
# File 'lib/ayadn/api.rb', line 106

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(options)
  options = paginate options, 'global'
  get_parsed_response(Endpoints.new.global(options))
end

#get_hashtag(hashtag) ⇒ Object



82
83
84
# File 'lib/ayadn/api.rb', line 82

def get_hashtag(hashtag)
  get_parsed_response(Endpoints.new.hashtag(hashtag))
end

#get_interactionsObject



62
63
64
# File 'lib/ayadn/api.rb', line 62

def get_interactions
  get_parsed_response(Endpoints.new.interactions)
end

#get_mentions(username, options) ⇒ Object



50
51
52
# File 'lib/ayadn/api.rb', line 50

def get_mentions(username, options)
  get_parsed_response(Endpoints.new.mentions(username, options))
end

#get_messages(channel_id, options) ⇒ Object



239
240
241
242
# File 'lib/ayadn/api.rb', line 239

def get_messages(channel_id, options)
  options = paginate options, "channel:#{channel_id}"
  get_parsed_response(Endpoints.new.messages(channel_id, options))
end

#get_mutedObject



114
115
116
# File 'lib/ayadn/api.rb', line 114

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(options)
  options = paginate options, 'explore:photos'
  get_explore(:photos, options)
end

#get_posts(username, options) ⇒ Object



54
55
56
# File 'lib/ayadn/api.rb', line 54

def get_posts(username, options)
  get_parsed_response(Endpoints.new.posts(username, options))
end

#get_raw_list(username, target) ⇒ Object



122
123
124
125
126
127
128
129
130
131
132
# File 'lib/ayadn/api.rb', line 122

def get_raw_list(username, target)
  options = {:count => 200, :before_id => nil}
  big = []
  loop do
    resp = get_parsed_response(get_list_url(username, target, options))
    big << resp
    break if resp['meta']['min_id'] == nil || resp['meta']['more'] == false
    options = {:count => 200, :before_id => resp['meta']['min_id']}
  end
  big
end

#get_search(words, options) ⇒ Object



86
87
88
# File 'lib/ayadn/api.rb', line 86

def get_search(words, options)
  get_parsed_response(Endpoints.new.search(words, options))
end

#get_token_infoObject



66
67
68
# File 'lib/ayadn/api.rb', line 66

def get_token_info
  get_parsed_response(Endpoints.new.token_info)
end


25
26
27
28
# File 'lib/ayadn/api.rb', line 25

def get_trending(options)
  options = paginate options, 'explore:trending'
  get_explore(:trending, options)
end

#get_unified(options) ⇒ Object



10
11
12
13
# File 'lib/ayadn/api.rb', line 10

def get_unified(options)
  options = paginate options, 'unified'
  get_parsed_response(Endpoints.new.unified(options))
end

#get_user(username) ⇒ Object



134
135
136
# File 'lib/ayadn/api.rb', line 134

def get_user(username)
  get_parsed_response(Endpoints.new.user(username))
end

#get_users(usernames) ⇒ Object



138
139
140
# File 'lib/ayadn/api.rb', line 138

def get_users(usernames)
  get_parsed_response(Endpoints.new.users(usernames))
end

#get_whatstarred(username, options) ⇒ Object



58
59
60
# File 'lib/ayadn/api.rb', line 58

def get_whatstarred(username, options)
  get_parsed_response(Endpoints.new.whatstarred(username, options))
end

#get_whoreposted(post_id) ⇒ Object



70
71
72
# File 'lib/ayadn/api.rb', line 70

def get_whoreposted(post_id)
  get_parsed_response(Endpoints.new.whoreposted(post_id))
end

#get_whostarred(post_id) ⇒ Object



74
75
76
# File 'lib/ayadn/api.rb', line 74

def get_whostarred(post_id)
  get_parsed_response(Endpoints.new.whostarred(post_id))
end

#mute(username) ⇒ Object



175
176
177
# File 'lib/ayadn/api.rb', line 175

def mute(username)
  JSON.parse(CNX.post(Endpoints.new.mute(username)))
end

#repost(post_id) ⇒ Object



183
184
185
# File 'lib/ayadn/api.rb', line 183

def repost(post_id)
  JSON.parse(CNX.post(Endpoints.new.repost(post_id)))
end

#search_annotations(words, options) ⇒ Object



94
95
96
# File 'lib/ayadn/api.rb', line 94

def search_annotations words, options
  get_parsed_response(Endpoints.new.search_annotations(words, options))
end

#search_channels(words, options) ⇒ Object



98
99
100
# File 'lib/ayadn/api.rb', line 98

def search_channels words, options
  get_parsed_response(Endpoints.new.search_channels(words, options))
end

#search_messages(channel_id, words, options) ⇒ Object



102
103
104
# File 'lib/ayadn/api.rb', line 102

def search_messages channel_id, words, options
  get_parsed_response(Endpoints.new.search_messages(channel_id, words, options))
end

#search_users(words, options) ⇒ Object



90
91
92
# File 'lib/ayadn/api.rb', line 90

def search_users words, options
  get_parsed_response(Endpoints.new.search_users(words, options))
end

#star(post_id) ⇒ Object



167
168
169
# File 'lib/ayadn/api.rb', line 167

def star(post_id)
  JSON.parse(CNX.post(Endpoints.new.star(post_id)))
end

#unblock(username) ⇒ Object



207
208
209
# File 'lib/ayadn/api.rb', line 207

def unblock(username)
  JSON.parse(CNX.delete(Endpoints.new.block(username)))
end

#unfollow(username) ⇒ Object



199
200
201
# File 'lib/ayadn/api.rb', line 199

def unfollow(username)
  JSON.parse(CNX.delete(Endpoints.new.follow(username)))
end

#unmute(username) ⇒ Object



203
204
205
# File 'lib/ayadn/api.rb', line 203

def unmute(username)
  JSON.parse(CNX.delete(Endpoints.new.mute(username)))
end

#unrepost(post_id) ⇒ Object



211
212
213
214
215
216
217
218
# File 'lib/ayadn/api.rb', line 211

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



195
196
197
# File 'lib/ayadn/api.rb', line 195

def unstar(post_id)
  JSON.parse(CNX.delete(Endpoints.new.star(post_id)))
end

#update_marker(name, last_read_id) ⇒ Object



256
257
258
259
260
261
262
263
# File 'lib/ayadn/api.rb', line 256

def update_marker(name, last_read_id)
  obj = {
    'name' => name,
    'id' => last_read_id
  }
  url = Endpoints.new.update_marker
  CNX.post(url, obj)
end