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();
}
}