diff --git a/src/css/screenshots.scss b/src/css/screenshots.scss index 35f2c60..1d038c2 100644 --- a/src/css/screenshots.scss +++ b/src/css/screenshots.scss @@ -36,7 +36,7 @@ } .new-weapon { - transform: scale(1.25) rotate(-1.4deg); + transform: scale(1.25); } .twitter-logo { diff --git a/src/js/components/App.vue b/src/js/components/App.vue index f76476f..97f26f1 100644 --- a/src/js/components/App.vue +++ b/src/js/components/App.vue @@ -96,16 +96,30 @@ -
-
- +
+
+
+
+ +
+
-
-
- +
+
+
+
+ +
+
@@ -233,11 +247,14 @@ export default { }, // New weapons - newWeapon() { + newWeapons() { if (this.splatnet.timeline && this.splatnet.timeline.weapon_availability && this.splatnet.timeline.weapon_availability.availabilities) { - let availability = this.splatnet.timeline.weapon_availability.availabilities[0]; - if (availability.release_time <= this.now) - return availability.weapon; + let weapons = this.splatnet.timeline.weapon_availability.availabilities + .filter(a => a.release_time <= this.now) + .map(a => a.weapon); + + if (weapons.length > 0) + return weapons; } }, @@ -249,7 +266,7 @@ export default { // Other bottomRowHasThreeColumns() { - return this.selectedFestival && !this.isSelectedFestivalActive && (this.coop || this.coopCalendar) && this.newWeapon; + return this.selectedFestival && !this.isSelectedFestivalActive && (this.coop || this.coopCalendar) && this.newWeapons; }, }, created() { diff --git a/src/js/components/screenshots/newweapon/NewWeapon.vue b/src/js/components/screenshots/newweapon/NewWeapon.vue index 0714d62..a82b2d0 100644 --- a/src/js/components/screenshots/newweapon/NewWeapon.vue +++ b/src/js/components/screenshots/newweapon/NewWeapon.vue @@ -1,10 +1,15 @@ @@ -23,12 +28,14 @@ export default { }; }, computed: { - newWeapon() { + newWeapons() { if (this.timeline && this.timeline.weapon_availability && this.timeline.weapon_availability.availabilities) { - for (let availability of this.timeline.weapon_availability.availabilities) { - if (availability.release_time == this.releaseTime) - return availability.weapon; - } + let weapons = this.timeline.weapon_availability.availabilities + .filter(a => a.release_time == this.releaseTime) + .map(a => a.weapon); + + if (weapons.length > 0) + return weapons; } }, }, diff --git a/src/updater/twitter.js b/src/updater/twitter.js index b980564..11af707 100644 --- a/src/updater/twitter.js +++ b/src/updater/twitter.js @@ -296,7 +296,7 @@ async function postSalmonRunTweet(startTime) { * New Weapon tweets */ -function getNewWeaponAvailability(releaseTime = null) { +function getNewWeaponAvailabilities(releaseTime = null) { let timelinePath = `${dataPath}/timeline.json`; if (!fs.existsSync(timelinePath)) { console.warn('Twitter: Gear: timeline.json does not exist'); @@ -307,10 +307,7 @@ function getNewWeaponAvailability(releaseTime = null) { if (releaseTime === null) return weaponAvailability.availabilities; - for (let availability of weaponAvailability.availabilities) { - if (availability.release_time == releaseTime) - return availability; - } + return weaponAvailability.availabilities.filter(a => a.release_time == releaseTime); } } @@ -321,8 +318,8 @@ async function maybePostNewWeaponTweet() { let time = getTopOfCurrentHour(); // Do we have a weapon? - let weaponAvailability = getNewWeaponAvailability(time); - if (!weaponAvailability) { + let weaponAvailabilities = getNewWeaponAvailabilities(time); + if (!weaponAvailabilities) { console.info('Twitter: No new weapon for this time'); return; } @@ -342,7 +339,7 @@ async function maybePostNewWeaponTweet() { } async function testNewWeaponScreenshot() { - let availabilities = getNewWeaponAvailability(); + let availabilities = getNewWeaponAvailabilities(); let availability = availabilities[0]; if (!availability) { console.info('No new weapon'); @@ -359,8 +356,17 @@ async function postNewWeaponTweet(releaseTime) { let imageData = await screenshots.captureNewWeaponScreenshot(releaseTime); // Generate the text - let availability = getNewWeaponAvailability(releaseTime); - let tweetText = `New weapon, now available: ${availability.weapon.name} #splatoon2`; + let availabilities = getNewWeaponAvailabilities(releaseTime); + let tweetText; + if (availabilities.length == 1) { + tweetText = `New weapon, now available: ${availabilities[0].weapon.name} #splatoon2`; + } + else { + tweetText = `New weapons, now available:`; + for (availability of availabilities) + tweetText += `\n- ${availability.weapon.name}`; + tweetText += '\n#splatoon2'; + } // Post the tweet return await postMediaTweet(imageData, tweetText);