taevas.xyz/api/infos/gamedev/alakajam.ts
Taevas 9818adb12d
Use custom headers to possibly bypass Anubis & co
As recommended by the kind Kio!
(so now most requests use a custom user-agent)
2025-04-17 13:38:00 +02:00

55 lines
2 KiB
TypeScript

import type { AlakajamInfo } from "#Infos/GameDev/Alakajam.tsx";
import { headers, parseJson, type Handler } from "../..";
const username = "Taevas";
export const alakajam: Handler = async () => {
/** https://alakajam.com/api */
const response = await parseJson(await fetch(`https://alakajam.com/api/user/${username}/latestEntry`, {headers})) as {
name: string
latest_entry: {
event_name: string
division: string
title: string
description: string
url: string
results: {
rating_1: string | null
rating_2: string | null
rating_3: string | null
rating_4: string | null
rating_5: string | null
rating_6: string | null
ranking_1: number | null
ranking_2: number | null
ranking_3: number | null
ranking_4: number | null
ranking_5: number | null
ranking_6: number | null
}
}
};
const activity: AlakajamInfo = {
username: response.name,
event: {
name: response.latest_entry.event_name,
division: response.latest_entry.division
},
entry: {
name: response.latest_entry.title,
description: response.latest_entry.description,
url: response.latest_entry.url
},
results: {
overall: {rating: response.latest_entry.results.rating_1, ranking: response.latest_entry.results.ranking_1},
graphics: {rating: response.latest_entry.results.rating_2, ranking: response.latest_entry.results.ranking_2},
audio: {rating: response.latest_entry.results.rating_3, ranking: response.latest_entry.results.ranking_3},
gameplay: {rating: response.latest_entry.results.rating_4, ranking: response.latest_entry.results.ranking_4},
originality: {rating: response.latest_entry.results.rating_5, ranking: response.latest_entry.results.ranking_5},
theme: {rating: response.latest_entry.results.rating_6, ranking: response.latest_entry.results.ranking_6},
}
};
return Response.json(activity, {status: 200});
};