ayadn 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/CHANGELOG.md +232 -0
- data/CONTRIBUTORS.md +5 -0
- data/LICENSE.md +14 -0
- data/README.md +489 -0
- data/bin/ayadn +358 -0
- data/config.yml +35 -0
- data/lib/ayadn/adn_files.rb +84 -0
- data/lib/ayadn/api.rb +302 -0
- data/lib/ayadn/authorize.rb +29 -0
- data/lib/ayadn/client-http.rb +226 -0
- data/lib/ayadn/colors.rb +62 -0
- data/lib/ayadn/debug.rb +36 -0
- data/lib/ayadn/endpoints.rb +154 -0
- data/lib/ayadn/extend.rb +23 -0
- data/lib/ayadn/files.rb +184 -0
- data/lib/ayadn/get-api.rb +43 -0
- data/lib/ayadn/help.rb +149 -0
- data/lib/ayadn/list.rb +89 -0
- data/lib/ayadn/main.rb +536 -0
- data/lib/ayadn/pinboard.rb +37 -0
- data/lib/ayadn/post.rb +212 -0
- data/lib/ayadn/requires.rb +12 -0
- data/lib/ayadn/skip.rb +27 -0
- data/lib/ayadn/status.rb +166 -0
- data/lib/ayadn/tools.rb +204 -0
- data/lib/ayadn/user-stream.rb +91 -0
- data/lib/ayadn/view-channels.rb +119 -0
- data/lib/ayadn/view-interactions.rb +57 -0
- data/lib/ayadn/view-object.rb +193 -0
- data/lib/ayadn/view.rb +270 -0
- data/lib/ayadn.rb +24 -0
- data/lib/experiments.rb +109 -0
- metadata +110 -0
data/lib/ayadn/api.rb
ADDED
@@ -0,0 +1,302 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
class AyaDN
|
4
|
+
class API
|
5
|
+
def initialize(token)
|
6
|
+
@token = token
|
7
|
+
@endpoints = AyaDN::Endpoints.new(@token)
|
8
|
+
end
|
9
|
+
def makeAuthorizeURL
|
10
|
+
@endpoints.authorize_url
|
11
|
+
end
|
12
|
+
|
13
|
+
def getHash
|
14
|
+
JSON.parse(http_get(@url))
|
15
|
+
end
|
16
|
+
|
17
|
+
def checkLastPageID(last_page_id)
|
18
|
+
@url += "&since_id=#{last_page_id}" if last_page_id != nil
|
19
|
+
end
|
20
|
+
|
21
|
+
def getAPIConfig
|
22
|
+
@url = CONFIG_API_URL
|
23
|
+
getHash
|
24
|
+
end
|
25
|
+
|
26
|
+
def getGlobal(last_page_id)
|
27
|
+
@url = @endpoints.global
|
28
|
+
@url += @endpoints.light_params
|
29
|
+
@url += @endpoints.include_directed if $tools.config['timeline']['directed']
|
30
|
+
checkLastPageID(last_page_id)
|
31
|
+
getHash
|
32
|
+
end
|
33
|
+
def getUnified(last_page_id)
|
34
|
+
@url = @endpoints.unified
|
35
|
+
@url += @endpoints.base_params
|
36
|
+
@url += @endpoints.include_directed if $tools.config['timeline']['directed']
|
37
|
+
checkLastPageID(last_page_id)
|
38
|
+
getHash
|
39
|
+
end
|
40
|
+
def getSimpleUnified
|
41
|
+
@url = @endpoints.unified_streamback
|
42
|
+
@url += @endpoints.base_params
|
43
|
+
@url += @endpoints.include_directed if $tools.config['timeline']['directed']
|
44
|
+
getHash
|
45
|
+
end
|
46
|
+
def getInteractions
|
47
|
+
@url = @endpoints.interactions
|
48
|
+
#checkLastPageID(last_page_id)
|
49
|
+
getHash
|
50
|
+
end
|
51
|
+
def getHashtags(tag)
|
52
|
+
@url = @endpoints.hashtags(tag)
|
53
|
+
getHash
|
54
|
+
end
|
55
|
+
def getExplore(stream, last_page_id)
|
56
|
+
@url = @endpoints.explore(stream)
|
57
|
+
@url += @endpoints.base_params
|
58
|
+
checkLastPageID(last_page_id)
|
59
|
+
getHash
|
60
|
+
end
|
61
|
+
def getUserMentions(username, last_page_id)
|
62
|
+
@url = @endpoints.mentions(username)
|
63
|
+
@url += @endpoints.light_params
|
64
|
+
checkLastPageID(last_page_id)
|
65
|
+
getHash
|
66
|
+
end
|
67
|
+
def getUserPosts(username, last_page_id)
|
68
|
+
@url = @endpoints.posts(username)
|
69
|
+
@url += @endpoints.base_params
|
70
|
+
checkLastPageID(last_page_id)
|
71
|
+
getHash
|
72
|
+
end
|
73
|
+
def getUserInfos(username)
|
74
|
+
@url = @endpoints.user_info(username)
|
75
|
+
@url += @endpoints.base_params
|
76
|
+
getHash
|
77
|
+
end
|
78
|
+
def getWhoReposted(post_id)
|
79
|
+
@url = @endpoints.who_reposted(post_id)
|
80
|
+
@url += @endpoints.light_params
|
81
|
+
getHash
|
82
|
+
end
|
83
|
+
def getWhoStarred(post_id)
|
84
|
+
@url = @endpoints.who_starred(post_id)
|
85
|
+
@url += @endpoints.light_params
|
86
|
+
getHash
|
87
|
+
end
|
88
|
+
def getPostInfos(post_id)
|
89
|
+
@url = @endpoints.single_post(post_id)
|
90
|
+
@url += @endpoints.base_params
|
91
|
+
getHash
|
92
|
+
end
|
93
|
+
def getSinglePost(post_id)
|
94
|
+
@url = @endpoints.single_post(post_id)
|
95
|
+
@url += @endpoints.base_params
|
96
|
+
getHash
|
97
|
+
end
|
98
|
+
def getStarredPosts(username)
|
99
|
+
@url = @endpoints.starred_posts(username)
|
100
|
+
@url += @endpoints.light_params
|
101
|
+
getHash
|
102
|
+
end
|
103
|
+
def getPostReplies(post_id)
|
104
|
+
@url = @endpoints.replies(post_id)
|
105
|
+
@url += @endpoints.base_params
|
106
|
+
getHash
|
107
|
+
end
|
108
|
+
def getPostMentions(post_id)
|
109
|
+
@url = @endpoints.single_post(post_id)
|
110
|
+
@url += @endpoints.light_params
|
111
|
+
theHash = getHash
|
112
|
+
postInfo = theHash['data']
|
113
|
+
#rawText = postInfo['text']
|
114
|
+
postMentionsArray = []
|
115
|
+
postInfo['entities']['mentions'].each { |item| postMentionsArray.push(item['name']) }
|
116
|
+
return postMentionsArray, postInfo['user']['username'], postInfo['repost_of']
|
117
|
+
end
|
118
|
+
def getUserName(username)
|
119
|
+
@url = @endpoints.user_info(username)
|
120
|
+
@url += @endpoints.light_params
|
121
|
+
theHash = getHash
|
122
|
+
theHash['data']['username']
|
123
|
+
end
|
124
|
+
def goDelete(post_id)
|
125
|
+
@url = @endpoints.single_post(post_id)
|
126
|
+
@url += @endpoints.light_params
|
127
|
+
isTherePost, isYours = ifExists(post_id)
|
128
|
+
return isTherePost, isYours
|
129
|
+
end
|
130
|
+
def starPost(post_id)
|
131
|
+
@url = @endpoints.star(post_id)
|
132
|
+
@url += @endpoints.light_params
|
133
|
+
httpPost(@url)
|
134
|
+
end
|
135
|
+
def unstarPost(post_id)
|
136
|
+
@url = @endpoints.star(post_id)
|
137
|
+
@url += @endpoints.light_params
|
138
|
+
$tools.checkHTTPResp(http_delete())
|
139
|
+
end
|
140
|
+
def repostPost(post_id)
|
141
|
+
@url = @endpoints.repost(post_id)
|
142
|
+
@url += @endpoints.light_params
|
143
|
+
httpPost(@url)
|
144
|
+
end
|
145
|
+
def unrepostPost(post_id)
|
146
|
+
@url = @endpoints.repost(post_id)
|
147
|
+
@url += @endpoints.light_params
|
148
|
+
$tools.checkHTTPResp(http_delete())
|
149
|
+
end
|
150
|
+
def ifExists(post_id)
|
151
|
+
theHash = getHash
|
152
|
+
postInfo = theHash['data']
|
153
|
+
return postInfo['text'], postInfo['user']['username']
|
154
|
+
end
|
155
|
+
def getOriginalPost(post_id)
|
156
|
+
theHash = getHash
|
157
|
+
theHash['data']['repost_of']['id']
|
158
|
+
end
|
159
|
+
def getUserFollowInfo(username)
|
160
|
+
@url = @endpoints.user_info(username)
|
161
|
+
@url += @endpoints.light_params
|
162
|
+
theHash = getHash
|
163
|
+
{you_follow: theHash['data']['you_follow'], follows_you: theHash['data']['follows_you']}
|
164
|
+
end
|
165
|
+
def getUserMuteInfo(username)
|
166
|
+
@url = @endpoints.user_info(username)
|
167
|
+
@url += @endpoints.light_params
|
168
|
+
theHash = getHash
|
169
|
+
theHash['data']['you_muted']
|
170
|
+
end
|
171
|
+
def getUserBlockInfo(username)
|
172
|
+
@url = @endpoints.user_info(username)
|
173
|
+
@url += @endpoints.light_params
|
174
|
+
theHash = getHash
|
175
|
+
theHash['data']['you_blocked']
|
176
|
+
end
|
177
|
+
def muteUser(username)
|
178
|
+
@url = @endpoints.mute(username)
|
179
|
+
@url += @endpoints.light_params
|
180
|
+
httpPost(@url)
|
181
|
+
end
|
182
|
+
def unmuteUser(username)
|
183
|
+
@url = @endpoints.mute(username)
|
184
|
+
@url += @endpoints.light_params
|
185
|
+
$tools.checkHTTPResp(http_delete())
|
186
|
+
end
|
187
|
+
def blockUser(username)
|
188
|
+
@url = @endpoints.block(username)
|
189
|
+
@url += @endpoints.light_params
|
190
|
+
httpPost(@url)
|
191
|
+
end
|
192
|
+
def unblockUser(username)
|
193
|
+
@url = @endpoints.block(username)
|
194
|
+
@url += @endpoints.light_params
|
195
|
+
$tools.checkHTTPResp(http_delete())
|
196
|
+
end
|
197
|
+
def followUser(username)
|
198
|
+
@url = @endpoints.follow(username)
|
199
|
+
@url += @endpoints.light_params
|
200
|
+
httpPost(@url)
|
201
|
+
end
|
202
|
+
def unfollowUser(username)
|
203
|
+
@url = @endpoints.follow(username)
|
204
|
+
@url += @endpoints.light_params
|
205
|
+
$tools.checkHTTPResp(http_delete())
|
206
|
+
end
|
207
|
+
def getFollowings(username, beforeID)
|
208
|
+
@url = @endpoints.following(username)
|
209
|
+
@url += @endpoints.light_params
|
210
|
+
@url += "&count=200"
|
211
|
+
@url += "&before_id=#{beforeID}" if beforeID != nil
|
212
|
+
getHash
|
213
|
+
end
|
214
|
+
def getFollowers(username, beforeID)
|
215
|
+
@url = @endpoints.followers(username)
|
216
|
+
@url += @endpoints.light_params
|
217
|
+
@url += "&count=200"
|
218
|
+
@url += "&before_id=#{beforeID}" if beforeID != nil
|
219
|
+
getHash
|
220
|
+
end
|
221
|
+
def getMuted(username, beforeID)
|
222
|
+
@url = @endpoints.muted(username)
|
223
|
+
@url += @endpoints.light_params
|
224
|
+
@url += "&count=200"
|
225
|
+
@url += "&before_id=#{beforeID}" if beforeID != nil
|
226
|
+
getHash
|
227
|
+
end
|
228
|
+
def getBlocked(username, beforeID)
|
229
|
+
@url = @endpoints.blocked(username)
|
230
|
+
@url += @endpoints.light_params
|
231
|
+
@url += "&count=200"
|
232
|
+
@url += "&before_id=#{beforeID}" if beforeID != nil
|
233
|
+
getHash
|
234
|
+
end
|
235
|
+
def getSearch(words)
|
236
|
+
@url = @endpoints.search(words)
|
237
|
+
@url += @endpoints.base_params
|
238
|
+
getHash
|
239
|
+
end
|
240
|
+
def unique_message(channel_id, message_id)
|
241
|
+
@url = @endpoints.get_message(channel_id, message_id)
|
242
|
+
@url += @endpoints.base_params
|
243
|
+
end
|
244
|
+
def getUniqueMessage(channel_id, message_id)
|
245
|
+
@url = @endpoints.get_message(channel_id, message_id)
|
246
|
+
@url += @endpoints.base_params
|
247
|
+
getHash
|
248
|
+
end
|
249
|
+
def getMessages(channel, last_page_id)
|
250
|
+
@url = @endpoints.messages(channel)
|
251
|
+
@url += @endpoints.base_params
|
252
|
+
@url += "&include_machine=1"
|
253
|
+
checkLastPageID(last_page_id)
|
254
|
+
getHash
|
255
|
+
end
|
256
|
+
def get_pm_channels
|
257
|
+
@url = @endpoints.channels
|
258
|
+
@url += @endpoints.base_params
|
259
|
+
@url += "&channel_types=net.app.core.pm"
|
260
|
+
@url += "&include_recent_message=1"
|
261
|
+
getHash
|
262
|
+
end
|
263
|
+
def get_channels
|
264
|
+
@url = @endpoints.channels
|
265
|
+
@url += @endpoints.base_params
|
266
|
+
@url += "&include_recent_message=1"
|
267
|
+
getHash
|
268
|
+
end
|
269
|
+
def getFilesList(beforeID)
|
270
|
+
@url = @endpoints.files_list
|
271
|
+
@url += @endpoints.light_params
|
272
|
+
@url += "&before_id=#{beforeID}" if beforeID != nil
|
273
|
+
getHash
|
274
|
+
end
|
275
|
+
def getSingleFile(file_id)
|
276
|
+
@url = @endpoints.get_file(file_id)
|
277
|
+
@url += @endpoints.light_params
|
278
|
+
getHash
|
279
|
+
end
|
280
|
+
def getMultipleFiles(file_ids)
|
281
|
+
@url = @endpoints.get_multiple_files(file_ids)
|
282
|
+
@url += @endpoints.light_params
|
283
|
+
getHash
|
284
|
+
end
|
285
|
+
def deleteFile(file_id)
|
286
|
+
@url = @endpoints.get_file(file_id)
|
287
|
+
@url += @endpoints.light_params
|
288
|
+
$tools.checkHTTPResp(http_delete())
|
289
|
+
end
|
290
|
+
def deleteMessage(channel_id, message_id)
|
291
|
+
@url = @endpoints.get_message(channel_id, message_id)
|
292
|
+
@url += @endpoints.access_token
|
293
|
+
$tools.checkHTTPResp(http_delete())
|
294
|
+
end
|
295
|
+
# def deactivateChannel(channel_id)
|
296
|
+
# @url = CHANNELS_URL + "#{channel_id}?"
|
297
|
+
# @url += @endpoints.access_token
|
298
|
+
# resp = http_delete
|
299
|
+
# $tools.checkHTTPResp(resp)
|
300
|
+
# end
|
301
|
+
end
|
302
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
class AyaDN
|
4
|
+
def ayadnAuthorize(action)
|
5
|
+
$files.makedir($tools.ayadn_configuration[:authorization_path])
|
6
|
+
if action == "reset"
|
7
|
+
$files.reset_credentials
|
8
|
+
end
|
9
|
+
auth_token = $files.auth_read
|
10
|
+
if auth_token == nil
|
11
|
+
url = @api.makeAuthorizeURL
|
12
|
+
case $tools.ayadn_configuration[:platform]
|
13
|
+
when $tools.winplatforms
|
14
|
+
puts $status.launchAuthorization("win")
|
15
|
+
when /linux/
|
16
|
+
puts $status.launchAuthorization("linux")
|
17
|
+
else
|
18
|
+
puts $status.launchAuthorization("osx")
|
19
|
+
$tools.startBrowser(url)
|
20
|
+
end
|
21
|
+
auth_token = STDIN.gets.chomp()
|
22
|
+
$files.auth_write(auth_token)
|
23
|
+
puts $status.authorized
|
24
|
+
sleep 3
|
25
|
+
puts $tools.helpScreen
|
26
|
+
puts "Enjoy!\n".cyan
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,226 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'json'
|
3
|
+
require 'net/http'
|
4
|
+
require 'openssl'
|
5
|
+
|
6
|
+
# encoding: utf-8
|
7
|
+
class AyaDN
|
8
|
+
class API
|
9
|
+
# WIP
|
10
|
+
# TESTING DIFFERENT WAYS
|
11
|
+
# TODO: DRY
|
12
|
+
def check_http_error_code(body)
|
13
|
+
code = JSON.parse(body)
|
14
|
+
case code['meta']['code']
|
15
|
+
when 204
|
16
|
+
puts "\nNo content (or incomplete).\n\n".red
|
17
|
+
exit
|
18
|
+
when 400
|
19
|
+
puts "\nBad request.\n\n".red
|
20
|
+
puts code['meta'].inspect
|
21
|
+
exit
|
22
|
+
when 401
|
23
|
+
puts "\nUnauthorized.\n\n".red
|
24
|
+
exit
|
25
|
+
when 403
|
26
|
+
puts "\nForbidden.\n\n".red
|
27
|
+
exit
|
28
|
+
when 404
|
29
|
+
puts "\nDoes not exist (or has been deleted).\n\n".red
|
30
|
+
exit
|
31
|
+
when 429
|
32
|
+
puts "\nToo many requests.\n\n".red
|
33
|
+
exit
|
34
|
+
when 507
|
35
|
+
puts "\nInsufficient storage.\n\n".red
|
36
|
+
exit
|
37
|
+
end
|
38
|
+
end
|
39
|
+
def http_get(target)
|
40
|
+
encoded_url = URI.encode("#{target}")
|
41
|
+
uri = URI.parse(encoded_url)
|
42
|
+
https = Net::HTTP.new(uri.host,uri.port)
|
43
|
+
https.use_ssl = true
|
44
|
+
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
45
|
+
request = Net::HTTP::Get.new(uri.request_uri)
|
46
|
+
request["Authorization"] = "Bearer #{@token}"
|
47
|
+
request["Content-Type"] = "application/json"
|
48
|
+
if @progress_indicator == false
|
49
|
+
#print "Connecting to #{uri.host}#{uri.path} ...\n\n".cyan
|
50
|
+
response = https.request(request)
|
51
|
+
check_http_error_code(response.body)
|
52
|
+
return response.body
|
53
|
+
else
|
54
|
+
#print "\rConnecting to #{uri.host}#{uri.path}".cyan
|
55
|
+
body = ''
|
56
|
+
https.request(request) do |res|
|
57
|
+
fileSize = res['Content-Length'].to_i
|
58
|
+
bytesTransferred = 0
|
59
|
+
res.read_body do |part|
|
60
|
+
bytesTransferred += part.length
|
61
|
+
rounded = bytesTransferred.percent_of(fileSize).round(2)
|
62
|
+
print "\rFetching data: ".cyan + "#{rounded} ".brown
|
63
|
+
# print "\rDownloading response from App.net\t#{bytesTransferred.to_filesize}"
|
64
|
+
body << part
|
65
|
+
end
|
66
|
+
end
|
67
|
+
print "\r "
|
68
|
+
#puts ""
|
69
|
+
check_http_error_code(body)
|
70
|
+
return body
|
71
|
+
end
|
72
|
+
end
|
73
|
+
def http_delete
|
74
|
+
uri = URI("#{@url}")
|
75
|
+
https = Net::HTTP.new(uri.host,uri.port)
|
76
|
+
https.use_ssl = true
|
77
|
+
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
78
|
+
request = Net::HTTP::Delete.new(uri.path)
|
79
|
+
request["Authorization"] = "Bearer #{@token}"
|
80
|
+
request["Content-Type"] = "application/json"
|
81
|
+
https.request(request)
|
82
|
+
end
|
83
|
+
def http_download(target=nil)
|
84
|
+
uri = URI("#{target}")
|
85
|
+
final_uri = ''
|
86
|
+
open(uri) do |h|
|
87
|
+
final_uri = h.base_uri.to_s
|
88
|
+
end
|
89
|
+
new_uri = URI.parse(final_uri)
|
90
|
+
https = Net::HTTP.new(new_uri.host,new_uri.port)
|
91
|
+
https.use_ssl = true
|
92
|
+
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
93
|
+
request = Net::HTTP::Get.new(new_uri.request_uri)
|
94
|
+
request["Authorization"] = "Bearer #{@token}"
|
95
|
+
request["Content-Type"] = "application/json"
|
96
|
+
https.request(request)
|
97
|
+
end
|
98
|
+
#####
|
99
|
+
# experimenting
|
100
|
+
# def createIncompleteFileUpload(file_name) #this part works
|
101
|
+
# https, request = connectWithHTTP(FILES_URL)
|
102
|
+
# payload = {
|
103
|
+
# "kind" => "image",
|
104
|
+
# "type" => "com.ayadn.files",
|
105
|
+
# "name" => File.basename(file_name),
|
106
|
+
# "public" => true
|
107
|
+
# }.to_json
|
108
|
+
# response = https.request(request, payload)
|
109
|
+
# return response.body
|
110
|
+
# end
|
111
|
+
# def setFileContentUpload(file_id, file_path, file_token) #this one doesn't
|
112
|
+
# url = FILES_URL + "#{file_id}/content?file_token=#{file_token}"
|
113
|
+
# uri = URI("#{url}")
|
114
|
+
# # ...
|
115
|
+
# end
|
116
|
+
#####
|
117
|
+
|
118
|
+
def httpPutFile(file, data) # data must be json
|
119
|
+
url = "https://alpha-api.app.net/stream/0/files/#{file}"
|
120
|
+
uri = URI("#{url}")
|
121
|
+
https = Net::HTTP.new(uri.host,uri.port)
|
122
|
+
https.use_ssl = true
|
123
|
+
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
124
|
+
request = Net::HTTP::Put.new(uri.path)
|
125
|
+
request["Authorization"] = "Bearer #{@token}"
|
126
|
+
request["Content-Type"] = "application/json"
|
127
|
+
return https.request(request, data)
|
128
|
+
end
|
129
|
+
|
130
|
+
def connectWithHTTP(url)
|
131
|
+
uri = URI("#{url}")
|
132
|
+
https = Net::HTTP.new(uri.host,uri.port)
|
133
|
+
https.use_ssl = true
|
134
|
+
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
135
|
+
request = Net::HTTP::Post.new(uri.path)
|
136
|
+
request["Authorization"] = "Bearer #{@token}"
|
137
|
+
request["Content-Type"] = "application/json"
|
138
|
+
return https, request
|
139
|
+
end
|
140
|
+
def httpPost(url)
|
141
|
+
https, request = connectWithHTTP(url)
|
142
|
+
return https.request(request)
|
143
|
+
end
|
144
|
+
def httpSendMessage(target, text)
|
145
|
+
url = PM_URL
|
146
|
+
url += "?include_annotations=1"
|
147
|
+
https, request = connectWithHTTP(url)
|
148
|
+
entities_content = {
|
149
|
+
"parse_markdown_links" => true,
|
150
|
+
"parse_links" => true
|
151
|
+
}
|
152
|
+
ayadnAnno = clientAnnotations
|
153
|
+
destinations = []
|
154
|
+
payload = {
|
155
|
+
"text" => "#{text}",
|
156
|
+
"destinations" => destinations.push(target),
|
157
|
+
"entities" => entities_content,
|
158
|
+
"annotations" => ayadnAnno
|
159
|
+
}.to_json
|
160
|
+
response = https.request(request, payload)
|
161
|
+
return response.body
|
162
|
+
end
|
163
|
+
def httpSendMessageToChannel(target, text)
|
164
|
+
url = CHANNELS_URL
|
165
|
+
url += "#{target}/messages"
|
166
|
+
#url += "&include_annotations=1"
|
167
|
+
|
168
|
+
https, request = connectWithHTTP(url)
|
169
|
+
entities_content = {
|
170
|
+
"parse_markdown_links" => true,
|
171
|
+
"parse_links" => true
|
172
|
+
}
|
173
|
+
ayadnAnno = clientAnnotations
|
174
|
+
#destinations = []
|
175
|
+
payload = {
|
176
|
+
"text" => "#{text}",
|
177
|
+
"entities" => entities_content,
|
178
|
+
"annotations" => ayadnAnno
|
179
|
+
}.to_json
|
180
|
+
response = https.request(request, payload)
|
181
|
+
return response.body
|
182
|
+
end
|
183
|
+
def httpSend(text, replyto = nil)
|
184
|
+
url = POSTS_URL
|
185
|
+
url += "?include_annotations=1"
|
186
|
+
https, request = connectWithHTTP(url)
|
187
|
+
entities_content = {
|
188
|
+
"parse_markdown_links" => true,
|
189
|
+
"parse_links" => true
|
190
|
+
}
|
191
|
+
ayadnAnno = clientAnnotations
|
192
|
+
if replyto == nil
|
193
|
+
payload = {
|
194
|
+
"text" => "#{text}",
|
195
|
+
"entities" => entities_content,
|
196
|
+
"annotations" => ayadnAnno
|
197
|
+
}.to_json
|
198
|
+
else
|
199
|
+
payload = {
|
200
|
+
"text" => "#{text}",
|
201
|
+
"reply_to" => "#{replyto}",
|
202
|
+
"entities" => entities_content,
|
203
|
+
"annotations" => ayadnAnno
|
204
|
+
}.to_json
|
205
|
+
end
|
206
|
+
response = https.request(request, payload)
|
207
|
+
return response.body
|
208
|
+
end
|
209
|
+
|
210
|
+
def clientAnnotations
|
211
|
+
ayadn_annotations = [{
|
212
|
+
"type" => "com.ayadn.client",
|
213
|
+
"value" => {
|
214
|
+
"+net.app.core.user" => {
|
215
|
+
"user_id" => "@ayadn",
|
216
|
+
"format" => "basic"
|
217
|
+
}
|
218
|
+
}
|
219
|
+
},{
|
220
|
+
"type" => "com.ayadn.client",
|
221
|
+
"value" => { "url" => "http://ayadn-app.net" }
|
222
|
+
}]
|
223
|
+
return ayadn_annotations
|
224
|
+
end
|
225
|
+
end
|
226
|
+
end
|
data/lib/ayadn/colors.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
class String
|
2
|
+
def reddish;
|
3
|
+
"\033[1;31m#{self}\033[0m"
|
4
|
+
end
|
5
|
+
def pink;
|
6
|
+
"\033[1;35m#{self}\033[0m"
|
7
|
+
end
|
8
|
+
def black;
|
9
|
+
"\033[30m#{self}\033[0m"
|
10
|
+
end
|
11
|
+
def red;
|
12
|
+
"\033[31m#{self}\033[0m"
|
13
|
+
end
|
14
|
+
def green;
|
15
|
+
"\033[32m#{self}\033[0m"
|
16
|
+
end
|
17
|
+
def brown;
|
18
|
+
"\033[33m#{self}\033[0m"
|
19
|
+
end
|
20
|
+
def blue;
|
21
|
+
"\033[34m#{self}\033[0m"
|
22
|
+
end
|
23
|
+
def magenta;
|
24
|
+
"\033[35m#{self}\033[0m"
|
25
|
+
end
|
26
|
+
def cyan;
|
27
|
+
"\033[36m#{self}\033[0m"
|
28
|
+
end
|
29
|
+
def gray;
|
30
|
+
"\033[37m#{self}\033[0m"
|
31
|
+
end
|
32
|
+
def bg_black;
|
33
|
+
"\033[40m#{self}\0330m"
|
34
|
+
end
|
35
|
+
def bg_red;
|
36
|
+
"\033[41m#{self}\033[0m"
|
37
|
+
end
|
38
|
+
def bg_green;
|
39
|
+
"\033[42m#{self}\033[0m"
|
40
|
+
end
|
41
|
+
def bg_brown;
|
42
|
+
"\033[43m#{self}\033[0m"
|
43
|
+
end
|
44
|
+
def bg_blue;
|
45
|
+
"\033[44m#{self}\033[0m"
|
46
|
+
end
|
47
|
+
def bg_magenta;
|
48
|
+
"\033[45m#{self}\033[0m"
|
49
|
+
end
|
50
|
+
def bg_cyan;
|
51
|
+
"\033[46m#{self}\033[0m"
|
52
|
+
end
|
53
|
+
def bg_gray;
|
54
|
+
"\033[47m#{self}\033[0m"
|
55
|
+
end
|
56
|
+
def bold;
|
57
|
+
"\033[1m#{self}\033[22m"
|
58
|
+
end
|
59
|
+
def reverse_color;
|
60
|
+
"\033[7m#{self}\033[27m"
|
61
|
+
end
|
62
|
+
end
|
data/lib/ayadn/debug.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
class AyaDN
|
4
|
+
def debugStream
|
5
|
+
puts @view.new(@hash).showDebugStream
|
6
|
+
end
|
7
|
+
def ayadnDebugStream
|
8
|
+
@hash = @api.getUnified(nil)
|
9
|
+
debugStream
|
10
|
+
end
|
11
|
+
def ayadnDebugPost(postID)
|
12
|
+
@hash = @api.getPostInfos(postID)
|
13
|
+
debugStream
|
14
|
+
end
|
15
|
+
def ayadnDebugUser(username)
|
16
|
+
@hash = @api.getUserInfos(username)
|
17
|
+
debugStream
|
18
|
+
end
|
19
|
+
def ayadnDebugMessage(channel_id, message_id)
|
20
|
+
@hash = @api.getUniqueMessage(channel_id, message_id)
|
21
|
+
debugStream
|
22
|
+
end
|
23
|
+
def buildDebugStream(post_hash)
|
24
|
+
# ret_string = ""
|
25
|
+
# post_hash.each do |k, v|
|
26
|
+
# ret_string << "#{k}: #{v}\n\n"
|
27
|
+
# end
|
28
|
+
jj post_hash
|
29
|
+
#exit
|
30
|
+
#return ret_string
|
31
|
+
end
|
32
|
+
def ayadnDebugChannel(channel)
|
33
|
+
@hash = @api.getMessages(channel, nil)
|
34
|
+
jj @hash
|
35
|
+
end
|
36
|
+
end
|