When does an NHL game really start? [on hold]

Planning to watch an NHL game in Toronto. What does the published time indicate? Is it when pre-game ceremonies begin (player presentations, national anthems, etc.) or when the real game is supposed to take place?

Blues vs Sharks Live Stream NHL Playoffs 2019

https://medium.com/@christinejcaste…jose-sharks-live-online-coverage-1c0a711ab6a1

NHL Hockey Scores – NHL Scoreboard – ESPN https://livevsports-tv.de/warriorsvstitans/

NHL Hockey Scores – NHL Score – ESPN
https://livevsports-tv.de/warriorsvstitans/
https://livevsports-tv.de/panthersvstigers/
—————–
https://livevsports-tv.de/76ersvsbucks/
https://livevsports-tv.de/kingsvscavaliers/
https://livevsports-tv.de/lakersvswarriors/
——————-
https://livevsports-tv.de/melvsess/
——————–
https: //livevsports-tv.de/greenbayvsmarshall / …

NHL Hockey Scores – NHL Scoreboard – ESPN https://livevsports-tv.de/warriorsvstitans/

python – NHL Skaters Command Line Statistics Tool

They have been playing with the undocumented NHL API for a few days. I would love to see any entry about this little script. About general structure, style, performance improvements, etc. I'm not sure how to correctly use long links in Python. Should I follow the PEP in this case? The same problem in a couple of other lines, exceeds the limit of 79 symbols. I'm not sure if I should use the advantages in the lines & # 39; printed_info & # 39 ;, it behaves the same way without it, but some say it's more explicit, so it's better.

import requests
import json
import os
import collections
import time
Import date and time


def basic_bio ():
api_basic_bio = "http://www.nhl.com/stats/rest/skaters?isAggregate=false&reportType=basic&isGame=false&reportName=skaterpercentages&cayenneExp=gameTypeId=2%20and%20seasonId=20182019"

json_data = requests.get (api_basic_bio) .json ()
basic_full_bio_list = json_data["data"]
    return basic_full_bio_list


def lastnames ():
list_lastnames = []
    players_range = rank (len (basic_bio ()))
json_bios = basic_bio ()

for the number in players_range:
list_lastnames.append ((json_bios[number]["playerLastName"]).lower())

return list_lastnames


def duplicate_last_names ():
last_names_count = collections.Counter (lastnames ())
dup_last_names = {k: v for k, v in last_names_count.items () if v> 1}
returns dup_last_names


def get_id_name_dict ():
players_id_dict = {}
players_range = rank (len (basic_bio ()))
dups = duplicate_last_names ()
skaters = basic_bio ()

for the number in players_range:
yes (skaters)[number]["playerLastName"]) .lower () in dups:
players_id_dict

the skaters[skaters[skaters[number]["playerName"].lower()]= skaters[number]["playerId"]
        
        
        
        plus:
players_id_dict

the skaters[skaters[skaters[number]["playerLastName"].lower()]= skaters[number]["playerId"]

    

    

    

    with open (& # 39; nhl_skaters_id.json & # 39 ;, & # 39; w & # 39;) as file:
file.write (json.dumps (players_id_dict, indent = 4, sort_keys = True))


def get_id (player_lastname):
with open (& # 39; nhl_skaters_id.json & # 39;) as file:
data = json.load (file)
dups = duplicate_last_names ()

if player_lastname in dups:
player_firstname = input ("Enter a player's first name:") .lower ()
return data[player_firstname + ' ' + player_lastname]
    plus:
return data[player_lastname]


def get_stats (id):
api_base = & # 39; https: //statsapi.web.nhl.com/api/v1/people/&###;
api_end = & # 39 ;? hydrate = stats (splits = statsSingleSeason) & # 39;
url = & # 39; & # 39; .join ([api_base, str(id), api_end])
json_data = requests.get (url) .json ()
stats = json_data["people"]
    return statistics


def show_stats (data):
path_stats = data[0]['stats'][0]['splits'][0]['stat']
    
    
    
    path_bio = data[0]

    printed_info = (f "Name: {ruta_bio['fullName']}  n  n "+
f "Date of birth: {path_bio['birthDate']}  n "+
f "Height: {ruta_bio['height']}  n "+
f "Weight: {path_bio['weight']}  n  n "+
f "Games: {path_stats['games']}  n "+
f "Objectives: {path_stats['goals']}  n "+
f "Assists: {path_stats['assists']}  n "+
f "Points: {path_stats['points']}  n "+
f "PP Points: {path_stats['powerPlayPoints']}  n "+
f "More-less: {path_stats['plusMinus']}  n "+
F "Shots: {path_stats['shots']}  n "+
F "Hits: {path_stats['hits']}  n "+
f "Blocks: {path_stats['blocked']}  n "+
f "Penalty Minutes: {path_stats['pim']}  n "+
f "TOI per game: {path_stats['timeOnIcePerGame']}  n "+
f "PP TOI per game: {path_stats['powerPlayTimeOnIcePerGame']}  n "+
f "SH TOI per game: {path_stats['shortHandedTimeOnIcePerGame']}north")

print (printed_info)


def data_old (file_name):
one_day_ago = datetime.datetime.now () - datetime.timedelta (days = 1)
filetime = datetime.datetime.fromtimestamp (os.path.getmtime (file_name))

if filetime <one_day_ago:
return true
plus:
false return


player_lastname = input ("Enter the player's last name:") .lower ()

if os.path.isfile (& # 39; nhl_skaters_id.json & # 39;) == False or data_old (& # 39; nhl_skaters_id.json & # 39;) == True:
get_id_name_dict ()

try:
data = get_stats (get_id (player_lastname))
printing (& # 39; ----------------------------- & # 39;)
show_stats (data)
except exception:
print (f "{player_lastname.capitalize ()} did not play any NHL game this season")