42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
# File 'lib/ayadn/nicerank.rb', line 42
def get_ranks stream
user_ids, get_these, table, niceranks = [], [], {}, {}
stream['data'].each do |post|
user_ids << post['user']['id'].to_i
table[post['user']['id'].to_i] = post['user']['username']
end
user_ids.uniq!
db_ranks = Databases.get_niceranks user_ids
expire = Settings.options[:nicerank][:cache] * 3600
db_ranks.each do |id, ranks|
if ranks.nil? || (Time.now - ranks[:cached]) > expire
get_these << id
else
niceranks[id] = {
username: ranks[:username],
rank: ranks[:rank],
is_human: ranks[:is_human],
real_person: ranks[:real_person],
cached: ranks[:cached]
}
end
end
Debug.how_many_ranks niceranks, get_these
unless get_these.empty?
got = CNX.get "#{@url}#{get_these.join(',')}&show_details=Y"
blank = JSON.parse({'meta' => {'code' => 404}, 'data' => []}.to_json)
if got.nil? || got == ""
parsed = blank
else
parsed = JSON.parse(got)
end
if parsed['meta']['code'] != 200
resp = blank
else
resp = parsed
end
if resp['meta']['code'] != 200
Debug.niceranks_error resp
Errors.nr "REQUESTED: #{get_these.join(' ')}"
Errors.nr "RESPONSE: #{resp}"
if niceranks
Debug.ranks_pool niceranks
return niceranks
else
return {}
end
end
resp['data'].each do |obj|
niceranks[obj['user_id']] = {
username: table[obj['user_id']],
rank: obj['rank'],
is_human: obj['is_human'],
real_person: obj['account']['real_person'],
cached: Time.now
}
end
Debug.total_ranks niceranks
end
Databases.add_niceranks niceranks
niceranks
end
|