Skip to content

Commit c615ec6

Browse files
committed
update
1 parent 6e3da29 commit c615ec6

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

main.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,11 @@ def load_state():
3030
try:
3131
with open(STATE_FILE_PATH, 'r') as f:
3232
state = json.load(f)
33-
# Convert string date back to datetime
34-
state["last_reset_time"] = datetime.fromisoformat(state["last_reset_time"])
33+
34+
# Ensure last_reset_time exists
35+
if "last_reset_time" not in state:
36+
state["last_reset_time"] = datetime.now().isoformat()
37+
3538
return state
3639
except Exception as e:
3740
logger.error(f"Error loading state file: {e}")
@@ -44,8 +47,9 @@ def load_state():
4447
def save_state(state):
4548
"""Save the state file with processed items and last reset time"""
4649
try:
47-
# Convert datetime to string for JSON serialization
48-
state["last_reset_time"] = state["last_reset_time"].isoformat()
50+
# Ensure last_reset_time is a string for JSON serialization
51+
if isinstance(state["last_reset_time"], datetime):
52+
state["last_reset_time"] = state["last_reset_time"].isoformat()
4953

5054
with open(STATE_FILE_PATH, 'w') as f:
5155
json.dump(state, f)
@@ -59,7 +63,18 @@ def check_reset_state(state):
5963
return state
6064

6165
now = datetime.now()
62-
last_reset = state["last_reset_time"]
66+
67+
# Convert string to datetime if needed
68+
if isinstance(state["last_reset_time"], str):
69+
try:
70+
last_reset = datetime.fromisoformat(state["last_reset_time"])
71+
except ValueError:
72+
# If parsing fails, reset the time to now
73+
logger.warning("Invalid datetime format in state file. Resetting to now.")
74+
last_reset = now
75+
else:
76+
last_reset = state["last_reset_time"]
77+
6378
reset_interval = timedelta(hours=STATE_RESET_INTERVAL_HOURS)
6479

6580
if now - last_reset > reset_interval:

0 commit comments

Comments
 (0)