Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
import pandas as pd | |
from datetime import datetime, timedelta | |
import os | |
def fetch_games_by_date(date, api_key): | |
url = f"https://api.sportsdata.io/v3/nba/scores/json/GamesByDate/{date}?key={api_key}" | |
response = requests.get(url) | |
if response.status_code == 200: | |
return response.json() | |
else: | |
return None | |
def last_30_days_data(api_key): | |
all_games = [] | |
for days_ago in range(30): | |
date = (datetime.now() - timedelta(days=days_ago)).strftime("%Y-%m-%d") | |
games = fetch_games_by_date(date, api_key) | |
if games: | |
all_games.extend(games) | |
return all_games | |
def fetch_and_display_data(): | |
api_key = os.getenv('NBA_API_KEY') | |
if api_key: | |
games_data = last_30_days_data(api_key) | |
if games_data: | |
df = pd.DataFrame(games_data) | |
csv_file_path = '/tmp/nba_games_last_30_days.csv' | |
df.to_csv(csv_file_path, index=False) | |
return df, csv_file_path | |
else: | |
return "No data available.", None | |
else: | |
return "API Key not set.", None | |
interface = gr.Interface( | |
fn=fetch_and_display_data, | |
inputs=[], | |
outputs=["dataframe", "file"], | |
title="NBA Games Data Fetcher", | |
description="Fetches the last 30 days of NBA games data. Make sure your API key is set in the environment variable 'NBA_API_KEY'." | |
) | |
interface.launch() | |