aboutsummaryrefslogtreecommitdiffstats
path: root/src/helpers
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2026-06-03 17:22:48 -0700
committerPinapelz <yukais@pinapelz.com>2026-06-03 17:22:48 -0700
commit14172f9dd64ce91ba5cf51f82c53deb6a81d68a6 (patch)
tree5e12ce4e30ecaed9a2aac48d2959d99a4d8b4ef7 /src/helpers
parent818db3ef4aadf489dba5ba8ba4f3bb4e150f0b22 (diff)
create daily/unlimited mode, CDN audio file for daily mode
Diffstat (limited to 'src/helpers')
-rw-r--r--src/helpers/fetchSolution.ts21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/helpers/fetchSolution.ts b/src/helpers/fetchSolution.ts
index 2ca2e68..10c4fa1 100644
--- a/src/helpers/fetchSolution.ts
+++ b/src/helpers/fetchSolution.ts
@@ -25,14 +25,27 @@ function getObfuscationKey(): Uint8Array {
return new TextEncoder().encode(SALT + date);
}
+function decryptResponse(data: string): Song {
+ const obfuscationKey = getObfuscationKey();
+ const obfuscatedBytes = hexToBytes(data);
+ const decrypted = xor(obfuscatedBytes, obfuscationKey);
+ return JSON.parse(new TextDecoder().decode(decrypted)) as Song;
+}
+
export async function getDailySolution(): Promise<Song> {
const solutionData = await fetch(`${API_URL}/today`);
if (!solutionData.ok) {
throw new Error(`Failed to fetch solution: ${solutionData.statusText}`);
}
const { data } = await solutionData.json();
- const obfuscationKey = getObfuscationKey();
- const obfuscatedBytes = hexToBytes(data);
- const decrypted = xor(obfuscatedBytes, obfuscationKey);
- return JSON.parse(new TextDecoder().decode(decrypted)) as Song;
+ return decryptResponse(data);
+}
+
+export async function getSelectSolution(): Promise<Song> {
+ const solutionData = await fetch(`${API_URL}/select`);
+ if (!solutionData.ok) {
+ throw new Error(`Failed to fetch solution: ${solutionData.statusText}`);
+ }
+ const { data } = await solutionData.json();
+ return decryptResponse(data);
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage