diff --git a/src-tauri/src/gamebanana.rs b/src-tauri/src/gamebanana.rs index 62355ec..d3acfee 100644 --- a/src-tauri/src/gamebanana.rs +++ b/src-tauri/src/gamebanana.rs @@ -15,11 +15,11 @@ pub async fn get_download_links(mod_id: String) -> String { } #[tauri::command] -pub async fn list_submissions(mode: String) -> String { +pub async fn list_submissions(mode: String, page: String) -> String { let res = web::query( format!( - "{}/apiv9/Util/Game/Submissions?_idGameRow=8552&_nPage=1&_nPerpage=50&_sMode={}", - SITE_URL, mode + "{}/apiv9/Util/Game/Submissions?_idGameRow=8552&_nPage={}&_nPerpage=50&_sMode={}", + SITE_URL, page, mode ) .as_str(), ) diff --git a/src/utils/gamebanana.ts b/src/utils/gamebanana.ts index ce129b8..61c332f 100644 --- a/src/utils/gamebanana.ts +++ b/src/utils/gamebanana.ts @@ -118,13 +118,30 @@ interface ModDownload { } export async function getMods(mode: string) { - const resp = JSON.parse( - await invoke('list_submissions', { - mode, - }) - ) + let modList: GamebananaResponse[] = [] + let hadMods = true + let page = 1 - return formatGamebananaData(resp) + while (hadMods) { + const resp = JSON.parse( + await invoke('list_submissions', { + mode, + page: '' + page, + }) + ) + + if (resp.length === 0) hadMods = false + + modList = [...modList, ...resp] + page++ + + console.log(page) + console.log(resp) + } + + console.log(modList) + + return formatGamebananaData(modList) } export async function formatGamebananaData(obj: GamebananaResponse[]) {