From b37def10acfab4603e4e443ddc067143362e9d25 Mon Sep 17 00:00:00 2001 From: jliddev Date: Tue, 5 Jan 2021 11:46:35 -0600 Subject: [PATCH 1/2] Fix an issue with legacy TukUI/ElvUI external IDs saved as ints --- .../addon-providers/tukui-addon-provider.ts | 8 ++++---- .../src/app/services/addons/addon.service.ts | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts b/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts index ffc827ea..a1a7b3db 100644 --- a/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts @@ -50,7 +50,7 @@ export class TukUiAddonProvider implements AddonProvider { try { const addons = await this.getAllAddons(clientType); results = addons - .filter((addon) => _.some(addonIds, (aid) => aid === addon.id)) + .filter((addon) => _.some(addonIds, (aid) => aid.toString() === addon.id.toString())) .map((addon) => this.toSearchResult(addon, "")); } catch (err) { // _analyticsService.Track(ex, "Failed to search TukUi"); @@ -141,7 +141,7 @@ export class TukUiAddonProvider implements AddonProvider { name: tukUiAddon.name, author: tukUiAddon.author, downloadUrl: tukUiAddon.url, - externalId: tukUiAddon.id, + externalId: tukUiAddon.id.toString(), externalUrl: tukUiAddon.web_url, gameVersion: tukUiAddon.patch, installedAt: new Date(), @@ -181,7 +181,7 @@ export class TukUiAddonProvider implements AddonProvider { return { author: addon.author, - externalId: addon.id, + externalId: addon.id.toString(), name: addon.name, thumbnailUrl: addon.screenshot_url, externalUrl: addon.web_url, @@ -223,7 +223,7 @@ export class TukUiAddonProvider implements AddonProvider { // addons.push(await this.getTukUiRetailAddon().toPromise()); // addons.push(await this.getElvUiRetailAddon().toPromise()); // } - console.debug("WowUpTukui",addons); + console.debug("WowUpTukui", addons); return addons; }; diff --git a/wowup-electron/src/app/services/addons/addon.service.ts b/wowup-electron/src/app/services/addons/addon.service.ts index 0e10e965..34b95635 100644 --- a/wowup-electron/src/app/services/addons/addon.service.ts +++ b/wowup-electron/src/app/services/addons/addon.service.ts @@ -585,7 +585,7 @@ export class AddonService { _.forEach(newAddons, (newAddon) => { const existingAddon = _.find( existingAddons, - (ea) => ea.externalId == newAddon.externalId && ea.providerName == newAddon.providerName + (ea) => ea.externalId.toString() === newAddon.externalId.toString() && ea.providerName == newAddon.providerName ); if (!existingAddon) { @@ -630,9 +630,11 @@ export class AddonService { const searchResults = await addonProvider.getAll(clientType, providerAddonIds); for (let result of searchResults) { - const addon = addons.find((addon) => addon.externalId === result?.externalId); + const addon = addons.find((addon) => addon.externalId.toString() === result?.externalId?.toString()); const latestFile = this.getLatestFile(result, addon?.channelType); + this.setExternalIdString(addon); + if ( !result || !latestFile || @@ -661,6 +663,16 @@ export class AddonService { } } + // Legacy TukUI/ElvUI ids were ints, correct them + private setExternalIdString(addon: Addon) { + if (typeof addon.externalId === "string") { + return; + } + + addon.externalId = `${addon.externalId}`; + this._addonStorage.set(addon.id, addon); + } + private getExternalIdsForProvider(addonProvider: AddonProvider, addons: Addon[]): string[] { return addons.filter((addon) => addon.providerName === addonProvider.name).map((addon) => addon.externalId); } @@ -903,7 +915,7 @@ export class AddonService { thumbnailUrl: searchResult.thumbnailUrl, latestVersion: latestFile.version, clientType: clientType, - externalId: searchResult.externalId, + externalId: searchResult.externalId.toString(), gameVersion: AddonUtils.getGameVersion(latestFile.gameVersion), author: searchResult.author, downloadUrl: latestFile.downloadUrl, From c610faa429a7b4b90f639964b4e7b05568658ffb Mon Sep 17 00:00:00 2001 From: jliddev Date: Tue, 5 Jan 2021 11:51:06 -0600 Subject: [PATCH 2/2] 2.0.3 Bump --- wowup-electron/package.json | 2 +- wowup-electron/src/assets/changelog.json | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/wowup-electron/package.json b/wowup-electron/package.json index 68ca664d..db6732f5 100644 --- a/wowup-electron/package.json +++ b/wowup-electron/package.json @@ -1,7 +1,7 @@ { "name": "wowup", "productName": "WowUp", - "version": "2.0.2", + "version": "2.0.3", "description": "Word of Warcraft addon updater", "homepage": "https://wowup.io", "author": { diff --git a/wowup-electron/src/assets/changelog.json b/wowup-electron/src/assets/changelog.json index c3d9e936..b63a8544 100644 --- a/wowup-electron/src/assets/changelog.json +++ b/wowup-electron/src/assets/changelog.json @@ -1,5 +1,9 @@ { "ChangeLogs": [ + { + "Version": "2.0.3", + "changes": ["Fix an issue with legacy TukUI/ElvUI external IDs saved as ints"] + }, { "Version": "2.0.2", "changes": ["Fix an issue with a hardcoded hub URL"]