add CurseForge to mod metadata (#605)
This commit is contained in:
parent
8b09a2776d
commit
0aac0717bf
|
@ -28,6 +28,12 @@ namespace StardewModdingAPI.Toolkit.Framework.Clients.WebApi
|
|||
/// <summary>The mod ID in the Chucklefish mod repo.</summary>
|
||||
public int? ChucklefishID { get; set; }
|
||||
|
||||
/// <summary>The mod ID in the CurseForge mod repo.</summary>
|
||||
public int? CurseForgeID { get; set; }
|
||||
|
||||
/// <summary>The mod key in the CurseForge mod repo (used in mod page URLs).</summary>
|
||||
public string CurseForgeKey { get; set; }
|
||||
|
||||
/// <summary>The mod ID in the ModDrop mod repo.</summary>
|
||||
public int? ModDropID { get; set; }
|
||||
|
||||
|
@ -87,6 +93,8 @@ namespace StardewModdingAPI.Toolkit.Framework.Clients.WebApi
|
|||
this.Name = wiki.Name.FirstOrDefault();
|
||||
this.NexusID = wiki.NexusID;
|
||||
this.ChucklefishID = wiki.ChucklefishID;
|
||||
this.CurseForgeID = wiki.CurseForgeID;
|
||||
this.CurseForgeKey = wiki.CurseForgeKey;
|
||||
this.ModDropID = wiki.ModDropID;
|
||||
this.GitHubRepo = wiki.GitHubRepo;
|
||||
this.CustomSourceUrl = wiki.CustomSourceUrl;
|
||||
|
|
|
@ -93,6 +93,8 @@ namespace StardewModdingAPI.Toolkit.Framework.Clients.Wiki
|
|||
string[] warnings = this.GetAttributeAsCsv(node, "data-warnings");
|
||||
int? nexusID = this.GetAttributeAsNullableInt(node, "data-nexus-id");
|
||||
int? chucklefishID = this.GetAttributeAsNullableInt(node, "data-cf-id");
|
||||
int? curseForgeID = this.GetAttributeAsNullableInt(node, "data-curseforge-id");
|
||||
string curseForgeKey = this.GetAttribute(node, "data-curseforge-key");
|
||||
int? modDropID = this.GetAttributeAsNullableInt(node, "data-moddrop-id");
|
||||
string githubRepo = this.GetAttribute(node, "data-github");
|
||||
string customSourceUrl = this.GetAttribute(node, "data-custom-source");
|
||||
|
@ -145,6 +147,8 @@ namespace StardewModdingAPI.Toolkit.Framework.Clients.Wiki
|
|||
Author = authors,
|
||||
NexusID = nexusID,
|
||||
ChucklefishID = chucklefishID,
|
||||
CurseForgeID = curseForgeID,
|
||||
CurseForgeKey = curseForgeKey,
|
||||
ModDropID = modDropID,
|
||||
GitHubRepo = githubRepo,
|
||||
CustomSourceUrl = customSourceUrl,
|
||||
|
|
|
@ -23,6 +23,12 @@ namespace StardewModdingAPI.Toolkit.Framework.Clients.Wiki
|
|||
/// <summary>The mod ID in the Chucklefish mod repo.</summary>
|
||||
public int? ChucklefishID { get; set; }
|
||||
|
||||
/// <summary>The mod ID in the CurseForge mod repo.</summary>
|
||||
public int? CurseForgeID { get; set; }
|
||||
|
||||
/// <summary>The mod key in the CurseForge mod repo (used in mod page URLs).</summary>
|
||||
public string CurseForgeKey { get; set; }
|
||||
|
||||
/// <summary>The mod ID in the ModDrop mod repo.</summary>
|
||||
public int? ModDropID { get; set; }
|
||||
|
||||
|
|
|
@ -280,11 +280,13 @@ namespace StardewModdingAPI.Web.Controllers
|
|||
if (entry != null)
|
||||
{
|
||||
if (entry.NexusID.HasValue)
|
||||
yield return $"Nexus:{entry.NexusID}";
|
||||
if (entry.ChucklefishID.HasValue)
|
||||
yield return $"Chucklefish:{entry.ChucklefishID}";
|
||||
yield return $"{ModRepositoryKey.Nexus}:{entry.NexusID}";
|
||||
if (entry.ModDropID.HasValue)
|
||||
yield return $"ModDrop:{entry.ModDropID}";
|
||||
yield return $"{ModRepositoryKey.ModDrop}:{entry.ModDropID}";
|
||||
if (entry.CurseForgeID.HasValue)
|
||||
yield return $"{ModRepositoryKey.CurseForge}:{entry.CurseForgeID}";
|
||||
if (entry.ChucklefishID.HasValue)
|
||||
yield return $"{ModRepositoryKey.Chucklefish}:{entry.ChucklefishID}";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,12 @@ namespace StardewModdingAPI.Web.Framework.Caching.Wiki
|
|||
/// <summary>The mod ID in the Chucklefish mod repo.</summary>
|
||||
public int? ChucklefishID { get; set; }
|
||||
|
||||
/// <summary>The mod ID in the CurseForge mod repo.</summary>
|
||||
public int? CurseForgeID { get; set; }
|
||||
|
||||
/// <summary>The mod key in the CurseForge mod repo (used in mod page URLs).</summary>
|
||||
public string CurseForgeKey { get; set; }
|
||||
|
||||
/// <summary>The mod ID in the ModDrop mod repo.</summary>
|
||||
public int? ModDropID { get; set; }
|
||||
|
||||
|
@ -123,6 +129,8 @@ namespace StardewModdingAPI.Web.Framework.Caching.Wiki
|
|||
this.Author = mod.Author;
|
||||
this.NexusID = mod.NexusID;
|
||||
this.ChucklefishID = mod.ChucklefishID;
|
||||
this.CurseForgeID = mod.CurseForgeID;
|
||||
this.CurseForgeKey = mod.CurseForgeKey;
|
||||
this.ModDropID = mod.ModDropID;
|
||||
this.GitHubRepo = mod.GitHubRepo;
|
||||
this.CustomSourceUrl = mod.CustomSourceUrl;
|
||||
|
@ -158,6 +166,8 @@ namespace StardewModdingAPI.Web.Framework.Caching.Wiki
|
|||
Author = this.Author,
|
||||
NexusID = this.NexusID,
|
||||
ChucklefishID = this.ChucklefishID,
|
||||
CurseForgeID = this.CurseForgeID,
|
||||
CurseForgeKey = this.CurseForgeKey,
|
||||
ModDropID = this.ModDropID,
|
||||
GitHubRepo = this.GitHubRepo,
|
||||
CustomSourceUrl = this.CustomSourceUrl,
|
||||
|
|
|
@ -100,16 +100,21 @@ namespace StardewModdingAPI.Web.ViewModels
|
|||
anyFound = true;
|
||||
yield return new ModLinkModel($"https://www.nexusmods.com/stardewvalley/mods/{entry.NexusID}", "Nexus");
|
||||
}
|
||||
if (entry.ChucklefishID.HasValue)
|
||||
{
|
||||
anyFound = true;
|
||||
yield return new ModLinkModel($"https://community.playstarbound.com/resources/{entry.ChucklefishID}", "Chucklefish");
|
||||
}
|
||||
if (entry.ModDropID.HasValue)
|
||||
{
|
||||
anyFound = true;
|
||||
yield return new ModLinkModel($"https://www.moddrop.com/sdv/mod/{entry.ModDropID}", "ModDrop");
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(entry.CurseForgeKey))
|
||||
{
|
||||
anyFound = true;
|
||||
yield return new ModLinkModel($"https://www.curseforge.com/stardewvalley/mods/{entry.CurseForgeKey}", "CurseForge");
|
||||
}
|
||||
if (entry.ChucklefishID.HasValue)
|
||||
{
|
||||
anyFound = true;
|
||||
yield return new ModLinkModel($"https://community.playstarbound.com/resources/{entry.ChucklefishID}", "Chucklefish");
|
||||
}
|
||||
|
||||
// fallback
|
||||
if (!anyFound && !string.IsNullOrWhiteSpace(entry.CustomUrl))
|
||||
|
|
|
@ -44,6 +44,7 @@ smapi.modList = function (mods, enableBeta) {
|
|||
download: {
|
||||
value: {
|
||||
chucklefish: { value: true, label: "Chucklefish" },
|
||||
curseforge: { value: true, label: "CurseForge" },
|
||||
moddrop: { value: true, label: "ModDrop" },
|
||||
nexus: { value: true, label: "Nexus" },
|
||||
custom: { value: true }
|
||||
|
@ -180,6 +181,8 @@ smapi.modList = function (mods, enableBeta) {
|
|||
|
||||
if (!filters.download.value.chucklefish.value)
|
||||
ignoreSites.push("Chucklefish");
|
||||
if (!filters.download.value.curseforge.value)
|
||||
ignoreSites.push("CurseForge");
|
||||
if (!filters.download.value.moddrop.value)
|
||||
ignoreSites.push("ModDrop");
|
||||
if (!filters.download.value.nexus.value)
|
||||
|
|
Loading…
Reference in New Issue