summaryrefslogtreecommitdiff
path: root/src/SMAPI.Web/Controllers
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-11-27 23:59:13 -0500
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-11-27 23:59:13 -0500
commit3ca6fb562417748c87567d6bb6915d56b2c1b57c (patch)
tree207953024f9d79b52af2b5b9a384a3e3bc57b556 /src/SMAPI.Web/Controllers
parentb64cec918d1511b6b71c9d2e30f987e9b5cc24fd (diff)
downloadSMAPI-3ca6fb562417748c87567d6bb6915d56b2c1b57c.tar.gz
SMAPI-3ca6fb562417748c87567d6bb6915d56b2c1b57c.tar.bz2
SMAPI-3ca6fb562417748c87567d6bb6915d56b2c1b57c.zip
automatically include beta versions on Nexus for SMAPI update checks
Diffstat (limited to 'src/SMAPI.Web/Controllers')
-rw-r--r--src/SMAPI.Web/Controllers/ModsApiController.cs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/SMAPI.Web/Controllers/ModsApiController.cs b/src/SMAPI.Web/Controllers/ModsApiController.cs
index dcddaf10..37d763cc 100644
--- a/src/SMAPI.Web/Controllers/ModsApiController.cs
+++ b/src/SMAPI.Web/Controllers/ModsApiController.cs
@@ -81,6 +81,8 @@ namespace StardewModdingAPI.Web.Controllers
if (model?.Mods == null)
return new ModEntryModel[0];
+ ModUpdateCheckConfig config = this.Config.Value;
+
// fetch wiki data
WikiModEntry[] wikiData = this.WikiCache.GetWikiMods().Select(p => p.Data).ToArray();
IDictionary<string, ModEntryModel> mods = new Dictionary<string, ModEntryModel>(StringComparer.CurrentCultureIgnoreCase);
@@ -89,6 +91,11 @@ namespace StardewModdingAPI.Web.Controllers
if (string.IsNullOrWhiteSpace(mod.ID))
continue;
+ // special case: if this is an update check for the official SMAPI repo, check the Nexus mod page for beta versions
+ if (mod.ID == config.SmapiInfo.ID && mod.UpdateKeys?.Any(key => key == config.SmapiInfo.DefaultUpdateKey) == true && mod.InstalledVersion?.IsPrerelease() == true)
+ mod.UpdateKeys = mod.UpdateKeys.Concat(config.SmapiInfo.AddBetaUpdateKeys).ToArray();
+
+ // fetch result
ModEntryModel result = await this.GetModData(mod, wikiData, model.IncludeExtendedMetadata, model.ApiVersion);
if (!model.IncludeExtendedMetadata && (model.ApiVersion == null || mod.InstalledVersion == null))
{