Better mod searching

This commit is contained in:
Thoronium
2023-04-26 19:20:49 -06:00
parent 31f77355f1
commit b46a1d1fcf
3 changed files with 65 additions and 60 deletions

View File

@@ -117,13 +117,38 @@ interface ModDownload {
containsExe: boolean
}
export async function getMods(mode: string, page: number) {
export async function getMods(mode: string, page: number, search: string) {
let modList: GamebananaResponse[] = []
if (search.length > 0) {
let hadMods = true
let page = 1
while (hadMods) {
const resp = JSON.parse(
await invoke('list_submissions', {
mode,
page: '' + page,
search: search
})
)
const total = resp._aMetadata._nRecordCount
if (page > (total / 15)) hadMods = false
modList = [...modList, ...resp._aRecords]
page++
}
return formatGamebananaData(modList)
}
const resp = JSON.parse(
await invoke('list_submissions', {
mode,
page: '' + page,
search: '',
})
)
@@ -132,28 +157,6 @@ export async function getMods(mode: string, page: number) {
return formatGamebananaData(modList)
}
export async function getAllMods(mode: string) {
let modList: GamebananaResponse[] = []
let hadMods = true
let page = 1
while (hadMods) {
const resp = JSON.parse(
await invoke('list_submissions', {
mode,
page: '' + page,
})
)
if (resp.length === 0) hadMods = false
modList = [...modList, ...resp]
page++
}
return formatGamebananaData(modList)
}
export async function formatGamebananaData(obj: GamebananaResponse[]) {
if (!obj) return []
@@ -166,8 +169,8 @@ export async function formatGamebananaData(obj: GamebananaResponse[]) {
name: itm._sName,
images: img
? img.map((i) => {
return i._sBaseUrl + '/' + i._sFile220
})
return i._sBaseUrl + '/' + i._sFile220
})
: [],
dateadded: itm._tsDateAdded,
submitter: {