diff --git a/Scripts/sportstime_parser/scrapers/mlb.py b/Scripts/sportstime_parser/scrapers/mlb.py index 1a54162..5fc9e7a 100644 --- a/Scripts/sportstime_parser/scrapers/mlb.py +++ b/Scripts/sportstime_parser/scrapers/mlb.py @@ -672,6 +672,7 @@ class MLBScraper(BaseScraper): country=info.country, latitude=info.latitude, longitude=info.longitude, + timezone=info.timezone, surface="grass", # Most MLB stadiums roof_type="open", # Most MLB stadiums ) diff --git a/Scripts/sportstime_parser/scrapers/mls.py b/Scripts/sportstime_parser/scrapers/mls.py index d3bea38..3ad7d7a 100644 --- a/Scripts/sportstime_parser/scrapers/mls.py +++ b/Scripts/sportstime_parser/scrapers/mls.py @@ -387,6 +387,7 @@ class MLSScraper(BaseScraper): country=info.country, latitude=info.latitude, longitude=info.longitude, + timezone=info.timezone, surface="grass", roof_type="open", ) diff --git a/Scripts/sportstime_parser/scrapers/nba.py b/Scripts/sportstime_parser/scrapers/nba.py index c5fbfcb..575260b 100644 --- a/Scripts/sportstime_parser/scrapers/nba.py +++ b/Scripts/sportstime_parser/scrapers/nba.py @@ -648,6 +648,7 @@ class NBAScraper(BaseScraper): country=info.country, latitude=info.latitude, longitude=info.longitude, + timezone=info.timezone, surface="hardwood", roof_type="dome", ) diff --git a/Scripts/sportstime_parser/scrapers/nfl.py b/Scripts/sportstime_parser/scrapers/nfl.py index 03c9163..c0bf406 100644 --- a/Scripts/sportstime_parser/scrapers/nfl.py +++ b/Scripts/sportstime_parser/scrapers/nfl.py @@ -566,6 +566,7 @@ class NFLScraper(BaseScraper): country=info.country, latitude=info.latitude, longitude=info.longitude, + timezone=info.timezone, surface="turf", # Many NFL stadiums roof_type="open", # Most outdoor ) diff --git a/Scripts/sportstime_parser/scrapers/nhl.py b/Scripts/sportstime_parser/scrapers/nhl.py index b9c815f..c6b513d 100644 --- a/Scripts/sportstime_parser/scrapers/nhl.py +++ b/Scripts/sportstime_parser/scrapers/nhl.py @@ -644,6 +644,7 @@ class NHLScraper(BaseScraper): country=info.country, latitude=info.latitude, longitude=info.longitude, + timezone=info.timezone, surface="ice", roof_type="dome", ) diff --git a/Scripts/sportstime_parser/scrapers/nwsl.py b/Scripts/sportstime_parser/scrapers/nwsl.py index 5b55e98..3b570e0 100644 --- a/Scripts/sportstime_parser/scrapers/nwsl.py +++ b/Scripts/sportstime_parser/scrapers/nwsl.py @@ -361,6 +361,7 @@ class NWSLScraper(BaseScraper): country=info.country, latitude=info.latitude, longitude=info.longitude, + timezone=info.timezone, surface="grass", roof_type="open", ) diff --git a/Scripts/sportstime_parser/scrapers/wnba.py b/Scripts/sportstime_parser/scrapers/wnba.py index 7b4b1f5..55f1caa 100644 --- a/Scripts/sportstime_parser/scrapers/wnba.py +++ b/Scripts/sportstime_parser/scrapers/wnba.py @@ -362,6 +362,7 @@ class WNBAScraper(BaseScraper): country=info.country, latitude=info.latitude, longitude=info.longitude, + timezone=info.timezone, surface="hardwood", roof_type="dome", ) diff --git a/Scripts/sportstime_parser/uploaders/diff.py b/Scripts/sportstime_parser/uploaders/diff.py index 3bec2c1..472696e 100644 --- a/Scripts/sportstime_parser/uploaders/diff.py +++ b/Scripts/sportstime_parser/uploaders/diff.py @@ -545,6 +545,7 @@ class RecordDiffer: - yearOpened: Year opened as int - imageURL: URL string for stadium image - sport: Sport code uppercase (e.g., "MLB") + - timezoneIdentifier: IANA timezone (e.g., "America/New_York") """ return CloudKitRecord( record_name=stadium.id, @@ -564,6 +565,7 @@ class RecordDiffer: "capacity": stadium.capacity, "yearOpened": stadium.opened_year, "imageURL": stadium.image_url, + "timezoneIdentifier": stadium.timezone, }, ) diff --git a/SportsTime/Core/Models/CloudKit/CKModels.swift b/SportsTime/Core/Models/CloudKit/CKModels.swift index 15a3e43..393db3a 100644 --- a/SportsTime/Core/Models/CloudKit/CKModels.swift +++ b/SportsTime/Core/Models/CloudKit/CKModels.swift @@ -119,6 +119,7 @@ struct CKStadium { static let yearOpenedKey = "yearOpened" static let imageURLKey = "imageURL" static let sportKey = "sport" + static let timezoneIdentifierKey = "timezoneIdentifier" let record: CKRecord @@ -160,6 +161,7 @@ struct CKStadium { let imageURL = (record[CKStadium.imageURLKey] as? String).flatMap { URL(string: $0) } let sportRaw = record[CKStadium.sportKey] as? String ?? "MLB" let sport = Sport(rawValue: sportRaw) ?? .mlb + let timezoneIdentifier = record[CKStadium.timezoneIdentifierKey] as? String return Stadium( id: id, @@ -171,7 +173,8 @@ struct CKStadium { capacity: capacity, sport: sport, yearOpened: record[CKStadium.yearOpenedKey] as? Int, - imageURL: imageURL + imageURL: imageURL, + timeZoneIdentifier: timezoneIdentifier ) } }