ayadn 1.0.4 → 1.0.5
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/ayadn/scroll.rb +1 -1
- data/lib/ayadn/version.rb +1 -1
- data/lib/ayadn/workers.rb +10 -3
- data/spec/mock/regex.json +188 -0
- data/spec/unit/workers_spec.rb +9 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4887bcdeae96ce84899aa3ebaf4da316c0113b43
|
4
|
+
data.tar.gz: abfa9e72b28407bc4fbf358638a6f799b63be5ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06e1c4314efd90a6ad3085ee89b229596922ebe3da3181ed018bdd419721ac82f3c693694493b10e4ff68c374e7647f5dc2b9ca6f9833d61f1f2c88fe98c164f
|
7
|
+
data.tar.gz: 8faf6206ac2a723787faea00a91c043d18f38946b475f31c0aa85a7be96c38b3fef1df7ed7c8ee1db1dd52eb777c6a2687e30a5e2a8febc7acddedd5684b1eaf
|
data/CHANGELOG.md
CHANGED
data/lib/ayadn/scroll.rb
CHANGED
@@ -36,7 +36,7 @@ module Ayadn
|
|
36
36
|
if Databases.has_new?(stream, 'unified')
|
37
37
|
show(stream, options)
|
38
38
|
end
|
39
|
-
unless stream['meta']['max_id'].nil?
|
39
|
+
unless stream['meta']['max_id'].nil? #check if there isn't lost posts
|
40
40
|
Databases.save_max_id(stream)
|
41
41
|
options = options_hash(stream)
|
42
42
|
end
|
data/lib/ayadn/version.rb
CHANGED
data/lib/ayadn/workers.rb
CHANGED
@@ -276,8 +276,6 @@ module Ayadn
|
|
276
276
|
users_hash
|
277
277
|
end
|
278
278
|
|
279
|
-
private
|
280
|
-
|
281
279
|
def colorize_text(text, mentions)
|
282
280
|
handles = Array.new
|
283
281
|
mentions.each {|username| handles << "@#{username}"}
|
@@ -290,7 +288,14 @@ module Ayadn
|
|
290
288
|
if word =~ /#\w+/
|
291
289
|
words << word.gsub(/#([A-Za-z0-9_]{1,255})(?![\w+])/, '#\1'.color(hashtag_color))
|
292
290
|
elsif word =~ /@\w+/
|
293
|
-
|
291
|
+
splitted = word.split(/[:\-;,?!'&`^=+<>*%()]/) if word =~ /[:\-;,?!'&`^=+<>*%()]/
|
292
|
+
if splitted
|
293
|
+
splitted.each {|d| @str = d if d =~ /@\w+/}
|
294
|
+
@str = word if @str.nil?
|
295
|
+
else
|
296
|
+
@str = word
|
297
|
+
end
|
298
|
+
if handles.include?(@str.downcase)
|
294
299
|
words << word.gsub(/@([A-Za-z0-9_]{1,20})(?![\w+])/, '@\1'.color(mention_color))
|
295
300
|
else
|
296
301
|
words << word
|
@@ -305,6 +310,8 @@ module Ayadn
|
|
305
310
|
sentences.join("\n")
|
306
311
|
end
|
307
312
|
|
313
|
+
private
|
314
|
+
|
308
315
|
def init_table
|
309
316
|
Terminal::Table.new do |t|
|
310
317
|
t.style = { :width => Settings.options[:formats][:table][:width] }
|
@@ -0,0 +1,188 @@
|
|
1
|
+
{
|
2
|
+
"meta": {
|
3
|
+
"code": 200
|
4
|
+
},
|
5
|
+
"data": {
|
6
|
+
"created_at": "2014-04-07T20:13:45Z",
|
7
|
+
"num_stars": 0,
|
8
|
+
"num_replies": 0,
|
9
|
+
"entities": {
|
10
|
+
"mentions": [
|
11
|
+
{
|
12
|
+
"pos": 13,
|
13
|
+
"id": "185581",
|
14
|
+
"len": 10,
|
15
|
+
"name": "aya_tests"
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"pos": 34,
|
19
|
+
"id": "185581",
|
20
|
+
"len": 10,
|
21
|
+
"name": "aya_tests"
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"pos": 52,
|
25
|
+
"id": "185581",
|
26
|
+
"len": 10,
|
27
|
+
"name": "aya_tests"
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"pos": 113,
|
31
|
+
"id": "185581",
|
32
|
+
"len": 10,
|
33
|
+
"name": "aya_tests"
|
34
|
+
},
|
35
|
+
{
|
36
|
+
"pos": 141,
|
37
|
+
"id": "185581",
|
38
|
+
"len": 10,
|
39
|
+
"name": "aya_tests"
|
40
|
+
}
|
41
|
+
],
|
42
|
+
"hashtags": [
|
43
|
+
{
|
44
|
+
"name": "test",
|
45
|
+
"len": 5,
|
46
|
+
"pos": 0
|
47
|
+
},
|
48
|
+
{
|
49
|
+
"name": "regex",
|
50
|
+
"len": 6,
|
51
|
+
"pos": 6
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"name": "true",
|
55
|
+
"len": 5,
|
56
|
+
"pos": 26
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"name": "true",
|
60
|
+
"len": 5,
|
61
|
+
"pos": 46
|
62
|
+
},
|
63
|
+
{
|
64
|
+
"name": "true",
|
65
|
+
"len": 5,
|
66
|
+
"pos": 63
|
67
|
+
},
|
68
|
+
{
|
69
|
+
"name": "false",
|
70
|
+
"len": 6,
|
71
|
+
"pos": 79
|
72
|
+
},
|
73
|
+
{
|
74
|
+
"name": "false",
|
75
|
+
"len": 6,
|
76
|
+
"pos": 105
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"name": "true",
|
80
|
+
"len": 5,
|
81
|
+
"pos": 130
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"name": "true",
|
85
|
+
"len": 5,
|
86
|
+
"pos": 156
|
87
|
+
}
|
88
|
+
],
|
89
|
+
"links": [
|
90
|
+
|
91
|
+
]
|
92
|
+
},
|
93
|
+
"text": "#test #regex\n@aya_tests's #true \n(@aya_tests) #true\n@AyA_TeSts #true\n@aya_test #false\naya@aya_tests.yolo #false\n-@aya_tests:ohai! #true\ntext,@aya_tests,txt #true",
|
94
|
+
"num_reposts": 0,
|
95
|
+
"canonical_url": "https://alpha.app.net/aya_tests/post/27981025",
|
96
|
+
"source": {
|
97
|
+
"link": "http://www.ayadn-app.net",
|
98
|
+
"name": "Ayadn",
|
99
|
+
"client_id": "hFsCGArAjgJkYBHTHbZnUvzTmL4vaLHL"
|
100
|
+
},
|
101
|
+
"machine_only": false,
|
102
|
+
"user": {
|
103
|
+
"username": "aya_tests",
|
104
|
+
"avatar_image": {
|
105
|
+
"url": "https://d2rfichhc2fb9n.cloudfront.net/image/5/wtcnGHTyeGX988iObjlCFHdHEM17InMiOiJzMyIsImIiOiJhZG4tdXNlci1hc3NldHMiLCJrIjoiYXNzZXRzL3VzZXIvMDcvMDEvODAvMDcwMTgwMDAwMDAwMDAwMC5qcGciLCJvIjoiIn0",
|
106
|
+
"width": 322,
|
107
|
+
"is_default": false,
|
108
|
+
"height": 322
|
109
|
+
},
|
110
|
+
"description": {
|
111
|
+
"text": "Experimental account for running tests.",
|
112
|
+
"entities": {
|
113
|
+
"mentions": [
|
114
|
+
|
115
|
+
],
|
116
|
+
"hashtags": [
|
117
|
+
|
118
|
+
],
|
119
|
+
"links": [
|
120
|
+
|
121
|
+
]
|
122
|
+
}
|
123
|
+
},
|
124
|
+
"locale": "fr_FR",
|
125
|
+
"created_at": "2013-11-02T17:06:51Z",
|
126
|
+
"id": "185581",
|
127
|
+
"canonical_url": "https://alpha.app.net/aya_tests",
|
128
|
+
"cover_image": {
|
129
|
+
"url": "https://d2rfichhc2fb9n.cloudfront.net/image/5/kZ-JRmTbmd3WVPswTJ8Nwxzkf917InMiOiJzMyIsImIiOiJ0YXBwLWFzc2V0cyIsImsiOiJpL1UvaS9ZL1VpWW5xRFNvTUtyTEhLNXA0OHN2NkxmTmRVMC5qcGciLCJvIjoiIn0",
|
130
|
+
"width": 960,
|
131
|
+
"is_default": true,
|
132
|
+
"height": 260
|
133
|
+
},
|
134
|
+
"timezone": "Europe/Berlin",
|
135
|
+
"counts": {
|
136
|
+
"following": 15,
|
137
|
+
"posts": 758,
|
138
|
+
"followers": 13,
|
139
|
+
"stars": 5
|
140
|
+
},
|
141
|
+
"type": "human",
|
142
|
+
"annotations": [
|
143
|
+
{
|
144
|
+
"type": "net.chimpli.media",
|
145
|
+
"value": {
|
146
|
+
"image": "29487",
|
147
|
+
"audio": "29489",
|
148
|
+
"video": "29488"
|
149
|
+
}
|
150
|
+
}
|
151
|
+
],
|
152
|
+
"name": "@ericd's tests account"
|
153
|
+
},
|
154
|
+
"you_reposted": false,
|
155
|
+
"id": "27981025",
|
156
|
+
"you_starred": false,
|
157
|
+
"thread_id": "27981025",
|
158
|
+
"annotations": [
|
159
|
+
{
|
160
|
+
"type": "com.ayadn.user",
|
161
|
+
"value": {
|
162
|
+
"username": "aya_tests",
|
163
|
+
"avatar_image": {
|
164
|
+
"url": "https://d2rfichhc2fb9n.cloudfront.net/image/5/wtcnGHTyeGX988iObjlCFHdHEM17InMiOiJzMyIsImIiOiJhZG4tdXNlci1hc3NldHMiLCJrIjoiYXNzZXRzL3VzZXIvMDcvMDEvODAvMDcwMTgwMDAwMDAwMDAwMC5qcGciLCJvIjoiIn0",
|
165
|
+
"width": 322,
|
166
|
+
"is_default": false,
|
167
|
+
"height": 322
|
168
|
+
},
|
169
|
+
"id": "185581",
|
170
|
+
"name": "@ericd's tests account"
|
171
|
+
}
|
172
|
+
},
|
173
|
+
{
|
174
|
+
"type": "com.ayadn.client",
|
175
|
+
"value": {
|
176
|
+
"url": "http://ayadn-app.net",
|
177
|
+
"version": "1.0.4",
|
178
|
+
"author": {
|
179
|
+
"username": "ericd",
|
180
|
+
"email": "eric@aya.io",
|
181
|
+
"id": "69904",
|
182
|
+
"name": "Eric Dejonckheere"
|
183
|
+
}
|
184
|
+
}
|
185
|
+
}
|
186
|
+
]
|
187
|
+
}
|
188
|
+
}
|
data/spec/unit/workers_spec.rb
CHANGED
@@ -21,6 +21,7 @@ describe Ayadn::Workers do
|
|
21
21
|
|
22
22
|
let(:data) { JSON.parse(File.read("spec/mock/stream.json")) }
|
23
23
|
let(:checkins) { JSON.parse(File.read("spec/mock/checkins.json")) }
|
24
|
+
let(:regex_post) { JSON.parse(File.read("spec/mock/regex.json")) }
|
24
25
|
|
25
26
|
describe "#build_posts" do
|
26
27
|
it "builds posts hash from stream" do
|
@@ -144,4 +145,12 @@ describe Ayadn::Workers do
|
|
144
145
|
end
|
145
146
|
end
|
146
147
|
|
148
|
+
describe "#colorize_text" do
|
149
|
+
it "colorizes mentions and hashtags" do
|
150
|
+
text = regex_post['data']['text']
|
151
|
+
mentions = regex_post['data']['entities']['mentions']
|
152
|
+
expect(Ayadn::Workers.new.colorize_text(text, mentions)).to eq "\e[36m#test\e[0m \e[36m#regex\e[0m\n@aya_tests's \e[36m#true\e[0m\n(@aya_tests) \e[36m#true\e[0m\n@AyA_TeSts \e[36m#true\e[0m\n@aya_test \e[36m#false\e[0m\naya@aya_tests.yolo \e[36m#false\e[0m\n-@aya_tests:ohai! \e[36m#true\e[0m\ntext,@aya_tests,txt \e[36m#true\e[0m"
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
147
156
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ayadn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Dejonckheere
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -234,6 +234,7 @@ files:
|
|
234
234
|
- spec/mock/index.db
|
235
235
|
- spec/mock/pagination.db
|
236
236
|
- spec/mock/posted.json
|
237
|
+
- spec/mock/regex.json
|
237
238
|
- spec/mock/stream.json
|
238
239
|
- spec/mock/users.db
|
239
240
|
- spec/spec_helper.rb
|
@@ -282,6 +283,7 @@ test_files:
|
|
282
283
|
- spec/mock/index.db
|
283
284
|
- spec/mock/pagination.db
|
284
285
|
- spec/mock/posted.json
|
286
|
+
- spec/mock/regex.json
|
285
287
|
- spec/mock/stream.json
|
286
288
|
- spec/mock/users.db
|
287
289
|
- spec/spec_helper.rb
|