From 72a660821a3c0deb658be4dfe39a13909e3c2b28 Mon Sep 17 00:00:00 2001 From: creations Date: Sun, 20 Apr 2025 12:48:07 -0400 Subject: [PATCH] try to fix http return on https --- src/helpers/badges.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/helpers/badges.ts b/src/helpers/badges.ts index 68d5ce4..ad5406b 100644 --- a/src/helpers/badges.ts +++ b/src/helpers/badges.ts @@ -2,6 +2,14 @@ import { discordBadgeDetails, discordBadges } from "@config/discordBadges"; import { badgeServices, botToken, redisTtl } from "@config/environment"; import { fetch, redis } from "bun"; +function getRequestOrigin(request: Request): string { + const headers = request.headers; + const forwardedProto = headers.get("X-Forwarded-Proto") || "http"; + const host = headers.get("Host") || new URL(request.url).host; + return `${forwardedProto}://${host}`; +} + + export async function fetchBadges( userId: string, services: string[], @@ -141,11 +149,12 @@ export async function fetchBadges( if (!res.ok) break; const data = await res.json(); + const origin = request ? getRequestOrigin(request) : ""; if (data.avatar.startsWith("a_")) { result.push({ tooltip: "Discord Nitro", - badge: `${request ? new URL(request.url).origin : ""}/public/badges/discord/NITRO.svg`, + badge: `${origin}/public/badges/discord/NITRO.svg`, }); } @@ -155,7 +164,7 @@ export async function fetchBadges( discordBadgeDetails[flag as keyof typeof discordBadgeDetails]; result.push({ tooltip: badge.tooltip, - badge: `${request ? new URL(request.url).origin : ""}${badge.icon}`, + badge: `${origin}${badge.icon}`, }); } }