Feat(Fortune): Support multiple event in same day

This commit is contained in:
2025-03-05 20:07:28 +08:00
parent be8b5d30d7
commit 5aa99e78e8
2 changed files with 23 additions and 5 deletions

View File

@@ -268,6 +268,7 @@ const J_ip_to_fortune = $("#ip-to-fortune");
let special = false;
let special_events_index = 0;
let current_day_special_events = [];
// init page
async function init_page() {
@@ -315,9 +316,14 @@ async function init_page() {
eventIndexList[j] = i;
} else if (diffCount === 0) {
special = true;
special_events_index = i;
current_day_special_events.push(i);
}
}
special_events_index = ip.split(".").map(num => parseInt(num)).reduce((acc, cur) => acc + cur);
special_events_index %= current_day_special_events.length;
special_events_index = current_day_special_events[special_events_index];
// if there is upcoming event then show
for (let eventIndex = 0; eventIndex < showSpecialEventCount; eventIndex++) {
if (eventIndexList[eventIndex] != -1) {

View File

@@ -277,6 +277,12 @@ def check_static_date(event: dict, idx: int):
idx, trigger_date["date"], 1, DAYSPERMONTH[month], "triggerDate.date"
)
key = f'"{event_name}:{trigger_date["month"]}/{trigger_date["date"]}'
if key in event_dates:
errors[idx].append(f"The `{key}` is repeated.")
event_dates.add(key)
def check_cyclical_date(event: dict, idx: int):
trigger_date: dict = event["triggerDate"]
@@ -309,6 +315,12 @@ def check_cyclical_date(event: dict, idx: int):
validate_number(idx, trigger_date["week"], 1, 5, "triggerDate.week")
validate_number(idx, trigger_date["weekday"], 1, 7, "triggerDate.weekday")
key = f'"{event_name}:{trigger_date["month"]}/{trigger_date["week"]}/{trigger_date["weekday"]}'
if key in event_dates:
errors[idx].append(f"The `{key}` is repeated.")
event_dates.add(key)
def check_custom_date(event: dict, idx: int):
trigger_date: dict = event["triggerDate"]
@@ -357,11 +369,11 @@ def check_custom_date(event: dict, idx: int):
if date is None:
return
date_str = f"{year}/{month}/{date}"
if date_str in event_dates:
errors[idx].append(f"The date `{date_str}` of `{event_name}` is repeated.")
key = f'"{event_name}:{year}/{month}/{date}'
if key in event_dates:
errors[idx].append(f"The `{key}` is repeated.")
event_dates.add(date_str)
event_dates.add(key)
date_checker = {