chore: remove college basketball (CBB) from iOS app
Remove CBB (~5,000+ games per season) to reduce complexity. Changes: - Remove .cbb enum case from Sport - Remove CBB theme color (cbbMint) - Update documentation to reflect 7 supported leagues Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@ An iOS app for planning multi-stop sports road trips across North America. Plan
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- **Multi-Sport Trip Planning** - Plan trips across 8 professional and college leagues
|
- **Multi-Sport Trip Planning** - Plan trips across 7 professional leagues
|
||||||
- **Three Planning Modes**
|
- **Three Planning Modes**
|
||||||
- **By Date Range** - Find the best games within your travel window
|
- **By Date Range** - Find the best games within your travel window
|
||||||
- **By Must-See Games** - Build a trip around specific matchups you want to attend
|
- **By Must-See Games** - Build a trip around specific matchups you want to attend
|
||||||
@@ -26,7 +26,6 @@ An iOS app for planning multi-stop sports road trips across North America. Plan
|
|||||||
| MLS | Soccer | February - December |
|
| MLS | Soccer | February - December |
|
||||||
| WNBA | Basketball | May - October |
|
| WNBA | Basketball | May - October |
|
||||||
| NWSL | Soccer | March - November |
|
| NWSL | Soccer | March - November |
|
||||||
| CBB | College Basketball | November - April |
|
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
|
|||||||
case mls = "MLS"
|
case mls = "MLS"
|
||||||
case wnba = "WNBA"
|
case wnba = "WNBA"
|
||||||
case nwsl = "NWSL"
|
case nwsl = "NWSL"
|
||||||
case cbb = "CBB"
|
|
||||||
|
|
||||||
var id: String { rawValue }
|
var id: String { rawValue }
|
||||||
|
|
||||||
@@ -27,7 +26,6 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
|
|||||||
case .mls: return "Major League Soccer"
|
case .mls: return "Major League Soccer"
|
||||||
case .wnba: return "Women's National Basketball Association"
|
case .wnba: return "Women's National Basketball Association"
|
||||||
case .nwsl: return "National Women's Soccer League"
|
case .nwsl: return "National Women's Soccer League"
|
||||||
case .cbb: return "College Basketball"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,7 +38,6 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
|
|||||||
case .mls: return "soccerball"
|
case .mls: return "soccerball"
|
||||||
case .wnba: return "basketball.fill"
|
case .wnba: return "basketball.fill"
|
||||||
case .nwsl: return "soccerball"
|
case .nwsl: return "soccerball"
|
||||||
case .cbb: return "basketball.fill"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,7 +50,6 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
|
|||||||
case .mls: return .green
|
case .mls: return .green
|
||||||
case .wnba: return .purple
|
case .wnba: return .purple
|
||||||
case .nwsl: return .teal
|
case .nwsl: return .teal
|
||||||
case .cbb: return .mint
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,7 +63,6 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
|
|||||||
case .mls: return (2, 12) // February - December
|
case .mls: return (2, 12) // February - December
|
||||||
case .wnba: return (5, 10) // May - October
|
case .wnba: return (5, 10) // May - October
|
||||||
case .nwsl: return (3, 11) // March - November
|
case .nwsl: return (3, 11) // March - November
|
||||||
case .cbb: return (11, 4) // November - April (wraps, March Madness)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +82,7 @@ enum Sport: String, Codable, CaseIterable, Identifiable {
|
|||||||
|
|
||||||
/// Currently supported sports
|
/// Currently supported sports
|
||||||
static var supported: [Sport] {
|
static var supported: [Sport] {
|
||||||
[.mlb, .nba, .nfl, .nhl, .mls, .wnba, .nwsl, .cbb]
|
[.mlb, .nba, .nfl, .nhl, .mls, .wnba, .nwsl]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -128,7 +128,6 @@ enum Theme {
|
|||||||
static let mlsGreen = Color(hex: "00A651")
|
static let mlsGreen = Color(hex: "00A651")
|
||||||
static let wnbaPurple = Color(hex: "FF6F20") // WNBA orange
|
static let wnbaPurple = Color(hex: "FF6F20") // WNBA orange
|
||||||
static let nwslTeal = Color(hex: "009688") // NWSL teal
|
static let nwslTeal = Color(hex: "009688") // NWSL teal
|
||||||
static let cbbMint = Color(hex: "3EB489") // College Basketball mint
|
|
||||||
|
|
||||||
// MARK: - Dark Mode Colors
|
// MARK: - Dark Mode Colors
|
||||||
|
|
||||||
|
|||||||
@@ -217,7 +217,6 @@ extension Sport {
|
|||||||
case .mls: return Theme.mlsGreen
|
case .mls: return Theme.mlsGreen
|
||||||
case .wnba: return Theme.wnbaPurple
|
case .wnba: return Theme.wnbaPurple
|
||||||
case .nwsl: return Theme.nwslTeal
|
case .nwsl: return Theme.nwslTeal
|
||||||
case .cbb: return Theme.cbbMint
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ This document describes the SportsTime schedule scraping system, including all d
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
The scraping system (`Scripts/scrape_schedules.py`) fetches game schedules for 8 sports leagues from multiple data sources. It uses a **multi-source fallback architecture** to ensure reliability—if one source fails or returns insufficient data, the system automatically tries backup sources.
|
The scraping system (`Scripts/scrape_schedules.py`) fetches game schedules for 7 sports leagues from multiple data sources. It uses a **multi-source fallback architecture** to ensure reliability—if one source fails or returns insufficient data, the system automatically tries backup sources.
|
||||||
|
|
||||||
## Supported Sports
|
## Supported Sports
|
||||||
|
|
||||||
@@ -17,7 +17,6 @@ The scraping system (`Scripts/scrape_schedules.py`) fetches game schedules for 8
|
|||||||
| WNBA | Women's National Basketball Association | 2025 | ~200 |
|
| WNBA | Women's National Basketball Association | 2025 | ~200 |
|
||||||
| MLS | Major League Soccer | 2025 | ~500 |
|
| MLS | Major League Soccer | 2025 | ~500 |
|
||||||
| NWSL | National Women's Soccer League | 2025 | ~180 |
|
| NWSL | National Women's Soccer League | 2025 | ~180 |
|
||||||
| CBB | NCAA Division I Basketball | 2025-26 | ~5,000+ |
|
|
||||||
|
|
||||||
## Data Sources by Sport
|
## Data Sources by Sport
|
||||||
|
|
||||||
@@ -111,19 +110,6 @@ Each sport has 3 data sources configured in priority order. The scraper tries so
|
|||||||
- ESPN's league ID for NWSL is `usa.nwsl`
|
- ESPN's league ID for NWSL is `usa.nwsl`
|
||||||
- 14 teams, ~180 regular season games
|
- 14 teams, ~180 regular season games
|
||||||
|
|
||||||
### CBB (College Basketball - Division I)
|
|
||||||
|
|
||||||
| Priority | Source | URL Pattern | Min Games |
|
|
||||||
|----------|--------|-------------|-----------|
|
|
||||||
| 1 | ESPN API | `site.api.espn.com/apis/site/v2/sports/basketball/mens-college-basketball/scoreboard` | 1,000 |
|
|
||||||
| 2 | Sports-Reference | `sports-reference.com/cbb/seasons/{year}-schedule.html` | 500 |
|
|
||||||
| 3 | CBS Sports | `cbssports.com/college-basketball/schedule/` | 300 |
|
|
||||||
|
|
||||||
**Notes:**
|
|
||||||
- ~360 Division I teams = 5,000+ games per season
|
|
||||||
- ESPN provides group filtering (D1 = group 50)
|
|
||||||
- Season runs November-April (March Madness)
|
|
||||||
|
|
||||||
## Fallback Architecture
|
## Fallback Architecture
|
||||||
|
|
||||||
### ScraperSource Configuration
|
### ScraperSource Configuration
|
||||||
@@ -196,10 +182,10 @@ python scrape_schedules.py --sport all --season 2026 --output ./custom_data
|
|||||||
|
|
||||||
| Option | Values | Default | Description |
|
| Option | Values | Default | Description |
|
||||||
|--------|--------|---------|-------------|
|
|--------|--------|---------|-------------|
|
||||||
| `--sport` | `nba`, `mlb`, `nhl`, `nfl`, `wnba`, `mls`, `nwsl`, `cbb`, `all` | `all` | Sport(s) to scrape |
|
| `--sport` | `nba`, `mlb`, `nhl`, `nfl`, `wnba`, `mls`, `nwsl`, `all` | `all` | Sport(s) to scrape |
|
||||||
| `--season` | Year (int) | `2026` | Season ending year |
|
| `--season` | Year (int) | `2026` | Season ending year |
|
||||||
| `--stadiums-only` | Flag | False | Only scrape stadium data (legacy method) |
|
| `--stadiums-only` | Flag | False | Only scrape stadium data (legacy method) |
|
||||||
| `--stadiums-update` | Flag | False | Scrape ALL stadium data for all 8 sports |
|
| `--stadiums-update` | Flag | False | Scrape ALL stadium data for all 7 sports |
|
||||||
| `--output` | Path | `./data` | Output directory |
|
| `--output` | Path | `./data` | Output directory |
|
||||||
|
|
||||||
## Output Format
|
## Output Format
|
||||||
|
|||||||
Reference in New Issue
Block a user