Something went wrong. Try again.
A tool for measuring the coverage of Bluesky/ATProto relays forked from mackuba.eu/pulsar
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#!/usr/bin/env ruby
require 'bundler/setup'require 'sinatra'require 'time'require 'yaml'
require 'thin' if $PROGRAM_NAME == __FILE__
require_relative 'init'require_relative 'models'
$config = YAML.load(File.read(SOURCES))$owners = ($config['relays'] + $config['jetstreams']).map { |x| x.is_a?(Hash) ? [x['host'], x] : [x, nil] }.then { Hash[it] }
helpers do def format_num(n) n.to_s.reverse.gsub(/(\d\d\d(?!$))/, "\\1,").reverse end
def owner_link(report) if data = $owners[report.host] if data['owner'] && data['owner_link'] %(<a href="#{data['owner_link']}" target="_blank">#{data['owner']}</a>) elsif data['owner'].to_s.start_with?('@') %(<a href="https://bsky.app/profile/#{data['owner'].gsub(/^@/, '')}" target="_blank">#{data['owner']}</a>) elsif data['owner'] data['owner'] else nil end end endend
get '/' do @last_test = TestRun.order(:start_time).last
if @last_test @test_run = @last_test @reports = @test_run.reports.order('users DESC, connected DESC').to_a @uptimes = Ping.current_uptimes end
erb :indexend
get '/reports/' do @test_runs = TestRun.order(start_time: :desc).includes(:reports).to_a erb :reportsend
get '/reports/:date' do |date| if date !~ /\A[0-9]{4}\-[0-9]{2}\-[0-9]{2}\z/ halt 404 end
date = Date.parse(date) @test_run = TestRun.where('start_time >= ? AND start_time < ?', date.to_time, (date + 1).to_time).first
if @test_run @reports = @test_run.reports.order('users DESC, connected DESC').to_a @uptimes = Ping.current_uptimes erb :index else halt 404 endend