Spaces:
Sleeping
Sleeping
File size: 1,417 Bytes
976e983 ce0caba 976e983 ce0caba fb4aa06 ce0caba fb4aa06 976e983 fb4aa06 976e983 ce0caba fb4aa06 976e983 ce0caba 976e983 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
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()
|