Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 18802f6ef5 | |||
| 4304954bc3 | |||
| 90cccf581a | |||
| a3ee38d774 | |||
| 5beb7e2b44 | |||
| c926821e1a | |||
| a21bb3cdcc | |||
| 148bdaefc4 | |||
| e645cb2b08 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,7 +1,7 @@
|
|||||||
/nhle_scoreboard_response.txt
|
/nhle_scoreboard_response.txt
|
||||||
/nhle_standings_response.txt
|
/nhle_standings_response.txt
|
||||||
/nhl_standings.db
|
/app/data/nhl_standings.db
|
||||||
/scoreboard_data.json
|
/app/data/scoreboard_data.json
|
||||||
/__pycache__
|
/__pycache__
|
||||||
/app/__pycache__
|
/app/__pycache__
|
||||||
/app/scoreboard/__pycache__
|
/app/scoreboard/__pycache__
|
||||||
|
|||||||
@@ -14,6 +14,9 @@ COPY . /app
|
|||||||
# Install any needed dependencies specified in requirements.txt
|
# Install any needed dependencies specified in requirements.txt
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
# Create the directory for scoreboard data
|
||||||
|
RUN mkdir -p app/data
|
||||||
|
|
||||||
# Expose the Flask port
|
# Expose the Flask port
|
||||||
EXPOSE 2897
|
EXPOSE 2897
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ This web application displays live NHL game scores, team statistics, and game st
|
|||||||
3. Run the application:
|
3. Run the application:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python app.py
|
python run.py
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Open your web browser and navigate to `http://localhost:2897` to view the scoreboard.
|
4. Open your web browser and navigate to `http://localhost:2897` to view the scoreboard.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from flask import render_template, jsonify
|
|||||||
from app.scoreboard.process_data import extract_game_info
|
from app.scoreboard.process_data import extract_game_info
|
||||||
import json
|
import json
|
||||||
|
|
||||||
SCOREBOARD_DATA_FILE = 'scoreboard_data.json'
|
SCOREBOARD_DATA_FILE = 'app/data/scoreboard_data.json'
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def index():
|
def index():
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import requests
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import json
|
import json
|
||||||
|
|
||||||
SCOREBOARD_DATA_FILE = 'scoreboard_data.json'
|
SCOREBOARD_DATA_FILE = 'app/data/scoreboard_data.json'
|
||||||
|
|
||||||
def get_scoreboard_data():
|
def get_scoreboard_data():
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ def extract_game_info(scoreboard_data):
|
|||||||
|
|
||||||
extracted_info = []
|
extracted_info = []
|
||||||
for game in scoreboard_data.get("games", []):
|
for game in scoreboard_data.get("games", []):
|
||||||
|
game_state = convert_game_state(game["gameState"])
|
||||||
extracted_info.append({
|
extracted_info.append({
|
||||||
"Home Team": game["homeTeam"]["name"]["default"],
|
"Home Team": game["homeTeam"]["name"]["default"],
|
||||||
"Home Score": game["homeTeam"]["score"],
|
"Home Score": game["homeTeam"]["score"],
|
||||||
@@ -14,7 +15,7 @@ def extract_game_info(scoreboard_data):
|
|||||||
"Away Score": game["awayTeam"]["score"],
|
"Away Score": game["awayTeam"]["score"],
|
||||||
"Home Logo": game["homeTeam"]["logo"],
|
"Home Logo": game["homeTeam"]["logo"],
|
||||||
"Away Logo": game["awayTeam"]["logo"],
|
"Away Logo": game["awayTeam"]["logo"],
|
||||||
"Game State": convert_game_state(game["gameState"]),
|
"Game State": game_state,
|
||||||
"Period": process_period(game),
|
"Period": process_period(game),
|
||||||
"Time Remaining": process_time_remaining(game),
|
"Time Remaining": process_time_remaining(game),
|
||||||
"Time Running": game["clock"]["running"],
|
"Time Running": game["clock"]["running"],
|
||||||
@@ -27,7 +28,7 @@ def extract_game_info(scoreboard_data):
|
|||||||
"Away Shots": game["awayTeam"]["sog"] if game["gameState"] not in ["PRE", "FUT"] else 0,
|
"Away Shots": game["awayTeam"]["sog"] if game["gameState"] not in ["PRE", "FUT"] else 0,
|
||||||
"Home Power Play": get_power_play_info(game, game["homeTeam"]["name"]["default"]),
|
"Home Power Play": get_power_play_info(game, game["homeTeam"]["name"]["default"]),
|
||||||
"Away Power Play": get_power_play_info(game, game["awayTeam"]["name"]["default"]),
|
"Away Power Play": get_power_play_info(game, game["awayTeam"]["name"]["default"]),
|
||||||
"Last Period Type": get_game_outcome(game)
|
"Last Period Type": get_game_outcome(game, game_state)
|
||||||
})
|
})
|
||||||
|
|
||||||
# Sort games based on priority
|
# Sort games based on priority
|
||||||
@@ -70,8 +71,8 @@ def get_power_play_info(game, team_name):
|
|||||||
return f"PP {game['situation']['timeRemaining']}"
|
return f"PP {game['situation']['timeRemaining']}"
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
def get_game_outcome(game):
|
def get_game_outcome(game, game_state):
|
||||||
return game["gameOutcome"]["lastPeriodType"] if game["gameState"] == "FINAL" else "N/A"
|
return game["gameOutcome"]["lastPeriodType"] if game_state == "FINAL" else "N/A"
|
||||||
|
|
||||||
def calculate_game_priority(game):
|
def calculate_game_priority(game):
|
||||||
# Return 0 if game is in certain states
|
# Return 0 if game is in certain states
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ def extract_standings_info():
|
|||||||
|
|
||||||
def update_nhl_standings():
|
def update_nhl_standings():
|
||||||
# Connect to SQLite database
|
# Connect to SQLite database
|
||||||
conn = sqlite3.connect("nhl_standings.db")
|
conn = sqlite3.connect("app/data/nhl_standings.db")
|
||||||
|
|
||||||
# Create standings table if it doesn't exist
|
# Create standings table if it doesn't exist
|
||||||
create_standings_table(conn)
|
create_standings_table(conn)
|
||||||
|
|||||||
Reference in New Issue
Block a user