cursor rules (#87)

This commit is contained in:
Chuck
2025-09-29 21:42:12 -04:00
committed by GitHub
parent 1b52928e1a
commit e584026bda
12 changed files with 545 additions and 1 deletions

View File

@@ -0,0 +1,109 @@
#!/usr/bin/env python3
"""
Test script to debug NHL manager data fetching issues.
This will help us understand why NHL managers aren't finding games.
"""
import sys
import os
from datetime import datetime, timedelta
import pytz
# Add the src directory to the path so we can import the managers
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'src'))
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
def test_nhl_season_logic():
"""Test the NHL season logic."""
print("Testing NHL season logic...")
now = datetime.now(pytz.utc)
print(f"Current date: {now}")
print(f"Current month: {now.month}")
# Test the off-season logic
if now.month in [6, 7, 8]: # Off-season months (June, July, August)
print("Status: Off-season")
elif now.month == 9: # September
print("Status: Pre-season (should have games)")
elif now.month == 10 and now.day < 15: # Early October
print("Status: Early season")
else:
print("Status: Regular season")
# Test season year calculation
season_year = now.year
if now.month < 9:
season_year = now.year - 1
print(f"Season year: {season_year}")
print(f"Cache key would be: nhl_api_data_{season_year}")
def test_espn_api_direct():
"""Test the ESPN API directly to see what data is available."""
print("\nTesting ESPN API directly...")
import requests
url = "https://site.api.espn.com/apis/site/v2/sports/hockey/nhl/scoreboard"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
# Test with current date range
now = datetime.now(pytz.utc)
start_date = (now - timedelta(days=30)).strftime("%Y%m%d")
end_date = (now + timedelta(days=30)).strftime("%Y%m%d")
date_range = f"{start_date}-{end_date}"
params = {
"dates": date_range,
"limit": 1000
}
try:
response = requests.get(url, params=params, headers=headers, timeout=15)
response.raise_for_status()
data = response.json()
events = data.get('events', [])
print(f"Found {len(events)} events in API response")
if events:
print("Sample events:")
for i, event in enumerate(events[:3]):
print(f" {i+1}. {event.get('name', 'Unknown')} on {event.get('date', 'Unknown')}")
# Check status distribution
status_counts = {}
for event in events:
competitions = event.get('competitions', [])
if competitions:
status = competitions[0].get('status', {}).get('type', {})
state = status.get('state', 'unknown')
status_counts[state] = status_counts.get(state, 0) + 1
print(f"\nStatus distribution:")
for status, count in status_counts.items():
print(f" {status}: {count} games")
else:
print("No events found in API response")
except Exception as e:
print(f"Error testing API: {e}")
def main():
"""Run all tests."""
print("=" * 60)
print("NHL Manager Debug Test")
print("=" * 60)
test_nhl_season_logic()
test_espn_api_direct()
print("\n" + "=" * 60)
print("Debug test complete!")
print("=" * 60)
if __name__ == "__main__":
main()