mirror of
https://github.com/misenhower/splatoon3.ink.git
synced 2026-07-18 17:03:46 -05:00
Screenshot page
This commit is contained in:
parent
80a5c4bde3
commit
f1bf01686c
48
app/social/generators/EggstraWorkStatus.mjs
Normal file
48
app/social/generators/EggstraWorkStatus.mjs
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
import StatusGenerator from "./StatusGenerator.mjs";
|
||||
import Media from "../Media.mjs";
|
||||
import { useEggstraWorkSchedulesStore } from "../../../src/stores/schedules.mjs";
|
||||
|
||||
export default class EggstraWorkStatus extends StatusGenerator
|
||||
{
|
||||
key = 'eggstrawork';
|
||||
name = 'Eggstra Work';
|
||||
|
||||
async getActiveSchedule() {
|
||||
await this.preparePinia();
|
||||
|
||||
return useEggstraWorkSchedulesStore().activeSchedule;
|
||||
}
|
||||
|
||||
async getDataTime() {
|
||||
let schedule = await this.getActiveSchedule();
|
||||
|
||||
return Date.parse(schedule.startTime);
|
||||
}
|
||||
|
||||
async _getStatus() {
|
||||
let schedule = await this.getActiveSchedule();
|
||||
|
||||
let lines = [];
|
||||
|
||||
let mode = 'Eggstra Work'
|
||||
|
||||
lines.push(`${mode} is now open on ${schedule.settings.coopStage.name}! #salmonrun #splatoon3`);
|
||||
|
||||
lines.push('');
|
||||
|
||||
lines.push('Current weapons:');
|
||||
lines.push(...schedule.settings.weapons.map(w => `– ${w.name}`));
|
||||
|
||||
return lines.join('\n');
|
||||
}
|
||||
|
||||
/** @param {ScreenshotHelper} screenshotHelper */
|
||||
async _getMedia(screenshotHelper) {
|
||||
let media = new Media;
|
||||
media.file = await screenshotHelper.capture('salmonrun', {
|
||||
params: {eggstra: "true"}
|
||||
});
|
||||
|
||||
return media;
|
||||
}
|
||||
}
|
||||
73
app/social/generators/EggstraWorkUpcomingStatus.mjs
Normal file
73
app/social/generators/EggstraWorkUpcomingStatus.mjs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
import StatusGenerator from "./StatusGenerator.mjs";
|
||||
import Media from "../Media.mjs";
|
||||
import { useEggstraWorkSchedulesStore } from "../../../src/stores/schedules.mjs";
|
||||
import { useTimeStore } from "../../../src/stores/time.mjs";
|
||||
|
||||
export default class EggstraWorkUpcomingStatus extends StatusGenerator
|
||||
{
|
||||
key = 'eggstrawork.upcoming';
|
||||
name = 'Upcoming Eggstra Work';
|
||||
|
||||
async getActiveSchedule() {
|
||||
await this.preparePinia();
|
||||
|
||||
// Look for any upcoming schedules
|
||||
return useEggstraWorkSchedulesStore().upcomingSchedules[0];
|
||||
}
|
||||
|
||||
async getDataTime() {
|
||||
let schedule = await this.getActiveSchedule();
|
||||
|
||||
return schedule
|
||||
? Date.parse(schedule.startTime)
|
||||
: false;
|
||||
}
|
||||
|
||||
_getDescription(schedule) {
|
||||
let stageName = schedule.settings.coopStage.name || '???';
|
||||
|
||||
return `An Eggstra Work shift on ${stageName} has been added to the schedule! #salmonrun #splatoon3`;
|
||||
}
|
||||
|
||||
async _getStatus() {
|
||||
let schedule = await this.getActiveSchedule();
|
||||
|
||||
if (!schedule) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let lines = [];
|
||||
|
||||
lines.push(this._getDescription(schedule));
|
||||
lines.push('');
|
||||
|
||||
let startTime = Date.parse(schedule.startTime);
|
||||
let now = useTimeStore().now;
|
||||
let hours = Math.floor((startTime - now) / (1000 * 60 * 60));
|
||||
|
||||
let formattedTime;
|
||||
if (hours >= 24) {
|
||||
let days = Math.round(hours / 24);
|
||||
formattedTime = days === 1 ? '1 day' : `${days} days`;
|
||||
} else {
|
||||
formattedTime = hours === 1 ? '1 hour' : `${hours} hours`;
|
||||
}
|
||||
|
||||
lines.push(`This shift will start in ${formattedTime} with these weapons:`);
|
||||
lines.push(...schedule.settings.weapons.map(w => `– ${w.name}`));
|
||||
|
||||
return lines.join('\n');
|
||||
}
|
||||
|
||||
/** @param {ScreenshotHelper} screenshotHelper */
|
||||
async _getMedia(screenshotHelper) {
|
||||
let schedule = await this.getActiveSchedule();
|
||||
|
||||
let media = new Media;
|
||||
media.file = await screenshotHelper.capture('salmonRun', {
|
||||
params: { startTime: schedule?.startTime, eggstra: "true" },
|
||||
});
|
||||
|
||||
return media;
|
||||
}
|
||||
}
|
||||
|
|
@ -11,6 +11,8 @@ import SplatfestStatus from "./generators/SplatfestStatus.mjs";
|
|||
import SplatfestResultsStatus from "./generators/SplatfestResultsStatus.mjs";
|
||||
import StatusGeneratorManager from "./StatusGeneratorManager.mjs"
|
||||
import SalmonRunUpcomingStatus from "./generators/SalmonRunUpcomingStatus.mjs";
|
||||
import EggstraWorkStatus from "./generators/EggstraWorkStatus.mjs";
|
||||
import EggstraWorkUpcomingStatus from "./generators/EggstraWorkUpcomingStatus.mjs";
|
||||
|
||||
function defaultStatusGenerators() {
|
||||
return [
|
||||
|
|
@ -22,6 +24,8 @@ function defaultStatusGenerators() {
|
|||
new SalmonRunGearStatus,
|
||||
new SplatfestStatus,
|
||||
new SplatfestResultsStatus,
|
||||
new EggstraWorkStatus,
|
||||
new EggstraWorkUpcomingStatus,
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</div>
|
||||
|
||||
<div class="hidden ss:block text-shadow text-white text-xl">
|
||||
<KingSalmonid :schedule="schedule" class="inline-block -mb-1 mr-2" />
|
||||
<KingSalmonid :schedule="schedule" class="inline-block -mb-1 mr-2" v-if="!eggstra"/>
|
||||
|
||||
<div class="inline-block" v-if="time.isUpcoming(schedule.startTime)">
|
||||
Shift opens
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<ScreenshotLayout header="Salmon Run">
|
||||
<div class="grow flex items-center justify-center">
|
||||
<div class="max-w-2xl scale-[1.6]">
|
||||
<SalmonRunBox class="-rotate-1" is-screenshot :startTime="route.query.startTime" />
|
||||
<SalmonRunBox class="-rotate-1" is-screenshot :startTime="route.query.startTime" :eggstra="route.query.eggstra=='true'"/>
|
||||
</div>
|
||||
</div>
|
||||
</ScreenshotLayout>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user