ayadn 1.2.8 → 1.2.9
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 +7 -0
- data/lib/ayadn/action.rb +15 -16
- data/lib/ayadn/alias.rb +4 -9
- data/lib/ayadn/api.rb +16 -25
- data/lib/ayadn/app.rb +1 -1
- data/lib/ayadn/blacklist.rb +7 -17
- data/lib/ayadn/cnx.rb +47 -27
- data/lib/ayadn/databases.rb +23 -58
- data/lib/ayadn/debug.rb +91 -0
- data/lib/ayadn/endpoints.rb +46 -47
- data/lib/ayadn/errors.rb +1 -3
- data/lib/ayadn/fileops.rb +1 -3
- data/lib/ayadn/mark.rb +1 -1
- data/lib/ayadn/nicerank.rb +5 -36
- data/lib/ayadn/pinboard.rb +2 -2
- data/lib/ayadn/post.rb +21 -24
- data/lib/ayadn/scroll.rb +13 -50
- data/lib/ayadn/settings.rb +1 -0
- data/lib/ayadn/status.rb +27 -0
- data/lib/ayadn/switch.rb +2 -0
- data/lib/ayadn/version.rb +1 -1
- data/lib/ayadn/view.rb +14 -15
- data/lib/ayadn/workers.rb +52 -44
- data/lib/ayadn.rb +1 -1
- metadata +3 -2
data/lib/ayadn/switch.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module Ayadn
|
3
3
|
class Switch
|
4
|
+
|
4
5
|
def list
|
5
6
|
home_path = Dir.home + "/ayadn"
|
6
7
|
if File.exist?("#{home_path}/accounts.db")
|
@@ -24,6 +25,7 @@ module Ayadn
|
|
24
25
|
please
|
25
26
|
end
|
26
27
|
end
|
28
|
+
|
27
29
|
def switch(user)
|
28
30
|
if user.empty? || user.nil?
|
29
31
|
puts "\n\nOops, something went wrong, I couldn't get your username. Please try again.\n\n".color(:red)
|
data/lib/ayadn/version.rb
CHANGED
data/lib/ayadn/view.rb
CHANGED
@@ -23,8 +23,7 @@ module Ayadn
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def show_simple_post(post, options)
|
26
|
-
|
27
|
-
puts view
|
26
|
+
puts build_stream_without_index(post, options, {})
|
28
27
|
end
|
29
28
|
|
30
29
|
def show_posted(resp)
|
@@ -268,15 +267,21 @@ module Ayadn
|
|
268
267
|
puts "\e[H\e[2J"
|
269
268
|
end
|
270
269
|
|
270
|
+
def page msg
|
271
|
+
clear_screen
|
272
|
+
puts msg
|
273
|
+
puts "\n"
|
274
|
+
end
|
275
|
+
|
276
|
+
def big_separator
|
277
|
+
"----------\n\n\n"
|
278
|
+
end
|
279
|
+
|
271
280
|
private
|
272
281
|
|
273
282
|
def get_broadcast_alias_from_id(event_id)
|
274
283
|
al = Databases.get_alias_from_id(event_id)
|
275
|
-
|
276
|
-
al
|
277
|
-
else
|
278
|
-
event_id
|
279
|
-
end
|
284
|
+
al.nil? ? event_id : al
|
280
285
|
end
|
281
286
|
|
282
287
|
def filter_nicerank posts, options
|
@@ -305,10 +310,7 @@ module Ayadn
|
|
305
310
|
|
306
311
|
def build_stream_with_index(data, options, niceranks) #expects an array
|
307
312
|
@view = ""
|
308
|
-
posts = @workers.build_posts(data.reverse, niceranks)
|
309
|
-
|
310
|
-
posts = filter_nicerank(posts, options)
|
311
|
-
|
313
|
+
posts = filter_nicerank(@workers.build_posts(data.reverse, niceranks), options)
|
312
314
|
posts.each do |id,content|
|
313
315
|
count = "%03d" % content[:count]
|
314
316
|
if content[:username] == Settings.config[:identity][:username]
|
@@ -326,10 +328,7 @@ module Ayadn
|
|
326
328
|
|
327
329
|
def build_stream_without_index(data, options, niceranks) #expects an array
|
328
330
|
@view = ""
|
329
|
-
posts = @workers.build_posts(data.reverse, niceranks)
|
330
|
-
|
331
|
-
posts = filter_nicerank(posts, options)
|
332
|
-
|
331
|
+
posts = filter_nicerank(@workers.build_posts(data.reverse, niceranks), options)
|
333
332
|
posts.each do |id,content|
|
334
333
|
if content[:username] == Settings.config[:identity][:username]
|
335
334
|
@view << content[:id].to_s.color(Settings.options[:colors][:id]).inverse + " "
|
data/lib/ayadn/workers.rb
CHANGED
@@ -5,18 +5,14 @@ module Ayadn
|
|
5
5
|
def build_aliases_list(list)
|
6
6
|
table = init_table
|
7
7
|
table.title = "List of your channel aliases".color(:cyan) + "".color(:white)
|
8
|
-
list.each
|
9
|
-
table << ["#{k}".color(:green), "#{v}".color(:red)]
|
10
|
-
end
|
8
|
+
list.each {|k,v| table << ["#{k}".color(:green), "#{v}".color(:red)]}
|
11
9
|
table
|
12
10
|
end
|
13
11
|
|
14
12
|
def build_blacklist_list(list)
|
15
13
|
table = init_table
|
16
14
|
table.title = "Your blacklist".color(:cyan) + "".color(:white)
|
17
|
-
list.each
|
18
|
-
table << ["#{v.capitalize}".color(:green), "#{k}".color(:red)]
|
19
|
-
end
|
15
|
+
list.each {|k,v| table << ["#{v.capitalize}".color(:green), "#{k}".color(:red)]}
|
20
16
|
table
|
21
17
|
end
|
22
18
|
|
@@ -44,10 +40,10 @@ module Ayadn
|
|
44
40
|
|
45
41
|
def build_followings_list(list, target) #takes a hash of users with ayadn format
|
46
42
|
table = init_table
|
47
|
-
if target == "me"
|
48
|
-
|
43
|
+
table.title = if target == "me"
|
44
|
+
"List of users you're following".color(:cyan) + "".color(:white)
|
49
45
|
else
|
50
|
-
|
46
|
+
"List of users ".color(:cyan) + "#{target}".color(:red) + " is following ".color(:cyan) + "".color(:white)
|
51
47
|
end
|
52
48
|
users_list = build_users_array(list)
|
53
49
|
build_users_list(users_list, table)
|
@@ -55,27 +51,24 @@ module Ayadn
|
|
55
51
|
|
56
52
|
def build_followers_list(list, target)
|
57
53
|
table = init_table
|
58
|
-
if target == "me"
|
59
|
-
|
54
|
+
table.title = if target == "me"
|
55
|
+
"List of your followers".color(:cyan) + "".color(:white)
|
60
56
|
else
|
61
|
-
|
57
|
+
"List of users following ".color(:cyan) + "#{target}".color(:red) + "".color(:white)
|
62
58
|
end
|
63
|
-
|
64
|
-
build_users_list(users_list, table)
|
59
|
+
build_users_list(build_users_array(list), table)
|
65
60
|
end
|
66
61
|
|
67
62
|
def build_muted_list(list)
|
68
63
|
table = init_table
|
69
64
|
table.title = "List of users you muted".color(:cyan) + "".color(:white)
|
70
|
-
|
71
|
-
build_users_list(users_list, table)
|
65
|
+
build_users_list(build_users_array(list), table)
|
72
66
|
end
|
73
67
|
|
74
68
|
def build_blocked_list(list)
|
75
69
|
table = init_table
|
76
70
|
table.title = "List of users you blocked".color(:cyan) + "".color(:white)
|
77
|
-
|
78
|
-
build_users_list(users_list, table)
|
71
|
+
build_users_list(build_users_array(list), table)
|
79
72
|
end
|
80
73
|
|
81
74
|
def build_users_list(list, table)
|
@@ -146,12 +139,14 @@ module Ayadn
|
|
146
139
|
you_starred: post['you_starred'],
|
147
140
|
source_name: source,
|
148
141
|
source_link: post['source']['link'],
|
149
|
-
canonical_url: post['canonical_url']
|
142
|
+
canonical_url: post['canonical_url'],
|
143
|
+
tags: hashtags,
|
144
|
+
links: extract_links(post),
|
145
|
+
mentions: mentions,
|
146
|
+
directed_to: mentions.first || false
|
150
147
|
}
|
151
148
|
|
152
|
-
values[:
|
153
|
-
|
154
|
-
values[:links] = extract_links(post)
|
149
|
+
values[:checkins], values[:has_checkins] = extract_checkins(post)
|
155
150
|
|
156
151
|
if post['repost_of']
|
157
152
|
values[:is_repost] = true
|
@@ -194,10 +189,6 @@ module Ayadn
|
|
194
189
|
values[:num_reposts] = 0
|
195
190
|
end
|
196
191
|
|
197
|
-
values[:mentions] = mentions
|
198
|
-
values[:directed_to] = mentions.first || false
|
199
|
-
values[:checkins], values[:has_checkins] = extract_checkins(post)
|
200
|
-
|
201
192
|
posts[post['id'].to_i] = values
|
202
193
|
|
203
194
|
end
|
@@ -225,12 +216,14 @@ module Ayadn
|
|
225
216
|
end
|
226
217
|
|
227
218
|
def build_channels(data, options = {})
|
228
|
-
channels = []
|
229
|
-
data.each { |ch| channels << ch }
|
230
219
|
bucket = []
|
231
|
-
|
220
|
+
if options[:channels]
|
221
|
+
puts "Downloading list of channels and their users credentials.\n\nPlease wait, it could take a while if there are many results and users...".color(:cyan)
|
222
|
+
else
|
223
|
+
puts "Downloading new channels and unknown users ids.\nThis is a one time operation, ids are being recorded in a database.\n\nPlease wait, it could take a while if you have many channels...".color(:cyan)
|
224
|
+
end
|
232
225
|
chan = Struct.new(:id, :num_messages, :subscribers, :type, :owner, :annotations, :readers, :editors, :writers, :you_subscribed, :unread, :recent_message_id, :recent_message)
|
233
|
-
|
226
|
+
data.each do |ch|
|
234
227
|
unless ch['writers']['user_ids'].empty?
|
235
228
|
usernames = []
|
236
229
|
ch['writers']['user_ids'].each do |id|
|
@@ -315,27 +308,33 @@ module Ayadn
|
|
315
308
|
reg_tag = '#([[:alpha:]0-9_]{1,255})(?![\w+])'
|
316
309
|
reg_mention = '@([A-Za-z0-9_]{1,20})(?![\w+])'
|
317
310
|
reg_sentence = '^.+[\r\n]*'
|
318
|
-
handles =
|
311
|
+
handles, words, sentences = [], [], []
|
319
312
|
mentions.each {|username| handles << "@#{username}"}
|
320
|
-
words = Array.new
|
321
|
-
sentences = Array.new
|
322
313
|
hashtag_color = Settings.options[:colors][:hashtags]
|
323
314
|
mention_color = Settings.options[:colors][:mentions]
|
324
315
|
text.scan(/#{reg_sentence}/) do |sentence|
|
325
316
|
sentence.split(' ').each do |word|
|
317
|
+
|
318
|
+
word_chars = word.chars
|
319
|
+
sanitized, word = [], []
|
320
|
+
word_chars.each do |ch|
|
321
|
+
if UnicodeUtils.general_category(ch) == :Other_Symbol
|
322
|
+
sanitized << "#{ch} "
|
323
|
+
else
|
324
|
+
sanitized << ch
|
325
|
+
end
|
326
|
+
end
|
327
|
+
word = sanitized.join
|
328
|
+
|
326
329
|
if word =~ /#\w+/
|
327
330
|
slices = word.split('#')
|
328
331
|
has_h = false
|
329
332
|
slices.each do |tag|
|
330
|
-
|
331
|
-
if hashtags.include? bit
|
332
|
-
has_h = true
|
333
|
-
end
|
333
|
+
has_h = true if hashtags.include?(tag.downcase.scan(/[[:alpha:]0-9_]/).join(''))
|
334
334
|
end
|
335
335
|
if has_h == true
|
336
336
|
if slices.length > 1
|
337
|
-
|
338
|
-
words << word.gsub(/#{reg_tag}/, '#\1'.color(hashtag_color))
|
337
|
+
words << slices.join('#').gsub(/#{reg_tag}/, '#\1'.color(hashtag_color))
|
339
338
|
else
|
340
339
|
words << word.gsub(/#{reg_tag}/, '#\1'.color(hashtag_color))
|
341
340
|
end
|
@@ -343,12 +342,21 @@ module Ayadn
|
|
343
342
|
words << word
|
344
343
|
end
|
345
344
|
elsif word =~ /@\w+/
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
345
|
+
enc = []
|
346
|
+
warr = word.split(' ')
|
347
|
+
warr.each do |w|
|
348
|
+
@str = def_str(w, reg_split)
|
349
|
+
if handles.include?(@str.downcase)
|
350
|
+
if warr.length == 1
|
351
|
+
enc << w.gsub(/#{reg_mention}/, '@\1'.color(mention_color))
|
352
|
+
else
|
353
|
+
enc << " #{w.gsub(/#{reg_mention}/, '@\1'.color(mention_color))}"
|
354
|
+
end
|
355
|
+
else
|
356
|
+
enc << w
|
357
|
+
end
|
351
358
|
end
|
359
|
+
words << enc.join
|
352
360
|
else
|
353
361
|
words << word
|
354
362
|
end
|
data/lib/ayadn.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require_relative 'ayadn/version'
|
3
3
|
|
4
|
-
%w{rest_client json thor rainbow/ext/string terminal-table yaml logger daybreak fileutils io/console}.each { |r| require "#{r}" }
|
4
|
+
%w{rest_client json thor rainbow/ext/string terminal-table yaml logger daybreak fileutils io/console unicode_utils/char_type}.each { |r| require "#{r}" }
|
5
5
|
|
6
6
|
# winPlatforms = ['mswin', 'mingw', 'mingw_18', 'mingw_19', 'mingw_20', 'mingw32']
|
7
7
|
# case Gem::Platform.local.os
|
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.2.
|
4
|
+
version: 1.2.9
|
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-05-
|
11
|
+
date: 2014-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -209,6 +209,7 @@ files:
|
|
209
209
|
- lib/ayadn/blacklist.rb
|
210
210
|
- lib/ayadn/cnx.rb
|
211
211
|
- lib/ayadn/databases.rb
|
212
|
+
- lib/ayadn/debug.rb
|
212
213
|
- lib/ayadn/descriptions.rb
|
213
214
|
- lib/ayadn/endpoints.rb
|
214
215
|
- lib/ayadn/errors.rb
|