Ensure all possible time triggers are included
This commit is contained in:
1 parent
41430b5027
commit
d100c4b7ff
2 files changed
+11
-2
No files matched your search
@@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
from itertools import chain
|
||||
from typing import TYPE_CHECKING
|
||||
from functools import cached_property
|
||||
from datetime import datetime, timezone
|
||||
@@ -246,6 +247,15 @@ class DropsCampaign:
|
||||
def drops(self) -> abc.Iterable[TimedDrop]:
|
||||
return self.timed_drops.values()
|
||||
|
||||
@property
|
||||
def time_triggers(self) -> set[datetime]:
|
||||
return set(
|
||||
chain(
|
||||
(self.starts_at, self.ends_at),
|
||||
*((d.starts_at, d.ends_at) for d in self.timed_drops.values()),
|
||||
)
|
||||
)
|
||||
|
||||
@property
|
||||
def active(self) -> bool:
|
||||
return self.starts_at <= datetime.now(timezone.utc) < self.ends_at
|
||||
|
||||
Reference in new issue
Block a user