80 lines
2.3 KiB
Python
80 lines
2.3 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Script to demonstrate how to execute the book_session method from crossfit_booker.py
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
import logging
|
|
from src.auth import AuthHandler
|
|
from src.booker import Booker
|
|
from src.session_notifier import SessionNotifier
|
|
|
|
# Load environment variables
|
|
from dotenv import load_dotenv
|
|
load_dotenv()
|
|
|
|
# Configure logging
|
|
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
|
|
def main():
|
|
# Check if a session ID was provided as an argument
|
|
if len(sys.argv) < 2:
|
|
print("Usage: python execute_book_session.py <session_id>")
|
|
sys.exit(1)
|
|
|
|
session_id = sys.argv[1]
|
|
|
|
# Initialize components
|
|
auth_handler = AuthHandler(
|
|
os.environ.get("CROSSFIT_USERNAME"),
|
|
os.environ.get("CROSSFIT_PASSWORD")
|
|
)
|
|
|
|
# Initialize notification system (minimal for single session booking)
|
|
email_credentials = {
|
|
"from": os.environ.get("EMAIL_FROM"),
|
|
"to": os.environ.get("EMAIL_TO"),
|
|
"password": os.environ.get("EMAIL_PASSWORD")
|
|
}
|
|
|
|
telegram_credentials = {
|
|
"token": os.environ.get("TELEGRAM_TOKEN"),
|
|
"chat_id": os.environ.get("TELEGRAM_CHAT_ID")
|
|
}
|
|
|
|
enable_email = os.environ.get("ENABLE_EMAIL_NOTIFICATIONS", "true").lower() in ("true", "1", "yes")
|
|
enable_telegram = os.environ.get("ENABLE_TELEGRAM_NOTIFICATIONS", "true").lower() in ("true", "1", "yes")
|
|
|
|
notifier = SessionNotifier(
|
|
email_credentials,
|
|
telegram_credentials,
|
|
enable_email=enable_email,
|
|
enable_telegram=enable_telegram
|
|
)
|
|
|
|
# Create an instance of Booker
|
|
booker = Booker(auth_handler, notifier)
|
|
|
|
# Login to authenticate
|
|
print("Attempting to authenticate...")
|
|
if not auth_handler.login():
|
|
print("Failed to authenticate. Please check your credentials and try again.")
|
|
sys.exit(1)
|
|
print("Authentication successful!")
|
|
|
|
# Book the session
|
|
print(f"Attempting to book session with ID: {session_id}")
|
|
success = booker.book_session(session_id)
|
|
|
|
if success:
|
|
print(f"Successfully booked session {session_id}")
|
|
else:
|
|
print(f"Failed to book session {session_id}")
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
main()
|
|
except Exception as e:
|
|
print(f"An error occurred: {e}")
|
|
sys.exit(1) |