Add support for local mods and fix inaccurate mod sizes from Nexus Mods

This commit is contained in:
2026-03-22 19:17:38 +01:00
parent 90eb204021
commit b5eef93ffd
4 changed files with 125 additions and 22 deletions

View File

@@ -117,6 +117,7 @@
</div>
</div>
<button class="default-button square-button" onclick="inverseSort()"><img class="icons" id="sort-order-image" src="assets/icons/sort-order-1.svg" /></button>
<button class="default-button square-button" onclick="addOfflineMod()"><img class="icons" src="assets/icons/plus.svg" /></button>
</div>
<div class="mods-container" id="mods-container"></div>
<div class="separated-div">
@@ -202,15 +203,16 @@
<div class="horizontal-div">
<h3 id="mod-title">Unknown Title</h3>
<p id="mod-author">Unknown author</p>
<p id="mod-endorsements-number">? likes</p>
<p id="mod-downloads-number">? download</p>
<p id="mod-endorsements-number"></p>
<p id="mod-downloads-number"></p>
<p id="mod-source"></p>
</div>
<p id="mod-description" class="long-text">No description provided</p>
<p class="transparent-text" id="mod-version">V1.0.0 last update on 01/01/2026</p>
<p class="transparent-text" id="mod-version"></p>
<br />
<div class="horizontal-div">
<a href="www.nexusmods.com/hollowknightsilksong/mods" class="default-button" id="uninstall-mod-button">Uninstall</a>
<a href="www.nexusmods.com/hollowknightsilksong/mods" class="default-button" id="external-link">Website</a>
<a href="" class="default-button" id="uninstall-mod-button">Uninstall</a>
<a href="" class="default-button" id="external-link">Website</a>
<p>Activated:</p>
<label class="checkbox-container">
<input type="checkbox" name="activated-mod" id="activated-mod" />

View File

@@ -152,9 +152,16 @@ async function navigate(page) {
const modPicture = installedModTemplateCopy.getElementById("mod-icon");
modPicture.src = modInfo.pictureUrl;
}
if (modInfo.version && modInfo.updatedAt) {
if (modInfo.version || modInfo.updatedAt) {
let text = "";
if (modInfo.version) {
text = text.concat(`V${modInfo.version} `);
}
if (modInfo.updatedAt) {
text = text.concat(`last updated on ${modInfo.updatedAt.slice(0, 10)}`);
}
const modVersionText = installedModTemplateCopy.getElementById("mod-version");
modVersionText.innerText = `V${modInfo.version} last updated on ${modInfo.updatedAt.slice(0, 10)}`;
modVersionText.innerText = text;
}
const isActivatedCheckbox = installedModTemplateCopy.getElementById("activated-mod");
@@ -172,15 +179,26 @@ async function navigate(page) {
}
});
const modUrl = `https://www.nexusmods.com/hollowknightsilksong/mods/${modInfo.modId}`;
if (modInfo.source && modInfo.source != "local") {
const modSource = installedModTemplateCopy.getElementById("mod-source");
modSource.innerText = `From ${modInfo.source}`;
const modLinkButton = installedModTemplateCopy.getElementById("external-link");
modLinkButton.href = modUrl;
modLinkButton.addEventListener("click", function (event) {
event.preventDefault();
const modLink = modLinkButton.href;
electronAPI.openExternalLink(modLink);
});
const modUrls = {
nexusmods: `https://www.nexusmods.com/hollowknightsilksong/mods/${modInfo.modId}`,
thunderstore: `https://new.thunderstore.io/c/hollow-knight-silksong/p/${modInfo.author}/${modInfo.name}`,
};
const modLinkButton = installedModTemplateCopy.getElementById("external-link");
modLinkButton.href = modUrls[modInfo.source];
modLinkButton.addEventListener("click", function (event) {
event.preventDefault();
const modLink = modLinkButton.href;
electronAPI.openExternalLink(modLink);
});
} else {
const modLinkButton = installedModTemplateCopy.getElementById("external-link");
modLinkButton.remove();
}
const uninstallModButton = installedModTemplateCopy.getElementById("uninstall-mod-button");
uninstallModButton.addEventListener("click", async function (event) {
@@ -555,6 +573,11 @@ async function searchThunderstoreMods() {
searchInput.value = searchValueThunderstore;
}
async function addOfflineMod() {
await mods.add();
searchInstalledMods();
}
//////////////////////////////////////////////////////
//////////////// THEMES / SORT / LIST ////////////////