using System.Diagnostics; using RestSharp; using RustTools.muqing; namespace RustTools.ApiFox; #pragma warning disable CS8981 // 该类型名称仅包含小写 ascii 字符。此类名称可能会成为该语言的保留值。 #pragma warning disable IDE1006 // 命名样式 public class mod { //最新时间 下载数量 投币数量 更新数量 //latestTime downloadNumber,coinNumber ,updateNumber public const string latestTime = "latestTime"; public const string downloadNumber = "downloadNumber"; public const string coinNumber = "coinNumber"; public const string updateNumber = "updateNumber"; /// /// 推荐接口 /// /// public static async Task random() { var v = await wl.postAsync("/php/mod.php?action=random", new string[][]{ new string[] { "number", "6" }}); return v ?? string.Empty; } public static async Task list(string sortMode, string limit, string tag) { var strings = new string[][]{ new string[] { "sortMode", sortMode }, new string[] { "limit", limit}, new string[] { "tag",tag }}; //if (string.IsNullOrWhiteSpace(tag)) { // strings = new string[][]{ // new string[] { "sortMode", sortMode }, // new string[] { "limit", limit} }; //} var v = await wl.postAsync("/php/mod.php?action=list",strings) ; return v ?? string.Empty; } public static async Task getInfo(string account, string modId) { var v = await wl.postAsync("/php/mod.php?action=getInfo", new string[][]{ new string[] { "account", account }, new string[] { "modId", modId} }); return v ?? string.Empty; } /// /// 发布模组 /// /// public static async Task release(releaseData releaseData) { var client = new RestClient(wl.api); var request = new RestRequest("/php/mod.php?action=release",Method.Post); request.AddParameter("token", ""); request.AddParameter("appID", ""); request.AddParameter("modId", ""); request.AddParameter("modName", ""); request.AddParameter("describe", ""); request.AddParameter("tags", ""); request.AddParameter("unitNumber", ""); request.AddParameter("versionName", ""); request.AddParameter("minVersion", ""); request.AddFile("file", ""); request.AddFile("iconFile", ""); for (var i = 0; i < releaseData.screenshot.Count; i++) { request.AddFile($"screenshot_{i}", releaseData.screenshot[i]); } var response = client.Execute(request); return response.Content??string.Empty; } public class releaseData { public string token = ""; public string appID = ""; public string modId = ""; public string modName = ""; public string describe = ""; public string tags = ""; public string unitNumber = ""; public string versionName = ""; public string minVersion = ""; public string file = ""; public string iconFile = ""; public List screenshot = new(); } }