From 69feff6cf813cdeacec772a53e7534a5018a0c47 Mon Sep 17 00:00:00 2001 From: JustTemmie <47639983+JustTemmie@users.noreply.github.com> Date: Fri, 18 Jul 2025 12:56:33 +0200 Subject: [PATCH] feat: add a fuck ton of get functions --- utils/getAboutMe.ts | 9 +++++++++ utils/getFriendsSince.ts | 21 +++++++++++++++++++++ utils/getGuildJoinDate.ts | 9 +++++++++ utils/getPronouns.ts | 9 +++++++++ utils/getRegistrationDate.ts | 9 +++++++++ utils/getUsername.ts | 9 +++++++++ utils/getUuid.ts | 9 +++++++++ utils/uuidToDate.ts | 6 ++++++ 8 files changed, 81 insertions(+) create mode 100644 utils/getAboutMe.ts create mode 100644 utils/getFriendsSince.ts create mode 100644 utils/getGuildJoinDate.ts create mode 100644 utils/getPronouns.ts create mode 100644 utils/getRegistrationDate.ts create mode 100644 utils/getUsername.ts create mode 100644 utils/getUuid.ts create mode 100644 utils/uuidToDate.ts diff --git a/utils/getAboutMe.ts b/utils/getAboutMe.ts new file mode 100644 index 0000000..9f67a29 --- /dev/null +++ b/utils/getAboutMe.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): string | null => { + if ("username" in profile) { + return profile.about + } else { + return profile.user.about + } +} \ No newline at end of file diff --git a/utils/getFriendsSince.ts b/utils/getFriendsSince.ts new file mode 100644 index 0000000..3f6d859 --- /dev/null +++ b/utils/getFriendsSince.ts @@ -0,0 +1,21 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +const { fetchFriends } = useApi(); + +export default async (profile: UserResponse | GuildMemberResponse): Promise => { + let user_uuid: string; + + if ("username" in profile) { + user_uuid = profile.uuid + } else { + user_uuid = profile.user_uuid + } + + const friends = await fetchFriends() + const friend = friends.find(friend => friend.uuid === user_uuid); + if (friend?.friends_since) { + return new Date(friend.friends_since); + } + + return null +} \ No newline at end of file diff --git a/utils/getGuildJoinDate.ts b/utils/getGuildJoinDate.ts new file mode 100644 index 0000000..1b89e9a --- /dev/null +++ b/utils/getGuildJoinDate.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): Date | null => { + if ("username" in profile) { + return null + } else { + return uuidToDate(profile.uuid) + } +} \ No newline at end of file diff --git a/utils/getPronouns.ts b/utils/getPronouns.ts new file mode 100644 index 0000000..b7cb55d --- /dev/null +++ b/utils/getPronouns.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): string | null => { + if ("username" in profile) { + return profile.pronouns + } else { + return profile.user.pronouns + } +} \ No newline at end of file diff --git a/utils/getRegistrationDate.ts b/utils/getRegistrationDate.ts new file mode 100644 index 0000000..010d871 --- /dev/null +++ b/utils/getRegistrationDate.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): Date | null => { + if ("username" in profile) { + return uuidToDate(profile.uuid) + } else { + return uuidToDate(profile.user_uuid) + } +} \ No newline at end of file diff --git a/utils/getUsername.ts b/utils/getUsername.ts new file mode 100644 index 0000000..ba0dfbb --- /dev/null +++ b/utils/getUsername.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): string => { + if ("username" in profile) { + return profile.username + } else { + return profile.user.username + } +} \ No newline at end of file diff --git a/utils/getUuid.ts b/utils/getUuid.ts new file mode 100644 index 0000000..0bc7316 --- /dev/null +++ b/utils/getUuid.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): string | null => { + if ("username" in profile) { + return profile.uuid + } else { + return profile.user.uuid + } +} \ No newline at end of file diff --git a/utils/uuidToDate.ts b/utils/uuidToDate.ts new file mode 100644 index 0000000..f0ab6f3 --- /dev/null +++ b/utils/uuidToDate.ts @@ -0,0 +1,6 @@ +export default (uuid: string): Date => { + const timeHex = uuid.substring(0, 8) + uuid.substring(9, 13); + const timestamp = parseInt(timeHex, 16); + + return new Date(timestamp); +} \ No newline at end of file