24 lines
809 B
JavaScript
24 lines
809 B
JavaScript
import { default as createQueue, PRIORITY } from "../http-queue";
|
|
import { substituteVars } from "../../../utils/format";
|
|
|
|
const BEATMAPS_API_URL = "https://api.beatsaver.com/";
|
|
const SONG_BY_HASH_URL = BEATMAPS_API_URL + "/maps/hash/${hash}";
|
|
const SONG_BY_KEY_URL = BEATMAPS_API_URL + "/maps/id/${key}";
|
|
|
|
export default (options = {}) => {
|
|
const queue = createQueue(options);
|
|
|
|
const { fetchJson, fetchHtml, ...queueToReturn } = queue;
|
|
|
|
const byHash = async (hash, priority = PRIORITY.FG_LOW, options = {}) =>
|
|
fetchJson(substituteVars(SONG_BY_HASH_URL, { hash }), options, priority);
|
|
const byKey = async (key, priority = PRIORITY.FG_LOW, options = {}) =>
|
|
fetchJson(substituteVars(SONG_BY_KEY_URL, { key }), options, priority);
|
|
|
|
return {
|
|
byHash,
|
|
byKey,
|
|
...queueToReturn,
|
|
};
|
|
};
|