mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 14:17:22 +01:00
65 lines
1.7 KiB
JavaScript
65 lines
1.7 KiB
JavaScript
import filter from 'lodash/filter';
|
|
import moment from 'moment';
|
|
import { // eslint-disable-line import/no-cycle
|
|
model as Group,
|
|
TAVERN_ID as tavernId,
|
|
} from '../models/group';
|
|
import common from '../../common';
|
|
import { REPEATING_EVENTS } from '../../common/script/content/constants';
|
|
import { getCurrentGalaEvent } from '../../common/script/content/constants/schedule';
|
|
|
|
export async function getWorldBoss () {
|
|
const tavern = await Group
|
|
.findById(tavernId)
|
|
.select('quest.progress quest.key quest.active quest.extra')
|
|
.exec();
|
|
if (tavern && tavern.quest && tavern.quest.active) {
|
|
return tavern.quest;
|
|
}
|
|
return {};
|
|
}
|
|
|
|
export function getCurrentEvent () {
|
|
const now = moment();
|
|
const currEvtKey = Object.keys(REPEATING_EVENTS).find(evtKey => {
|
|
const event = REPEATING_EVENTS[evtKey];
|
|
const startDate = event.start.replace('1970', now.year());
|
|
const endDate = event.end.replace('1970', now.year());
|
|
|
|
return now.isBetween(startDate, endDate);
|
|
});
|
|
|
|
if (!currEvtKey) {
|
|
return getCurrentGalaEvent()
|
|
}
|
|
return {
|
|
event: currEvtKey,
|
|
...REPEATING_EVENTS[currEvtKey],
|
|
};
|
|
}
|
|
|
|
export function getCurrentEventList () {
|
|
const now = moment();
|
|
const currentEventKeys = filter(Object.keys(REPEATING_EVENTS), eventKey => {
|
|
const eventData = REPEATING_EVENTS[eventKey];
|
|
const startDate = eventData.start.replace('1970', now.year());
|
|
const endDate = eventData.end.replace('1970', now.year());
|
|
|
|
return now.isBetween(startDate, endDate);
|
|
});
|
|
|
|
const currentEventList = [];
|
|
|
|
currentEventKeys.forEach(key => {
|
|
currentEventList.push({
|
|
event: key,
|
|
...REPEATING_EVENTS[key],
|
|
});
|
|
});
|
|
|
|
currentEventList.push(getCurrentGalaEvent());
|
|
|
|
console.log(currentEventList);
|
|
return currentEventList;
|
|
}
|