anny-booking-automation/main.py

58 lines
1.3 KiB
Python
Raw Normal View History

import datetime
2025-07-15 16:36:34 +02:00
import os
import time
2025-07-15 16:36:34 +02:00
from dotenv import load_dotenv
from auth.session import AnnySession
from booking.client import BookingClient
from utils.helpers import get_future_datetime
import pytz
2025-07-15 16:36:34 +02:00
def main():
load_dotenv('.env', override=True)
username = os.getenv("USERNAME")
password = os.getenv("PASSWORD")
2025-07-15 16:36:34 +02:00
start_time = datetime.datetime.now(pytz.timezone('Europe/Berlin'))
if not username or not password:
print("❌ Missing USERNAME or PASSWORD in .env")
return
2025-07-15 16:36:34 +02:00
session = AnnySession(username, password)
cookies = session.login()
2025-07-15 16:36:34 +02:00
if not cookies:
return
2025-07-15 16:36:34 +02:00
booking = BookingClient(cookies)
while start_time.day == datetime.datetime.now(pytz.timezone('Europe/Berlin')).day:
time.sleep(1)
times = [
{
'start': '13:00:00',
'end': '18:00:00'
},
{
'start': '09:00:00',
'end': '12:00:00'
}
]
for time_ in times:
start = get_future_datetime(hour=time_['start'])
end = get_future_datetime(hour=time_['end'])
resource_id = booking.find_available_resource(start, end)
if resource_id:
booking.reserve(resource_id, start, end)
else:
print("⚠️ No available slots found.")
2025-07-15 16:36:34 +02:00
if __name__ == "__main__":
main()