This commit is contained in:
Roman Davydov
2024-02-29 21:23:26 +03:00
parent 7f6c27b3fe
commit 3690c47cc4
2 changed files with 18 additions and 4 deletions

View File

@@ -3,6 +3,13 @@ from datetime import datetime
from TwitchChannelPointsMiner.classes.entities.Drop import Drop
from TwitchChannelPointsMiner.classes.Settings import Settings
def parse_datetime(datetime_str):
for fmt in ("%Y-%m-%dT%H:%M:%S.%fZ", "%Y-%m-%dT%H:%M:%SZ"):
try:
return datetime.strptime(datetime_str, fmt)
except ValueError:
continue
raise ValueError(f"time data '{datetime_str}' does not match format")
class Campaign(object):
__slots__ = [
@@ -30,8 +37,8 @@ class Campaign(object):
)
self.in_inventory = False
self.end_at = datetime.strptime(dict["endAt"], "%Y-%m-%dT%H:%M:%SZ")
self.start_at = datetime.strptime(dict["startAt"], "%Y-%m-%dT%H:%M:%SZ")
self.end_at = parse_datetime(dict["endAt"])
self.start_at = parse_datetime(dict["startAt"])
self.dt_match = self.start_at < datetime.now() < self.end_at
self.drops = list(map(lambda x: Drop(x), dict["timeBasedDrops"]))

View File

@@ -3,6 +3,13 @@ from datetime import datetime
from TwitchChannelPointsMiner.classes.Settings import Settings
from TwitchChannelPointsMiner.utils import percentage
def parse_datetime(datetime_str):
for fmt in ("%Y-%m-%dT%H:%M:%S.%fZ", "%Y-%m-%dT%H:%M:%SZ"):
try:
return datetime.strptime(datetime_str, fmt)
except ValueError:
continue
raise ValueError(f"time data '{datetime_str}' does not match format")
class Drop(object):
__slots__ = [
@@ -38,8 +45,8 @@ class Drop(object):
self.is_printable = False
self.percentage_progress = 0
self.end_at = datetime.strptime(dict["endAt"], "%Y-%m-%dT%H:%M:%SZ")
self.start_at = datetime.strptime(dict["startAt"], "%Y-%m-%dT%H:%M:%SZ")
self.end_at = parse_datetime(dict["endAt"])
self.start_at = parse_datetime(dict["startAt"])
self.dt_match = self.start_at < datetime.now() < self.end_at
def update(