diff --git a/src/js/components/splatoon/MerchandiseBox.vue b/src/js/components/splatoon/MerchandiseBox.vue index c2ec76b..2433837 100644 --- a/src/js/components/splatoon/MerchandiseBox.vue +++ b/src/js/components/splatoon/MerchandiseBox.vue @@ -29,25 +29,25 @@ {{ merchandise.gear.name }}
-
+
Original Gear
- +
-
+
-
+
- {{ originalGear.price }} + {{ merchandise.original_gear.price }}
@@ -74,14 +74,7 @@ diff --git a/src/js/splatoon.js b/src/js/splatoon.js index ebbf8c5..2898ea0 100644 --- a/src/js/splatoon.js +++ b/src/js/splatoon.js @@ -1,3 +1,4 @@ +const brands = require('./data/brands'); const skills = require('./data/skills'); const inkipediaGear = require('./data/inkipediaGear'); @@ -10,9 +11,15 @@ function getOriginalGear(gear) { let originalGear = inkipediaGear[gear.kind].find(ig => ig.name.toLowerCase() == name); if (!originalGear) - return; + return null; - return Object.assign({}, originalGear, { skill: skills[originalGear.skill] }); + let brand = brands[originalGear.brand]; + brand.frequent_skill = skills[brand.frequent_skill]; + + return Object.assign({}, originalGear, { + brand, + skill: skills[originalGear.skill], + }); } module.exports = { diff --git a/src/updater/update.js b/src/updater/update.js index 59e22ac..a2e6892 100644 --- a/src/updater/update.js +++ b/src/updater/update.js @@ -3,6 +3,7 @@ require('./bootstrap'); const Updater = require('./updaters/Updater'); const OriginalGearImageUpdater = require('./updaters/OriginalGearImageUpdater'); const FestivalsUpdater = require('./updaters/FestivalsUpdater'); +const MerchandisesUpdater = require('./updaters/MerchandisesUpdater'); const updaters = [ // Original gear images @@ -49,18 +50,7 @@ const updaters = [ new FestivalsUpdater, // Merchandises - new Updater({ - name: 'Merchandises', - filename: 'merchandises.json', - request: (splatnet) => splatnet.getMerchandises(), - rootKeys: ['merchandises'], - imagePaths: [ - '$..gear.image', - '$..gear.brand.image', - '$..gear.brand.frequent_skill.image', - '$..skill.image', - ], - }), + new MerchandisesUpdater, ]; async function updateAll() { diff --git a/src/updater/updaters/MerchandisesUpdater.js b/src/updater/updaters/MerchandisesUpdater.js new file mode 100644 index 0000000..aba4006 --- /dev/null +++ b/src/updater/updaters/MerchandisesUpdater.js @@ -0,0 +1,29 @@ +const Updater = require('./Updater'); +const SplatNet = require('../splatnet'); +const { getOriginalGear } = require('../../js/splatoon'); + +class MerchandisesUpdater extends Updater { + constructor() { + super({ + name: 'Merchandises', + filename: 'merchandises.json', + request: (splatnet) => splatnet.getMerchandises(), + rootKeys: ['merchandises'], + imagePaths: [ + '$..gear.image', + '$..gear.brand.image', + '$..gear.brand.frequent_skill.image', + '$..skill.image', + ], + }); + } + + processData(data) { + for (let merchandise of data.merchandises) + merchandise.original_gear = getOriginalGear(merchandise.gear); + + return data; + } +} + +module.exports = MerchandisesUpdater; diff --git a/src/updater/updaters/Updater.js b/src/updater/updaters/Updater.js index c58d9f6..523a5db 100644 --- a/src/updater/updaters/Updater.js +++ b/src/updater/updaters/Updater.js @@ -22,6 +22,9 @@ class Updater { // Filter the root keys if necessary data = this.filterRootKeys(data); + // Apply any other processing + data = this.processData(data); + // Convert the data to a JSON string let dataString = JSON.stringify(data); @@ -40,6 +43,10 @@ class Updater { return this.options.request(splatnet); } + processData(data) { + return data; + } + async handleRequest(request) { try { return await request;