music source and client for subsonic

test fixture setup for navidrome
This commit is contained in:
austinried
2025-11-01 22:24:59 +09:00
parent 9f05ebb201
commit 3408a3988e
18 changed files with 1556 additions and 8 deletions

View File

@@ -0,0 +1 @@
export const MUSIC_DIR = Deno.env.get("MUSIC_DIR") ?? "/music";

View File

@@ -0,0 +1,24 @@
export class SubsonicClient {
constructor(
readonly baseUrl: string,
readonly username: string,
readonly password: string,
) {}
get(method: string, params?: Record<string, string>) {
const url = new URL(`rest/${method}.view`, this.baseUrl);
url.searchParams.set("u", this.username);
url.searchParams.set("p", this.password);
url.searchParams.set("v", "1.13.0");
url.searchParams.set("c", "subtracks-test-fixture");
if (params) {
Object.entries(params).forEach(([key, value]) =>
url.searchParams.append(key, value)
);
}
return fetch(url);
}
}