From 8325f07f187862b7b163317aaf5bbcc28c5e77ae Mon Sep 17 00:00:00 2001 From: comp500 Date: Thu, 5 Nov 2020 17:02:02 +0000 Subject: [PATCH] Filter curseforge slug -> ID conversion for only mods --- curseforge/request.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/curseforge/request.go b/curseforge/request.go index f59fcc0..030a40e 100644 --- a/curseforge/request.go +++ b/curseforge/request.go @@ -26,7 +26,10 @@ type addonSlugRequest struct { type addonSlugResponse struct { Data struct { Addons []struct { - ID int `json:"id"` + ID int `json:"id"` + CategorySection struct { + ID int `json:"id"` + } `json:"categorySection"` } `json:"addons"` } `json:"data"` Exception string `json:"exception"` @@ -42,6 +45,9 @@ func modIDFromSlug(slug string) (int, error) { query getIDFromSlug($slug: String) { addons(slug: $slug) { id + categorySection { + id + } } } `, @@ -82,11 +88,13 @@ func modIDFromSlug(slug string) (int, error) { return 0, fmt.Errorf("error requesting id for slug: %s", response.Message) } - if len(response.Data.Addons) < 1 { - return 0, errors.New("addon not found") + for _, addonData := range response.Data.Addons { + // Only use mods, not resource packs/modpacks + if addonData.CategorySection.ID == 8 { + return addonData.ID, nil + } } - - return response.Data.Addons[0].ID, nil + return 0, errors.New("addon not found") } //noinspection GoUnusedConst