File size: 1,144 Bytes
0170ac5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from datetime import datetime, date, time, timedelta

def hms_to_seconds(hms_str):
    """Converts GTFS 'HH:MM:SS' (e.g. '25:30:00') to total seconds from midnight."""
    h, m, s = map(int, hms_str.split(':'))
    return (h * 3600) + (m * 60) + s

def get_service_day_start_ts():
    """
    Returns the Unix timestamp for 00:00:00 of the CURRENT service day.
    TTC service day typically flips at 4:00 AM.
    """
    now = datetime.now()
    # If it's 2 AM, we are still technically on 'yesterday's' schedule
    if now.hour < 4:
        service_date = date.today() - timedelta(days=1)
    else:
        service_date = date.today()
    
    # Combine that date with 00:00:00 and get the timestamp
    service_start_dt = datetime.combine(service_date, time.min)
    return int(service_start_dt.timestamp())

def translate_occupancy(status):
    """Maps GTFS occupancy enums to human readable strings."""
    mapping = {
        0: "Empty", 1: "Many Seats Available", 2: "Few Seats Available", 
        3: "No Seats Available", 5: "Full", 6: "Not In Service"
    }
    return mapping.get(status, "Full") # when in doubt assume the bus is full