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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 396696ba41b0ced3c60604dec4dbd72e0fce6aad
|
4
|
+
data.tar.gz: 4cc63db6bf94dd34e50947d3a40e5a6faf33bbd4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66a344b2aa29c53ff5a4b131d1b760f9e493dba8d3644a65381187d4c3fb386bb3ac1b00502dffb29a1dc03d42578d80a6e9d57b4f635203c7d6ba8d5c8d69c7
|
7
|
+
data.tar.gz: 4d0c31c8dac46ccd6a5359af261bcf76af857f6d27b7190d027396dd3cf8c4203c83773ef184f1836f12e2712a4c70403445e93a27e8de918a0e5c95ab520dea
|
data/CHANGELOG.md
CHANGED
data/lib/ayadn/action.rb
CHANGED
@@ -460,7 +460,7 @@ module Ayadn
|
|
460
460
|
if options[:users]
|
461
461
|
stream['data'].sort_by! {|obj| obj['counts']['followers']}
|
462
462
|
stream['data'].each do |obj|
|
463
|
-
puts
|
463
|
+
puts @view.big_separator
|
464
464
|
@view.show_userinfos(obj, nil)
|
465
465
|
end
|
466
466
|
elsif options[:channels]
|
@@ -874,9 +874,7 @@ module Ayadn
|
|
874
874
|
Databases.close_all
|
875
875
|
abort(Status.error_only_osx) unless Settings.config[:platform] =~ /darwin/
|
876
876
|
itunes = get_track_infos
|
877
|
-
itunes.each
|
878
|
-
abort(Status.empty_fields) if el.length == 0
|
879
|
-
end
|
877
|
+
itunes.each {|el| abort(Status.empty_fields) if el.length == 0}
|
880
878
|
@view.clear_screen
|
881
879
|
text_to_post = "#nowplaying\nTitle: ‘#{itunes.track}’\nArtist: #{itunes.artist}\nfrom ‘#{itunes.album}’"
|
882
880
|
puts Status.writing
|
@@ -886,9 +884,8 @@ module Ayadn
|
|
886
884
|
exit
|
887
885
|
end
|
888
886
|
puts "\n"
|
889
|
-
resp = Post.new.post([text_to_post])
|
890
887
|
puts Status.yourpost
|
891
|
-
@view.show_posted(
|
888
|
+
@view.show_posted(Post.new.post([text_to_post]))
|
892
889
|
rescue => e
|
893
890
|
puts Status.wtf
|
894
891
|
Errors.global_error("action/nowplaying", itunes, e)
|
@@ -1082,13 +1079,13 @@ module Ayadn
|
|
1082
1079
|
end
|
1083
1080
|
|
1084
1081
|
def user_404(username)
|
1085
|
-
puts
|
1082
|
+
puts Status.user_404 username
|
1086
1083
|
Errors.info("User #{username} doesn't exist")
|
1087
1084
|
exit
|
1088
1085
|
end
|
1089
1086
|
|
1090
1087
|
def post_404(post_id)
|
1091
|
-
puts
|
1088
|
+
puts Status.post_404 post_id
|
1092
1089
|
Errors.info("Impossible to find #{post_id}")
|
1093
1090
|
exit
|
1094
1091
|
end
|
@@ -1172,7 +1169,7 @@ module Ayadn
|
|
1172
1169
|
channel_id = Databases.get_channel_id(orig)
|
1173
1170
|
if channel_id.nil?
|
1174
1171
|
Errors.warn("Alias '#{orig}' doesn't exist.")
|
1175
|
-
puts
|
1172
|
+
puts Status.no_alias
|
1176
1173
|
exit
|
1177
1174
|
end
|
1178
1175
|
end
|
@@ -1221,7 +1218,7 @@ module Ayadn
|
|
1221
1218
|
def get_track_infos
|
1222
1219
|
track = `osascript -e 'tell application "iTunes"' -e 'set trackName to name of current track' -e 'return trackName' -e 'end tell'`
|
1223
1220
|
if track.empty?
|
1224
|
-
puts
|
1221
|
+
puts Status.no_itunes
|
1225
1222
|
Errors.warn "Nowplaying canceled: unable to get info from iTunes."
|
1226
1223
|
exit
|
1227
1224
|
end
|
@@ -1260,24 +1257,26 @@ module Ayadn
|
|
1260
1257
|
end
|
1261
1258
|
|
1262
1259
|
def view_all_hashtag_links(stream, hashtag)
|
1263
|
-
links = links_from_posts(stream)
|
1264
1260
|
@view.clear_screen
|
1265
1261
|
puts "Links from posts containing hashtag '##{hashtag}': \n".color(:cyan)
|
1266
|
-
show_links(
|
1262
|
+
show_links(links_from_posts(stream))
|
1267
1263
|
end
|
1268
1264
|
|
1269
1265
|
def view_all_search_links(stream, words)
|
1270
|
-
links = links_from_posts(stream)
|
1271
1266
|
@view.clear_screen
|
1272
1267
|
puts "Links from posts containing word(s) '#{words}': \n".color(:cyan)
|
1273
|
-
show_links(
|
1268
|
+
show_links(links_from_posts(stream))
|
1274
1269
|
end
|
1275
1270
|
|
1276
1271
|
def view_all_stars_links(stream)
|
1277
|
-
links = links_from_posts(stream)
|
1278
1272
|
@view.clear_screen
|
1279
1273
|
puts "Links from your starred posts: \n".color(:cyan)
|
1280
|
-
show_links(
|
1274
|
+
show_links(links_from_posts(stream))
|
1275
|
+
end
|
1276
|
+
|
1277
|
+
def self.quit msg
|
1278
|
+
puts msg
|
1279
|
+
exit
|
1281
1280
|
end
|
1282
1281
|
|
1283
1282
|
end
|
data/lib/ayadn/alias.rb
CHANGED
@@ -10,8 +10,7 @@ module Ayadn
|
|
10
10
|
unless args.empty?
|
11
11
|
channel, channel_alias = args[0], args[1]
|
12
12
|
else
|
13
|
-
|
14
|
-
exit
|
13
|
+
Action.quit Status.wrong_arguments
|
15
14
|
end
|
16
15
|
if channel.is_integer?
|
17
16
|
Databases.create_alias(channel, channel_alias)
|
@@ -37,8 +36,7 @@ module Ayadn
|
|
37
36
|
Logs.rec.info "Deleted alias '#{args[0]}'."
|
38
37
|
puts Status.done
|
39
38
|
else
|
40
|
-
|
41
|
-
exit
|
39
|
+
Action.quit Status.wrong_arguments
|
42
40
|
end
|
43
41
|
rescue => e
|
44
42
|
Errors.global_error("alias/delete", args, e)
|
@@ -55,8 +53,7 @@ module Ayadn
|
|
55
53
|
unless database.nil?
|
56
54
|
new_db = File.realpath(database)
|
57
55
|
else
|
58
|
-
|
59
|
-
exit
|
56
|
+
Action.quit Status.wrong_arguments
|
60
57
|
end
|
61
58
|
if File.exist?(new_db)
|
62
59
|
Databases.import_aliases(new_db)
|
@@ -85,9 +82,7 @@ module Ayadn
|
|
85
82
|
list.each {|k,v| h[k] = v}
|
86
83
|
puts h.to_json
|
87
84
|
else
|
88
|
-
|
89
|
-
puts Workers.new.build_aliases_list(list)
|
90
|
-
puts "\n"
|
85
|
+
View.new.page Workers.new.build_aliases_list(list)
|
91
86
|
end
|
92
87
|
else
|
93
88
|
puts Status.empty_list
|
data/lib/ayadn/api.rb
CHANGED
@@ -3,42 +3,30 @@ module Ayadn
|
|
3
3
|
class API
|
4
4
|
|
5
5
|
def get_unified(options)
|
6
|
-
|
7
|
-
options = {since_id: Databases.pagination['unified']}
|
8
|
-
end
|
6
|
+
options = paginate options, 'unified'
|
9
7
|
get_parsed_response(Endpoints.new.unified(options))
|
10
8
|
end
|
11
9
|
|
12
10
|
def get_checkins(options)
|
13
|
-
|
14
|
-
options = {since_id: Databases.pagination['explore:checkins']}
|
15
|
-
end
|
11
|
+
options = paginate options, 'explore:checkins'
|
16
12
|
get_parsed_response(Endpoints.new.checkins(options))
|
17
13
|
end
|
18
14
|
|
19
15
|
def get_global(options)
|
20
|
-
|
21
|
-
options = {since_id: Databases.pagination['global']}
|
22
|
-
end
|
16
|
+
options = paginate options, 'global'
|
23
17
|
get_parsed_response(Endpoints.new.global(options))
|
24
18
|
end
|
25
19
|
|
26
20
|
def get_trending(options)
|
27
|
-
|
28
|
-
options = {since_id: Databases.pagination['explore:trending']}
|
29
|
-
end
|
21
|
+
options = paginate options, 'explore:trending'
|
30
22
|
get_explore(:trending, options)
|
31
23
|
end
|
32
24
|
def get_photos(options)
|
33
|
-
|
34
|
-
options = {since_id: Databases.pagination['explore:photos']}
|
35
|
-
end
|
25
|
+
options = paginate options, 'explore:photos'
|
36
26
|
get_explore(:photos, options)
|
37
27
|
end
|
38
28
|
def get_conversations(options)
|
39
|
-
|
40
|
-
options = {since_id: Databases.pagination['explore:replies']}
|
41
|
-
end
|
29
|
+
options = paginate options, 'explore:replies'
|
42
30
|
get_explore(:conversations, options)
|
43
31
|
end
|
44
32
|
|
@@ -125,8 +113,7 @@ module Ayadn
|
|
125
113
|
options = {:count => 200, :before_id => nil}
|
126
114
|
big = []
|
127
115
|
loop do
|
128
|
-
|
129
|
-
resp = get_parsed_response(url)
|
116
|
+
resp = get_parsed_response(get_list_url(username, target, options))
|
130
117
|
big << resp
|
131
118
|
break if resp['meta']['min_id'] == nil || resp['meta']['more'] == false
|
132
119
|
options = {:count => 200, :before_id => resp['meta']['min_id']}
|
@@ -231,9 +218,7 @@ module Ayadn
|
|
231
218
|
end
|
232
219
|
|
233
220
|
def get_messages(channel_id, options)
|
234
|
-
|
235
|
-
options = {since_id: Databases.pagination["channel:#{channel_id}"]}
|
236
|
-
end
|
221
|
+
options = paginate options, "channel:#{channel_id}"
|
237
222
|
get_parsed_response(Endpoints.new.messages(channel_id, options))
|
238
223
|
end
|
239
224
|
|
@@ -291,6 +276,13 @@ module Ayadn
|
|
291
276
|
|
292
277
|
private
|
293
278
|
|
279
|
+
def paginate options, target
|
280
|
+
if options[:new] || options[:scroll]
|
281
|
+
return {since_id: Databases.pagination[target]}
|
282
|
+
end
|
283
|
+
return options
|
284
|
+
end
|
285
|
+
|
294
286
|
def get_parsed_response(url)
|
295
287
|
JSON.parse(CNX.get_response_from(url))
|
296
288
|
end
|
@@ -307,8 +299,7 @@ module Ayadn
|
|
307
299
|
options = {:count => 200, :before_id => nil}
|
308
300
|
big_hash = {}
|
309
301
|
loop do
|
310
|
-
|
311
|
-
resp = get_parsed_response(url)
|
302
|
+
resp = get_parsed_response(get_list_url(username, target, options))
|
312
303
|
big_hash.merge!(Workers.extract_users(resp))
|
313
304
|
break if resp['meta']['min_id'] == nil
|
314
305
|
options = {:count => 200, :before_id => resp['meta']['min_id']}
|
data/lib/ayadn/app.rb
CHANGED
@@ -3,7 +3,7 @@ module Ayadn
|
|
3
3
|
class App < Thor
|
4
4
|
package_name "Ayadn"
|
5
5
|
|
6
|
-
%w{action api descriptions endpoints cnx view workers settings post status extend databases fileops logs pinboard set alias errors blacklist scroll authorize switch mark nicerank}.each { |r| require_relative "#{r}" }
|
6
|
+
%w{action api descriptions endpoints cnx view workers settings post status extend databases fileops logs pinboard set alias errors blacklist scroll authorize switch mark nicerank debug}.each { |r| require_relative "#{r}" }
|
7
7
|
|
8
8
|
desc "timeline", "Show your App.net timeline, aka the Unified Stream (-tl)"
|
9
9
|
map "unified" => :timeline
|
data/lib/ayadn/blacklist.rb
CHANGED
@@ -4,22 +4,16 @@ module Ayadn
|
|
4
4
|
desc "add TYPE TARGET", "Adds a mention, hashtag or client to your blacklist"
|
5
5
|
long_desc Descriptions.blacklist_add
|
6
6
|
def add(*args)
|
7
|
-
if args.length < 2
|
8
|
-
|
9
|
-
end
|
10
|
-
blacklist = BlacklistWorkers.new
|
11
|
-
blacklist.add(args)
|
7
|
+
Action.quit(Status.type_and_target_missing) if args.length < 2
|
8
|
+
BlacklistWorkers.new.add(args)
|
12
9
|
puts Status.done
|
13
10
|
end
|
14
11
|
|
15
12
|
desc "remove TYPE TARGET", "Removes a mention, hashtag or client from your blacklist"
|
16
13
|
long_desc Descriptions.blacklist_remove
|
17
14
|
def remove(*args)
|
18
|
-
if args.length < 2
|
19
|
-
|
20
|
-
end
|
21
|
-
blacklist = BlacklistWorkers.new
|
22
|
-
blacklist.remove(args)
|
15
|
+
Action.quit(Status.type_and_target_missing) if args.length < 2
|
16
|
+
BlacklistWorkers.new.remove(args)
|
23
17
|
puts Status.done
|
24
18
|
end
|
25
19
|
|
@@ -27,23 +21,19 @@ module Ayadn
|
|
27
21
|
long_desc Descriptions.blacklist_list
|
28
22
|
option :raw, aliases: "-x", type: :boolean, desc: "Outputs the raw list in CSV"
|
29
23
|
def list
|
30
|
-
|
31
|
-
blacklist.list(options)
|
24
|
+
BlacklistWorkers.new.list(options)
|
32
25
|
end
|
33
26
|
|
34
27
|
desc "import DATABASE", "Imports a blacklist database from another Ayadn account"
|
35
28
|
long_desc Descriptions.blacklist_import
|
36
29
|
def import(database)
|
37
|
-
|
38
|
-
blacklist.import(database)
|
39
|
-
puts Status.done
|
30
|
+
BlacklistWorkers.new.import(database)
|
40
31
|
end
|
41
32
|
|
42
33
|
desc "convert", "Convert your current blacklist database to the new format"
|
43
34
|
long_desc Descriptions.blacklist_convert
|
44
35
|
def convert
|
45
|
-
|
46
|
-
blacklist.convert
|
36
|
+
BlacklistWorkers.new.convert
|
47
37
|
puts Status.done
|
48
38
|
end
|
49
39
|
|
data/lib/ayadn/cnx.rb
CHANGED
@@ -3,18 +3,28 @@ module Ayadn
|
|
3
3
|
class CNX
|
4
4
|
|
5
5
|
def self.get url
|
6
|
+
working = true
|
6
7
|
begin
|
7
8
|
RestClient.get(url) do |response, request, result|
|
8
|
-
|
9
|
-
#response
|
9
|
+
Debug.http response, url
|
10
10
|
check_nr response, url
|
11
11
|
end
|
12
12
|
rescue SocketError => e
|
13
|
-
|
14
|
-
|
13
|
+
if working == true
|
14
|
+
working = false
|
15
|
+
sleep 0.5
|
16
|
+
retry
|
17
|
+
end
|
18
|
+
Errors.nr "URL: #{url}"
|
19
|
+
return {'meta' => {'code' => 666}, 'data' => "#{e}"}.to_json
|
15
20
|
rescue SystemCallError => e
|
16
|
-
|
17
|
-
|
21
|
+
if working == true
|
22
|
+
working = false
|
23
|
+
sleep 0.5
|
24
|
+
retry
|
25
|
+
end
|
26
|
+
Errors.nr "URL: #{url}"
|
27
|
+
return {'meta' => {'code' => 666}, 'data' => "#{e}"}.to_json
|
18
28
|
rescue => e
|
19
29
|
Errors.global_error("cnx.rb/get", url, e)
|
20
30
|
end
|
@@ -25,39 +35,49 @@ module Ayadn
|
|
25
35
|
when 200
|
26
36
|
response
|
27
37
|
when 204
|
28
|
-
puts "\nError: the NiceRank filter made too many requests to the server. You may either wait for a little while before scrolling the filtered Global again, or set the scroll timer to a greater value (example: `ayadn set scroll timer 5`).
|
38
|
+
puts "\nError: the NiceRank filter made too many requests to the server. You may either wait for a little while before scrolling the filtered Global again, or set the scroll timer to a greater value (example: `ayadn set scroll timer 5`). (see http://ayadn-app.net/doc).\n".color(:red)
|
29
39
|
Errors.global_error("cnx.rb/get", [url, response.inspect, response.headers], "NiceRank: TOO MANY REQUESTS")
|
30
40
|
else
|
31
41
|
response
|
32
42
|
end
|
33
43
|
end
|
34
44
|
|
35
|
-
def self.debug response, url
|
36
|
-
deb = ":::::\n"
|
37
|
-
deb << "Url:\t\t#{url}\n\n"
|
38
|
-
deb << "Headers:\t#{response.headers}\n"
|
39
|
-
deb << ":::::\n"
|
40
|
-
puts deb.color(Settings.options[:colors][:debug])
|
41
|
-
end
|
42
|
-
|
43
45
|
def self.get_response_from(url)
|
46
|
+
try_cnx = 1
|
44
47
|
begin
|
45
48
|
RestClient.get(url) do |response, request, result| #, :verify_ssl => OpenSSL::SSL::VERIFY_NONE
|
46
|
-
|
47
|
-
check
|
49
|
+
Debug.http response, url
|
50
|
+
check response
|
48
51
|
end
|
49
52
|
rescue SocketError => e
|
53
|
+
if try_cnx < 4
|
54
|
+
try_cnx = retry_adn 10, try_cnx
|
55
|
+
retry
|
56
|
+
end
|
50
57
|
puts "\nConnection error.".color(:red)
|
51
|
-
Errors.global_error("cnx.rb/
|
58
|
+
Errors.global_error("cnx.rb/get_response_from", url, e)
|
52
59
|
rescue SystemCallError => e
|
60
|
+
if try_cnx < 4
|
61
|
+
try_cnx = retry_adn 15, try_cnx
|
62
|
+
retry
|
63
|
+
end
|
53
64
|
puts "\nConnection error.".color(:red)
|
54
|
-
Errors.global_error("cnx.rb/
|
65
|
+
Errors.global_error("cnx.rb/get_response_from", url, e)
|
55
66
|
rescue => e
|
56
|
-
Errors.global_error("cnx.rb/
|
67
|
+
Errors.global_error("cnx.rb/get_response_from", url, e)
|
57
68
|
end
|
58
69
|
end
|
59
70
|
|
60
|
-
def self.
|
71
|
+
def self.retry_adn seconds, try_cnx
|
72
|
+
Errors.warn "Unable to connect to App.net"
|
73
|
+
puts "\n\nUnable to connect to App.net\nRetrying in #{seconds} seconds... (#{try_cnx}/3)\n".color(:red)
|
74
|
+
try_cnx += 1
|
75
|
+
sleep seconds
|
76
|
+
puts "\e[H\e[2J"
|
77
|
+
try_cnx
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.check response
|
61
81
|
message = JSON.parse(response)['meta']['error_message'] if response.code != 200
|
62
82
|
case response.code
|
63
83
|
when 200
|
@@ -96,8 +116,8 @@ module Ayadn
|
|
96
116
|
begin
|
97
117
|
#RestClient::Resource.new(url).delete
|
98
118
|
RestClient.delete(url) do |response, request, result|
|
99
|
-
|
100
|
-
check
|
119
|
+
Debug.http response, url
|
120
|
+
check response
|
101
121
|
end
|
102
122
|
rescue SocketError => e
|
103
123
|
puts "\nConnection error.".color(:red)
|
@@ -113,8 +133,8 @@ module Ayadn
|
|
113
133
|
def self.post(url, payload = nil)
|
114
134
|
begin
|
115
135
|
RestClient.post(url, payload.to_json, :content_type => :json, :accept => :json) do |response, request, result|
|
116
|
-
|
117
|
-
check
|
136
|
+
Debug.http response, url
|
137
|
+
check response
|
118
138
|
end
|
119
139
|
rescue SocketError => e
|
120
140
|
puts "\nConnection error.".color(:red)
|
@@ -130,8 +150,8 @@ module Ayadn
|
|
130
150
|
def self.put(url, payload)
|
131
151
|
begin
|
132
152
|
RestClient.put(url, payload.to_json, :content_type => :json, :accept => :json) do |response, request, result|
|
133
|
-
|
134
|
-
check
|
153
|
+
Debug.http response, url
|
154
|
+
check response
|
135
155
|
end
|
136
156
|
rescue SocketError => e
|
137
157
|
puts "\nConnection error.".color(:red)
|
data/lib/ayadn/databases.rb
CHANGED
@@ -17,35 +17,24 @@ module Ayadn
|
|
17
17
|
@nicerank = self.init "#{Settings.config[:paths][:db]}/nicerank.db"
|
18
18
|
end
|
19
19
|
|
20
|
+
def self.all_dbs
|
21
|
+
[@users, @index, @pagination, @aliases, @blacklist, @bookmarks, @nicerank]
|
22
|
+
end
|
23
|
+
|
20
24
|
def self.close_all
|
21
25
|
|
22
|
-
if @nicerank.size >
|
23
|
-
limit = Time.now -
|
26
|
+
if @nicerank.size > 10000
|
27
|
+
limit = Time.now - (3600 * 168)
|
24
28
|
@nicerank.each {|k,v| @nicerank.delete(k) if v[:cached] < limit}
|
25
|
-
if @nicerank.size >
|
26
|
-
limit = Time.now -
|
29
|
+
if @nicerank.size > 10000
|
30
|
+
limit = Time.now - (3600 * 48)
|
27
31
|
@nicerank.each {|k,v| @nicerank.delete(k) if v[:cached] < limit}
|
28
32
|
end
|
29
33
|
end
|
30
34
|
|
31
|
-
|
32
|
-
puts "/////\nSETTINGS\n"
|
33
|
-
jj JSON.parse((Settings.config).to_json)
|
34
|
-
jj JSON.parse((Settings.options).to_json)
|
35
|
-
puts "/////\n\n"
|
35
|
+
Debug.db all_dbs
|
36
36
|
|
37
|
-
|
38
|
-
[@users, @index, @pagination, @aliases, @blacklist, @bookmarks, @nicerank].each do |db|
|
39
|
-
puts "Path:\t#{db.file}\nLength:\t#{db.size}\nSize:\t#{db.bytesize / 1024}KB"
|
40
|
-
end
|
41
|
-
puts ">>>>>\n\n"
|
42
|
-
|
43
|
-
puts "^^^^^\nTOKEN\n"
|
44
|
-
puts Settings.user_token
|
45
|
-
puts "^^^^^\n\n"
|
46
|
-
end
|
47
|
-
|
48
|
-
[@users, @index, @pagination, @aliases, @blacklist, @bookmarks, @nicerank].each do |db|
|
37
|
+
all_dbs.each do |db|
|
49
38
|
db.flush
|
50
39
|
db.compact
|
51
40
|
db.close
|
@@ -63,38 +52,26 @@ module Ayadn
|
|
63
52
|
end
|
64
53
|
|
65
54
|
def self.add_niceranks niceranks
|
66
|
-
niceranks.each
|
67
|
-
@nicerank[id] = infos
|
68
|
-
end
|
55
|
+
niceranks.each {|id,infos| @nicerank[id] = infos}
|
69
56
|
end
|
70
57
|
|
71
58
|
def self.get_niceranks user_ids
|
72
59
|
ids = {}
|
73
|
-
user_ids.each
|
74
|
-
ids[id] = @nicerank[id]
|
75
|
-
end
|
60
|
+
user_ids.each {|id| ids[id] = @nicerank[id]}
|
76
61
|
ids
|
77
62
|
end
|
78
63
|
|
79
64
|
def self.add_mention_to_blacklist(target)
|
80
|
-
target.each
|
81
|
-
@blacklist[username.downcase] = :mention
|
82
|
-
end
|
65
|
+
target.each {|username| @blacklist[username.downcase] = :mention}
|
83
66
|
end
|
84
67
|
def self.add_client_to_blacklist(target)
|
85
|
-
target.each
|
86
|
-
@blacklist[source.downcase] = :client
|
87
|
-
end
|
68
|
+
target.each {|source| @blacklist[source.downcase] = :client}
|
88
69
|
end
|
89
70
|
def self.add_hashtag_to_blacklist(target)
|
90
|
-
target.each
|
91
|
-
@blacklist[tag.downcase] = :hashtag
|
92
|
-
end
|
71
|
+
target.each {|tag| @blacklist[tag.downcase] = :hashtag}
|
93
72
|
end
|
94
73
|
def self.remove_from_blacklist(target)
|
95
|
-
target.each
|
96
|
-
@blacklist.delete(el.downcase)
|
97
|
-
end
|
74
|
+
target.each {|el| @blacklist.delete(el.downcase)}
|
98
75
|
end
|
99
76
|
def self.import_blacklist(blacklist)
|
100
77
|
new_list = self.init blacklist
|
@@ -103,13 +80,9 @@ module Ayadn
|
|
103
80
|
end
|
104
81
|
def self.convert_blacklist
|
105
82
|
dummy = {}
|
106
|
-
@blacklist.each
|
107
|
-
dummy[v.downcase] = k
|
108
|
-
end
|
83
|
+
@blacklist.each {|v,k| dummy[v.downcase] = k}
|
109
84
|
@blacklist.clear
|
110
|
-
dummy.each
|
111
|
-
@blacklist[v] = k
|
112
|
-
end
|
85
|
+
dummy.each {|v,k| @blacklist[v] = k}
|
113
86
|
end
|
114
87
|
def self.save_max_id(stream)
|
115
88
|
@pagination[stream['meta']['marker']['name']] = stream['meta']['max_id']
|
@@ -134,17 +107,13 @@ module Ayadn
|
|
134
107
|
end
|
135
108
|
|
136
109
|
def self.get_alias_from_id(channel_id)
|
137
|
-
@aliases.each
|
138
|
-
return al if id == channel_id
|
139
|
-
end
|
110
|
+
@aliases.each {|al, id| return al if id == channel_id}
|
140
111
|
nil
|
141
112
|
end
|
142
113
|
|
143
114
|
def self.save_indexed_posts(posts)
|
144
115
|
@index.clear
|
145
|
-
posts.each
|
146
|
-
@index[id] = hash
|
147
|
-
end
|
116
|
+
posts.each {|id, hash| @index[id] = hash}
|
148
117
|
end
|
149
118
|
|
150
119
|
def self.get_index_length
|
@@ -153,19 +122,15 @@ module Ayadn
|
|
153
122
|
|
154
123
|
def self.get_post_from_index(number)
|
155
124
|
unless number > @index.length || number <= 0
|
156
|
-
@index.each
|
157
|
-
return values if values[:count] == number
|
158
|
-
end
|
125
|
+
@index.each {|id, values| return values if values[:count] == number}
|
159
126
|
else
|
160
|
-
puts
|
127
|
+
puts Status.must_be_in_index
|
161
128
|
Errors.global_error("databases/get_post_from_index", number, "out of range")
|
162
129
|
end
|
163
130
|
end
|
164
131
|
|
165
132
|
def self.add_to_users_db_from_list(list)
|
166
|
-
list.each
|
167
|
-
@users[id] = {content_array[0] => content_array[1]}
|
168
|
-
end
|
133
|
+
list.each { |id, content_array| @users[id] = {content_array[0] => content_array[1]} }
|
169
134
|
end
|
170
135
|
|
171
136
|
def self.add_to_users_db(id, username, name)
|