faster stats parsing

This commit is contained in:
Kyle Drake
2025-09-16 15:41:50 -05:00
parent 16f2824bc8
commit 7e29c759da
2 changed files with 8 additions and 2 deletions
@@ -0,0 +1,5 @@
Sequel.migration do
change do
alter_table(:stats) { add_index [:site_id, :created_at], name: :stats_site_date_idx }
end
end
+3 -2
View File
@@ -1,6 +1,7 @@
# frozen_string_literal: true
require 'resolv'
require 'zlib'
require 'set'
class Stat < Sequel::Model
FREE_RETAINMENT_DAYS = 30
@@ -50,7 +51,7 @@ class Stat < Sequel::Model
hits: 0,
views: 0,
bandwidth: 0,
view_ips: [],
view_ips: Set.new,
referrers: {},
paths: {}
} unless site_logs[log_time][username]
@@ -72,7 +73,7 @@ class Stat < Sequel::Model
total_site_stats[log_time][:views] += 1
site_logs[log_time][username][:view_ips] << ip
site_logs[log_time][username][:view_ips].add(ip)
if referrer != '-' && !referrer.nil?
site_logs[log_time][username][:referrers][referrer] ||= 0