|
|
- using SimpleJSON;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace IllusionInjector.Updating.ModsaberML
- {
- class ApiEndpoint
- {
- #if DEBUG
- public const string ApiBase = "file://Z:/Users/aaron/Source/Repos/IPA-Reloaded-BeatSaber/IPA.Tests/";
- public const string GetApprovedEndpoint = "updater_test.json";
- #else
- public const string ApiBase = "https://www.modsaber.ml/api/";
- public const string GetApprovedEndpoint = "public/temp/approved";
- #endif
-
- public class Mod
- {
- public string Name;
- public Version Version;
- public bool Approved;
- public string Title;
- public Version GameVersion;
- public string Author;
- public string SteamFile;
- public string OculusFile;
-
- public static Mod DecodeJSON(JSONObject obj)
- {
- var outp = new Mod
- {
- Name = obj["name"],
- Version = new Version(obj["version"]),
- Approved = obj["approved"].AsBool,
- Title = obj["title"],
- GameVersion = new Version(obj["gameVersion"]),
- Author = obj["author"]
- };
-
- foreach (var item in obj["files"])
- {
- var key = item.Key;
- if (key == "steam")
- outp.SteamFile = item.Value["url"];
- if (key == "oculus")
- outp.OculusFile = item.Value["url"];
- }
-
- return outp;
- }
-
- public override string ToString()
- {
- return $"{{\"{Title} ({Name})\"v{Version} for {GameVersion} by {Author} with \"{SteamFile}\" and \"{OculusFile}\"}}";
- }
- }
-
- }
- }
|