mirror of
https://github.com/iv-org/instances-api.git
synced 2025-06-07 22:32:50 -04:00
Updown debut implementation - currently broken
This commit is contained in:
parent
bd6bfce1c3
commit
a4c097175f
1 changed files with 15 additions and 15 deletions
|
@ -31,18 +31,18 @@ INSTANCES = {} of String => Instance
|
||||||
spawn do
|
spawn do
|
||||||
loop do
|
loop do
|
||||||
monitors = [] of JSON::Any
|
monitors = [] of JSON::Any
|
||||||
page = 1
|
#page = 1
|
||||||
loop do
|
loop do
|
||||||
begin
|
begin
|
||||||
client = HTTP::Client.new(URI.parse("https://stats.uptimerobot.com/89VnzSKAn"))
|
client = HTTP::Client.new(URI.parse("https://updown.io/p/wqufo"))
|
||||||
client.connect_timeout = 10.seconds
|
client.connect_timeout = 10.seconds
|
||||||
client.read_timeout = 10.seconds
|
client.read_timeout = 10.seconds
|
||||||
response = JSON.parse(client.get("/api/getMonitorList/89VnzSKAn?page=#{page}").body)
|
response = JSON.parse(client.get("/api/checks?api-key=ro-52iHyp6LBqQq7rGp4N7p").body)
|
||||||
|
|
||||||
monitors += response["psp"]["monitors"].as_a
|
# monitors += response["psp"]["monitors"].as_a
|
||||||
page += 1
|
# page += 1
|
||||||
|
|
||||||
break if response["psp"]["perPage"].as_i * (page - 1) + 1 > response["psp"]["totalMonitors"].as_i
|
# break if response["psp"]["perPage"].as_i * (page - 1) + 1 > response["psp"]["totalMonitors"].as_i
|
||||||
rescue ex
|
rescue ex
|
||||||
error_message = response.try &.as?(String).try &.["errorStats"]?
|
error_message = response.try &.as?(String).try &.["errorStats"]?
|
||||||
error_message ||= ex.message
|
error_message ||= ex.message
|
||||||
|
@ -98,7 +98,7 @@ spawn do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
monitor = monitors.try &.select { |monitor| monitor["name"].try &.as_s == host }[0]?
|
monitor = monitors.try &.select { |monitor| monitor["alias"].try &.as_s == host }[0]?
|
||||||
instances[host] = {flag: flag, region: region, stats: stats, cors: cors, api: api, type: type, uri: uri.to_s, monitor: monitor || instances[host]?.try &.[:monitor]?}
|
instances[host] = {flag: flag, region: region, stats: stats, cors: cors, api: api, type: type, uri: uri.to_s, monitor: monitor || instances[host]?.try &.[:monitor]?}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -151,15 +151,15 @@ static_headers do |response, filepath, filestat|
|
||||||
end
|
end
|
||||||
|
|
||||||
SORT_PROCS = {
|
SORT_PROCS = {
|
||||||
"health" => ->(name : String, instance : Instance) { -(instance[:monitor]?.try &.["30dRatio"]["ratio"].as_s.to_f || 0.0) },
|
"health" => ->(alias : String, instance : Instance) { -(instance[:monitor]?.try &.["30dRatio"]["ratio"].as_s.to_f || 0.0) },
|
||||||
"location" => ->(name : String, instance : Instance) { instance[:region]? || "ZZ" },
|
"location" => ->(alias : String, instance : Instance) { instance[:region]? || "ZZ" },
|
||||||
"name" => ->(name : String, instance : Instance) { name },
|
"name" => ->(name : String, instance : Instance) { name },
|
||||||
"signup" => ->(name : String, instance : Instance) { instance[:stats]?.try &.["openRegistrations"]?.try { |bool| bool.as_bool ? 0 : 1 } || 2 },
|
"signup" => ->(alias : String, instance : Instance) { instance[:stats]?.try &.["openRegistrations"]?.try { |bool| bool.as_bool ? 0 : 1 } || 2 },
|
||||||
"type" => ->(name : String, instance : Instance) { instance[:type] },
|
"type" => ->(alias : String, instance : Instance) { instance[:type] },
|
||||||
"cors" => ->(name : String, instance : Instance) { instance[:cors] == nil ? 2 : instance[:cors] ? 0 : 1 },
|
"cors" => ->(alias : String, instance : Instance) { instance[:cors] == nil ? 2 : instance[:cors] ? 0 : 1 },
|
||||||
"api" => ->(name : String, instance : Instance) { instance[:api] == nil ? 2 : instance[:api] ? 0 : 1 },
|
"api" => ->(alias : String, instance : Instance) { instance[:api] == nil ? 2 : instance[:api] ? 0 : 1 },
|
||||||
"users" => ->(name : String, instance : Instance) { -(instance[:stats]?.try &.["usage"]?.try &.["users"]["total"].as_i || 0) },
|
"users" => ->(alias : String, instance : Instance) { -(instance[:stats]?.try &.["usage"]?.try &.["users"]["total"].as_i || 0) },
|
||||||
"version" => ->(name : String, instance : Instance) { instance[:stats]?.try &.["software"]?.try &.["version"].as_s.try &.split("-", 2)[0].split(".").map { |a| -a.to_i } || [0, 0, 0] },
|
"version" => ->(alias : String, instance : Instance) { instance[:stats]?.try &.["software"]?.try &.["version"].as_s.try &.split("-", 2)[0].split(".").map { |a| -a.to_i } || [0, 0, 0] },
|
||||||
}
|
}
|
||||||
|
|
||||||
def sort_instances(instances, sort_by)
|
def sort_instances(instances, sort_by)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue