From 3f9e7b5a43409bb63f54b1457b494c30cd8bada6 Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 24 Jul 2025 16:29:57 -0400 Subject: [PATCH] fix fuck ass timestamping --- app/controllers/api/admin/v1/admin_controller.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/admin/v1/admin_controller.rb b/app/controllers/api/admin/v1/admin_controller.rb index b71221f..76aea6d 100644 --- a/app/controllers/api/admin/v1/admin_controller.rb +++ b/app/controllers/api/admin/v1/admin_controller.rb @@ -25,7 +25,12 @@ module Api def user_info user = find_user_by_id return unless user - valid = user.heartbeats.where("time BETWEEN ? AND ?", Time.utc(2000, 1, 1).to_i, Time.utc(2100, 1, 1).to_i) + valid = user.heartbeats.where("CASE WHEN time > 1000000000000 THEN time / 1000 ELSE time END BETWEEN ? AND ?", Time.utc(2000, 1, 1).to_i, Time.utc(2100, 1, 1).to_i) + + lht = valid.maximum(:time) + if lht && lht > 1000000000000 + lht = lht / 1000 + end render json: { user: { @@ -43,7 +48,7 @@ module Api banned: user.trust_level == "red", created_at: user.created_at, updated_at: user.updated_at, - last_heartbeat_at: valid.maximum(:time), + last_heartbeat_at: lht, email_addresses: user.email_addresses.map(&:email), api_keys_count: user.api_keys.count, stats: { @@ -51,7 +56,7 @@ module Api total_coding_time: valid.duration_seconds || 0, languages_used: valid.distinct.pluck(:language).compact.count, projects_worked_on: valid.distinct.pluck(:project).compact.count, - days_active: valid.distinct.count("DATE(to_timestamp(time))") + days_active: valid.distinct.count("DATE(to_timestamp(CASE WHEN time > 1000000000000 THEN time / 1000 ELSE time END))") } } }