1
0
mirror of https://gitlab.com/dword4/nhlapi synced 2024-11-22 02:24:54 +00:00

adding script and example output

This commit is contained in:
Drew Hynes 2024-11-03 00:52:31 +00:00
parent 960d9dcb25
commit e9e9e9a76b
2 changed files with 371 additions and 0 deletions

304
scripts/output.md Normal file
View File

@ -0,0 +1,304 @@
0: v1/player-spotlight
method
++++++++++++++++++
1: v1/schedule
resource
now
Example: v1/schedule/now
{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
Example: v1/schedule/{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
++++++++++++++++++
2: v1/standings-season
method
++++++++++++++++++
3: /v1/schedule/playoff-series
resource
++++++++++++++++++
4: /v1/score
resource
now
Example: /v1/score/now
{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
Example: /v1/score/{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
++++++++++++++++++
5: v1/location
method
++++++++++++++++++
6: v1/season
method
++++++++++++++++++
7: v1/skater-stats-leaders
resource
current
Example: v1/skater-stats-leaders/current
{season: [0-9]{8}}/{game-type: [0-9]}
Example: v1/skater-stats-leaders/{season: [0-9]{8}}/{game-type: [0-9]}
++++++++++++++++++
8: v1/where-to-watch
method
++++++++++++++++++
9: v1/club-stats
resource
{team: \w{3}}/now
Example: v1/club-stats/{team: \w{3}}/now
{team: \w{3}}/{season: [0-9]{8}}/{game-type: [0-9]}
Example: v1/club-stats/{team: \w{3}}/{season: [0-9]{8}}/{game-type: [0-9]}
++++++++++++++++++
10: v1/prospects
resource
++++++++++++++++++
11: /v1/postal-lookup
resource
++++++++++++++++++
12: v1/club-schedule-season
resource
{team: \w{3}}/now
Example: v1/club-schedule-season/{team: \w{3}}/now
{team: \w{3}}/{season: [0-9]{8}}
Example: v1/club-schedule-season/{team: \w{3}}/{season: [0-9]{8}}
++++++++++++++++++
13: v1/playoff-series
resource
++++++++++++++++++
14: v1/draft-tracker
resource
++++++++++++++++++
15: /v1/draft/picks
resource
{year: [0-9]{4}}/{round: [0-9]{1,2}}
Example: /v1/draft/picks/{year: [0-9]{4}}/{round: [0-9]{1,2}}
now
Example: /v1/draft/picks/now
{year: [0-9]{4}}/all
Example: /v1/draft/picks/{year: [0-9]{4}}/all
++++++++++++++++++
16: v1/scoreboard
resource
{team: \w{3}}/now
Example: v1/scoreboard/{team: \w{3}}/now
now
Example: v1/scoreboard/now
++++++++++++++++++
17: v1/roster
resource
{team: \w{3}}/current
Example: v1/roster/{team: \w{3}}/current
{team: \w{3}}/{season: [0-9]{8}}
Example: v1/roster/{team: \w{3}}/{season: [0-9]{8}}
++++++++++++++++++
18: v1/club-schedule
resource
{team: \w{3}}/month/now
Example: v1/club-schedule/{team: \w{3}}/month/now
{team: \w{3}}/month/{month: [0-9]{4}-[0-9]{2}}
Example: v1/club-schedule/{team: \w{3}}/month/{month: [0-9]{4}-[0-9]{2}}
{team: \w{3}}/week/{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
Example: v1/club-schedule/{team: \w{3}}/week/{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
{team: \w{3}}/week/now
Example: v1/club-schedule/{team: \w{3}}/week/now
++++++++++++++++++
19: /v1/ppt-replay
resource
/goal/{game-id}/{event-number}
Example: /v1/ppt-replay//goal/{game-id}/{event-number}
{game-id}/{event-number}
Example: /v1/ppt-replay/{game-id}/{event-number}
++++++++++++++++++
20: v1/standings
resource
now
Example: v1/standings/now
{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
Example: v1/standings/{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
++++++++++++++++++
21: v1/player
resource
{player}/game-log/{season: [0-9]{8}}/{game-type: [0-9]}
Example: v1/player/{player}/game-log/{season: [0-9]{8}}/{game-type: [0-9]}
{player}/landing
Example: v1/player/{player}/landing
{player}/game-log/now
Example: v1/player/{player}/game-log/now
++++++++++++++++++
22: v1/roster-season
resource
++++++++++++++++++
23: v1/gamecenter
resource
{game-id: \d+}/play-by-play
Example: v1/gamecenter/{game-id: \d+}/play-by-play
{game-id: \d+}/right-rail
Example: v1/gamecenter/{game-id: \d+}/right-rail
{game-id: \d+}/landing
Example: v1/gamecenter/{game-id: \d+}/landing
{game-id: \d+}/boxscore
Example: v1/gamecenter/{game-id: \d+}/boxscore
++++++++++++++++++
24: v1/meta
method
resource
playoff-series/{year}/{series_letter}
Example: v1/meta/playoff-series/{year}/{series_letter}
game/{game-id: \d+}
Example: v1/meta/game/{game-id: \d+}
++++++++++++++++++
25: v1/wsc/game-story
resource
++++++++++++++++++
26: v1/goalie-stats-leaders
resource
current
Example: v1/goalie-stats-leaders/current
{season: [0-9]{8}}/{game-type: [0-9]}
Example: v1/goalie-stats-leaders/{season: [0-9]{8}}/{game-type: [0-9]}
++++++++++++++++++
27: /v1/draft/rankings
resource
{year}/{category}
Example: /v1/draft/rankings/{year}/{category}
now
Example: /v1/draft/rankings/now
++++++++++++++++++
28: v1/playoff-bracket
resource
++++++++++++++++++
29: /v1/partner-game/{country-code}/now
param
method
++++++++++++++++++
30: v1/network
resource
tv-schedule/{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
Example: v1/network/tv-schedule/{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
tv-schedule/now
Example: v1/network/tv-schedule/now
++++++++++++++++++
31: model/v1/openapi.json
method
++++++++++++++++++
32: v1/schedule-calendar
resource
now
Example: v1/schedule-calendar/now
{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
Example: v1/schedule-calendar/{date: [0-9]{4}-[0-9]{2}-[0-9]{2}}
++++++++++++++++++
33: v1/club-stats-season
resource
++++++++++++++++++
34: application.wadl
method
resource
jersey:extended
++++++++++++++++++

67
scripts/wadl-map.py Normal file
View File

@ -0,0 +1,67 @@
import requests
import xmltodict
import json
url = "https://api-web.nhle.com/application.wadl?detail=true"
attributes = [
"@path",
"@base",
"@href",
"@id",
"@itsn",
"@jersey",
"@mediaType",
"@name",
"@path",
"@style",
"@title",
"@type",
"@xml",
"@xmlns"
]
def remove_at_symbols(data):
if isinstance(data, dict):
# Process each key-value pair in the dictionary
new_data = {}
for key, value in data.items():
# Remove @ symbol from the key
new_key = key.lstrip('@')
new_data[new_key] = remove_at_symbols(value)
return new_data
elif isinstance(data, list):
# Process each item in the list
return [remove_at_symbols(item) for item in data]
else:
# Return data as-is if it's not a dict or list
return data
reps = []
for a in attributes:
line_item = {"target":f"{a}", "new":f"{a[1:]}"}
reps.append(line_item)
res_plain = requests.get(url)
res_cleaned = res_plain.text.replace("@", "")
for l in reps:
res_cleaned = res_cleaned.replace(f'{l["target"]}', f'{l["new"]}')
new_json = xmltodict.parse(res_cleaned)
cleaned = remove_at_symbols(new_json)
i = 0
for line in cleaned['application']['resources']['resource']:
for item in line:
if item == "path":
print(f"{i}: {line['path']}")
elif item == "resource" and isinstance(line[item], list):
print(f"{item}")
for sub_item in line[item]:
print(f"\t{sub_item['path']}")
print(f"\tExample: {line['path']}/{sub_item['path']}\n")
else:
print(f"{item}")
print("\n++++++++++++++++++\n")
i += 1