UNPKG

itch-dl

Version:

Bulk download games from itch.io - TypeScript implementation

56 lines (55 loc) 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadKeysAndUrls = loadKeysAndUrls; exports.getOwnedKeys = getOwnedKeys; exports.getDownloadKeys = getDownloadKeys; exports.getOwnedGames = getOwnedGames; let KEYS_CACHED = false; const DOWNLOAD_KEYS = {}; const GAME_URLS = []; async function loadKeysAndUrls(client) { KEYS_CACHED = false; let page = 1; while (true) { const res = await client.get('/profile/owned-keys', true, { params: { page }, timeout: 15000, }); if (res.status !== 200) { break; } const data = res.data; if (!data.owned_keys) { break; } for (const k of data.owned_keys) { DOWNLOAD_KEYS[k.game_id] = k.id; GAME_URLS.push(k.game.url); } if (data.owned_keys.length === data.per_page) { page += 1; } else { break; } } KEYS_CACHED = true; } async function getOwnedKeys(client) { if (!KEYS_CACHED) { await loadKeysAndUrls(client); } return [DOWNLOAD_KEYS, GAME_URLS]; } async function getDownloadKeys(client) { if (!KEYS_CACHED) { await loadKeysAndUrls(client); } return DOWNLOAD_KEYS; } async function getOwnedGames(client) { if (!KEYS_CACHED) { await loadKeysAndUrls(client); } return GAME_URLS; }