ayadn 0.6.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.
- 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
|