feat: Implement temporary hold expiration logic with notifications
This commit is contained in:
parent
b9b67f685a
commit
baa6382fba
@ -20,6 +20,8 @@ class ScheduleMonitor:
|
|||||||
self.last_check = 0
|
self.last_check = 0
|
||||||
self.current_schedule = None
|
self.current_schedule = None
|
||||||
self.last_applied_schedule = None
|
self.last_applied_schedule = None
|
||||||
|
self.temp_hold_start_time = None # When temporary hold was activated
|
||||||
|
self.temp_hold_duration = config.get('temp_hold_duration', 3600) # Use config value, default 1 hour
|
||||||
|
|
||||||
def should_run(self):
|
def should_run(self):
|
||||||
"""Check if it's time to run this monitor."""
|
"""Check if it's time to run this monitor."""
|
||||||
@ -132,6 +134,45 @@ class ScheduleMonitor:
|
|||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
"""Check if schedule needs to be updated."""
|
"""Check if schedule needs to be updated."""
|
||||||
|
|
||||||
|
# ===== START: Check if temporary hold has expired =====
|
||||||
|
if not self.config.get('schedule_enabled', False) and not self.config.get('permanent_hold', False):
|
||||||
|
# We're in temporary hold mode
|
||||||
|
if self.temp_hold_start_time is None:
|
||||||
|
# Just entered hold mode, record start time
|
||||||
|
self.temp_hold_start_time = time.time()
|
||||||
|
print("⏸️ Temporary hold started - will auto-resume in {} minutes".format(
|
||||||
|
self.temp_hold_duration // 60
|
||||||
|
))
|
||||||
|
else:
|
||||||
|
# Check if hold has expired
|
||||||
|
elapsed = time.time() - self.temp_hold_start_time
|
||||||
|
if elapsed >= self.temp_hold_duration:
|
||||||
|
# Hold expired, resume schedules
|
||||||
|
print("⏰ Temporary hold expired - resuming automatic mode")
|
||||||
|
self.config['schedule_enabled'] = True
|
||||||
|
self.config['permanent_hold'] = False
|
||||||
|
self.temp_hold_start_time = None
|
||||||
|
|
||||||
|
# Save updated config
|
||||||
|
try:
|
||||||
|
import json
|
||||||
|
with open('config.json', 'w') as f:
|
||||||
|
json.dump(self.config, f)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Send Discord notification
|
||||||
|
try:
|
||||||
|
from scripts.discord_webhook import send_discord_message
|
||||||
|
send_discord_message("⏰ Temporary hold expired - Automatic mode resumed")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
# Not in temporary hold, reset timer
|
||||||
|
self.temp_hold_start_time = None
|
||||||
|
# ===== END: Check if temporary hold has expired =====
|
||||||
|
|
||||||
# Find and apply active schedule
|
# Find and apply active schedule
|
||||||
active_schedule = self._find_active_schedule()
|
active_schedule = self._find_active_schedule()
|
||||||
if active_schedule:
|
if active_schedule:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user