gamedata30day / app.py
eaglelandsonce's picture
Update app.py
fb4aa06
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()