TheRandomLabs / CurseAPI

A Java library for handling interactions with CurseForge.
MIT License
30 stars 3 forks source link

No longer working since redesign #4

Closed ErdbeerbaerLP closed 5 years ago

ErdbeerbaerLP commented 5 years ago

Since the redesign, this library won´t work anymore, because sites like minecraft.curseforge.com are now gone

[DEBUG] Downloading document: https://minecraft.curseforge.com/projects/dsurroundcore
com.therandomlabs.curseapi.CurseException: An error occurred while reading: https://minecraft.curseforge.com/projects/dsurroundcore
        at com.therandomlabs.curseapi.CurseException.fromThrowable(CurseException.java:49)
        at com.therandomlabs.curseapi.util.Documents.getWithCache(Documents.java:224)
        at com.therandomlabs.curseapi.util.Documents.get(Documents.java:197)
        at com.therandomlabs.curseapi.InvalidCurseForgeProjectException.validate(InvalidCurseForgeProjectException.java:16)
        at com.therandomlabs.curseapi.project.CurseProject.fromURL(CurseProject.java:933)
        at com.therandomlabs.curseapi.project.CurseProject.fromURL(CurseProject.java:915)
        at com.therandomlabs.curseapi.project.CurseProject.fromSlug(CurseProject.java:896)
        at com.therandomlabs.curseapi.project.CurseProject.fromSlug(CurseProject.java:876)
        at de.erdbeerbaerlp.worldManager.Mod.<init>(Mod.java:67)
        at de.erdbeerbaerlp.worldManager.mainWindow$12$1$2.run(mainWindow.java:517)
Caused by: java.io.FileNotFoundException: https://minecraft.curseforge.com/projects/dsurroundcore
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1890)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
        at com.therandomlabs.utils.io.NetUtils.getInputStream(NetUtils.java:255)
        at com.therandomlabs.utils.io.NetUtils.read(NetUtils.java:73)
        at com.therandomlabs.curseapi.util.Documents.read(Documents.java:177)
        at com.therandomlabs.curseapi.util.Documents.lambda$getCached$3(Documents.java:442)
        at com.therandomlabs.curseapi.CurseAPI.actuallyDoWithRetries(CurseAPI.java:159)
        at com.therandomlabs.curseapi.CurseAPI.doWithRetries(CurseAPI.java:140)
        at com.therandomlabs.curseapi.util.Documents.getCached(Documents.java:442)
        at com.therandomlabs.curseapi.util.Documents.getWithCache(Documents.java:206)
        ... 8 more
TheRandomLabs commented 5 years ago

Well this is gonna be a pain.

TheRandomLabs commented 5 years ago

Everything but project types and games should be functional now (they default to Minecraft mods). I'm going to take this opportunity to rewrite CurseAPI as it's needed it for some time.

ErdbeerbaerLP commented 4 years ago

It is broken again... Using slug:

com.therandomlabs.curseapi.InvalidCurseForgeProjectException: Invalid CurseForge project URL: https://minecraft.curseforge.com/projects/lunatriuscore
        at com.therandomlabs.curseapi.InvalidCurseForgeProjectException.validate(InvalidCurseForgeProjectException.java:23)
        at com.therandomlabs.curseapi.project.CurseProject.fromURL(CurseProject.java:908)
        at com.therandomlabs.curseapi.project.CurseProject.fromURL(CurseProject.java:890)
        at com.therandomlabs.curseapi.project.CurseProject.fromSlug(CurseProject.java:871)
        at com.therandomlabs.curseapi.project.CurseProject.fromSlug(CurseProject.java:851)
        at de.erdbeerbaerlp.worldManager.Mod.<init>(Mod.java:67)
        at de.erdbeerbaerlp.worldManager.mainWindow$12$1$3.run(mainWindow.java:497)

(Still using minecraft subdomain :thinking: )

Using ID (as test):

[DEBUG] https://www.curseforge.com/projects/305393 redirected to: https://www.curseforge.com/projects/305393
com.therandomlabs.curseapi.project.InvalidProjectIDException: Project with ID 305393 not found
        at com.therandomlabs.curseapi.CurseForge.lambda$fromIDNoValidation$1(CurseForge.java:195)
        at com.therandomlabs.curseapi.CurseAPI.actuallyDoWithRetries(CurseAPI.java:159)
        at com.therandomlabs.curseapi.CurseAPI.doWithRetries(CurseAPI.java:140)
        at com.therandomlabs.curseapi.CurseForge.fromIDNoValidation(CurseForge.java:190)
        at com.therandomlabs.curseapi.CurseForge.fromID(CurseForge.java:168)
        at com.therandomlabs.curseapi.project.CurseProject.<init>(CurseProject.java:139)
        at com.therandomlabs.curseapi.project.CurseProject.fromID(CurseProject.java:835)
        at com.therandomlabs.curseapi.project.CurseProject.fromID(CurseProject.java:824)
        at de.erdbeerbaerlp.worldManager.Mod.<init>(Mod.java:67)
        at de.erdbeerbaerlp.worldManager.mainWindow$12$1$4.run(mainWindow.java:515)

(in browser https://www.curseforge.com/projects/305393 redirects to https://www.curseforge.com/minecraft/mc-mods/easyworldmanager )

TheRandomLabs commented 4 years ago

See TheRandomLabs/ChangelogGenerator#22. I'll either find a fix or this project will be rendered obsolete.