diff --git a/src/css/screenshots.scss b/src/css/screenshots.scss index 55d580c..737b4e5 100644 --- a/src/css/screenshots.scss +++ b/src/css/screenshots.scss @@ -45,6 +45,11 @@ transform: scale(1.5) rotate(-1.4deg); } + .salmon-run-gear .merchandise-box { + width: 300px; + transform: scale(1.4); + } + .new-weapon { transform: scale(1.25); } diff --git a/src/js/components/screenshots/ScreenshotHelper.vue b/src/js/components/screenshots/ScreenshotHelper.vue index 7fe0d16..659e781 100644 --- a/src/js/components/screenshots/ScreenshotHelper.vue +++ b/src/js/components/screenshots/ScreenshotHelper.vue @@ -26,6 +26,14 @@ +
+ + + Salmon Run Gear + + +
+
@@ -82,6 +90,10 @@ export default { if (this.coopSchedules) return this.coopSchedules.details[0]; }, + salmonRunGear() { + if (this.timeline) + return this.timeline.coop.reward_gear; + }, newWeaponAvailability() { if (this.timeline && this.timeline.weapon_availability && this.timeline.weapon_availability.availabilities) { return this.timeline.weapon_availability.availabilities[0]; diff --git a/src/js/components/screenshots/salmonrun/SalmonRunGear.vue b/src/js/components/screenshots/salmonrun/SalmonRunGear.vue new file mode 100644 index 0000000..dfcede6 --- /dev/null +++ b/src/js/components/screenshots/salmonrun/SalmonRunGear.vue @@ -0,0 +1,33 @@ + + + diff --git a/src/js/screenshots.js b/src/js/screenshots.js index c0c0fc3..d614af0 100644 --- a/src/js/screenshots.js +++ b/src/js/screenshots.js @@ -14,6 +14,7 @@ import ScreenshotHelper from './components/screenshots/ScreenshotHelper.vue'; import Schedules from './components/screenshots/schedules/Schedules.vue'; import SplatNetGear from './components/screenshots/splatnetgear/SplatNetGear.vue'; import SalmonRun from './components/screenshots/salmonrun/SalmonRun.vue'; +import SalmonRunGear from './components/screenshots/salmonrun/SalmonRunGear.vue'; import NewWeapon from './components/screenshots/newweapon/NewWeapon.vue'; import Splatfest from './components/screenshots/splatfest/Splatfest.vue'; const routes = [ @@ -21,6 +22,7 @@ const routes = [ { path: '/schedules/:startTime', component: Schedules, props: true }, { path: '/splatNetGear/:startTime/:endTime', component: SplatNetGear, props: true }, { path: '/salmonRun/:startTime', component: SalmonRun, props: true }, + { path: '/salmonRunGear/:now', component: SalmonRunGear, props: true }, { path: '/newWeapon/:releaseTime', component: NewWeapon, props: true }, { path: '/splatfest/:region/:startTime', component: Splatfest, props: true }, ]; diff --git a/src/updater/screenshots.js b/src/updater/screenshots.js index 68c7b13..64625e1 100644 --- a/src/updater/screenshots.js +++ b/src/updater/screenshots.js @@ -60,6 +60,13 @@ function captureSalmonRunScreenshot(startTime) { return captureScreenshot({ url }); } +function captureSalmonRunGearScreenshot(startTime) { + let url = new URL(htmlUrl); + url.hash = `/salmonRunGear/${startTime}`; + + return captureScreenshot({ url }); +} + function captureNewWeaponScreenshot(releaseTime) { let url = new URL(htmlUrl); url.hash = `/newWeapon/${releaseTime}`; @@ -78,6 +85,7 @@ module.exports = { captureScheduleScreenshot, captureGearScreenshot, captureSalmonRunScreenshot, + captureSalmonRunGearScreenshot, captureNewWeaponScreenshot, captureSplatfestScreenshot, } diff --git a/src/updater/twitter.js b/src/updater/twitter.js index c75795c..a2c027b 100644 --- a/src/updater/twitter.js +++ b/src/updater/twitter.js @@ -3,6 +3,7 @@ const { canTweet } = require('./twitter/client'); const ScheduleTweet = require('./twitter/ScheduleTweet'); const GearTweet = require('./twitter/GearTweet'); const SalmonRunTweet = require('./twitter/SalmonRunTweet'); +const SalmonRunGearTweet = require('./twitter/SalmonRunGearTweet'); const NewWeaponTweet = require('./twitter/NewWeaponTweet'); const NewStageTweet = require('./twitter/NewStageTweet'); const SplatfestTweet = require('./twitter/SplatfestTweet'); @@ -11,6 +12,7 @@ let tweets = [ new ScheduleTweet, new GearTweet, new SalmonRunTweet, + new SalmonRunGearTweet, new NewWeaponTweet, new NewStageTweet, new SplatfestTweet('na'), diff --git a/src/updater/twitter/SalmonRunGearTweet.js b/src/updater/twitter/SalmonRunGearTweet.js new file mode 100644 index 0000000..607b57b --- /dev/null +++ b/src/updater/twitter/SalmonRunGearTweet.js @@ -0,0 +1,35 @@ +const TwitterPostBase = require('./TwitterPostBase'); +const { captureSalmonRunGearScreenshot } = require('../screenshots'); +const { readData } = require('../utilities'); +const moment = require('moment-timezone'); + +class SalmonRunTweet extends TwitterPostBase { + getKey() { return 'salmonrungear'; } + getName() { return 'Salmon Run Gear'; } + + getRewardGear() { + let timeline = readData('timeline.json'); + return timeline.coop && timeline.coop.reward_gear; + } + + getData() { + let rewardGear = this.getRewardGear(); + if (rewardGear.available_time == this.getDataTime()) + return rewardGear; + } + + getTestData() { + return this.getRewardGear(); + } + + getImage(data) { + return captureSalmonRunGearScreenshot(data.available_time); + } + + getText(data) { + let monthName = moment.unix(data.available_time).tz('UTC').format('MMMM'); + return `Next month's Salmon Run reward gear has been posted! ${monthName}'s gear is the ${data.gear.name}. #salmonrun #splatoon2`; + } +} + +module.exports = SalmonRunTweet;