133 lines
5.1 KiB
Python
133 lines
5.1 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import os,sys,json
|
|
from pprint import pprint
|
|
|
|
def distillRecent8Results(json_manifest, competitionName="Belgian Division 1"):
|
|
# distill results
|
|
json_manifest['statistics']['distilledRecent8Results'] = {}
|
|
json_manifest_distilled = json_manifest['statistics']['distilledRecent8Results']
|
|
json_manifest_distilled['homeTeam'] = []
|
|
distilled_homeTeam = json_manifest_distilled['homeTeam']
|
|
json_manifest_distilled['awayTeam'] = []
|
|
distilled_awayTeam = json_manifest_distilled['awayTeam']
|
|
|
|
recent8Results = json_manifest['recentfrom-information.json']['recent8Results']
|
|
recent8ResultsHomeTeam = json_manifest['recentfrom-information-home-team.json']['recent8Results']
|
|
recent8ResultsAwayTeam = json_manifest['recentfrom-information-away-team.json']['recent8Results']
|
|
|
|
homeTeam = recent8ResultsHomeTeam['homeTeam']
|
|
for result in homeTeam:
|
|
if result['competitionName'] == competitionName and result['homeOrAway'] == "H":
|
|
if (len(distilled_homeTeam)) < 5:
|
|
distilled_homeTeam.append(result)
|
|
|
|
awayTeam = recent8ResultsAwayTeam['awayTeam']
|
|
for result in awayTeam:
|
|
if result['competitionName'] == competitionName and result['homeOrAway'] == "A":
|
|
if (len(distilled_awayTeam)) < 5:
|
|
distilled_awayTeam.append(result)
|
|
|
|
def lookupPositionByTeamName(json_manifest, teamNameToCheck):
|
|
standings_info = json_manifest['tournament/standings.json']['info']
|
|
for standing in standings_info:
|
|
if standing['teamName'] == teamNameToCheck:
|
|
return standing['teamRank']
|
|
|
|
raise Exception(teamNameToCheck)
|
|
return -99
|
|
|
|
def countTotalStandingTeam(json_manifest):
|
|
standings_info = json_manifest['tournament/standings.json']['info']
|
|
|
|
return len(standings_info)
|
|
|
|
def getTopBottomWinningAndLoseing(json_manifest, competitionName):
|
|
json_manifest['statistics'] = {}
|
|
json_manifest['statistics']['top_bottom_winning_losing'] = {}
|
|
result = json_manifest['statistics']['top_bottom_winning_losing']
|
|
|
|
# get statistics
|
|
result['home_top_win_count'] = 0
|
|
result['home_top_draw_count'] = 0
|
|
result['home_top_loss_count'] = 0
|
|
result['home_bottom_win_count'] = 0
|
|
result['home_bottom_draw_count'] = 0
|
|
result['home_bottom_loss_count'] = 0
|
|
|
|
result['away_top_win_count'] = 0
|
|
result['away_top_draw_count'] = 0
|
|
result['away_top_loss_count'] = 0
|
|
result['away_bottom_win_count'] = 0
|
|
result['away_bottom_draw_count'] = 0
|
|
result['away_bottom_loss_count'] = 0
|
|
|
|
# filter all non same tournament
|
|
distillRecent8Results(json_manifest, competitionName)
|
|
|
|
json_manifest_distilled = json_manifest['statistics']['distilledRecent8Results']
|
|
json_manifest_distilled_homeTeam = json_manifest_distilled['homeTeam']
|
|
json_manifest_distilled_awayTeam = json_manifest_distilled['awayTeam']
|
|
|
|
all_team_count = countTotalStandingTeam(json_manifest)
|
|
json_manifest_distilled['allTeamCount'] = all_team_count
|
|
|
|
for entry in json_manifest_distilled_homeTeam:
|
|
oppTeamName = entry['oppTeamName']
|
|
pos = lookupPositionByTeamName(json_manifest, oppTeamName)
|
|
pos = int(pos)
|
|
entry['pos'] = pos
|
|
|
|
if (pos <= (all_team_count / 2)):
|
|
# count home top winning
|
|
if entry['fullTimeResult'] == 'W':
|
|
result['home_top_win_count'] += 1
|
|
# count home top draw
|
|
if entry['fullTimeResult'] == 'D':
|
|
result['home_top_draw_count'] += 1
|
|
# count home top losing
|
|
if entry['fullTimeResult'] == 'L':
|
|
result['home_top_loss_count'] += 1
|
|
else:
|
|
# count home bottom winning
|
|
if entry['fullTimeResult'] == 'W':
|
|
result['home_bottom_win_count'] += 1
|
|
# count home bottom draw
|
|
if entry['fullTimeResult'] == 'D':
|
|
result['home_bottom_draw_count'] += 1
|
|
# count home bottom losing
|
|
if entry['fullTimeResult'] == 'L':
|
|
result['home_bottom_loss_count'] += 1
|
|
|
|
for entry in json_manifest_distilled_awayTeam:
|
|
oppTeamName = entry['oppTeamName']
|
|
pos = lookupPositionByTeamName(json_manifest, oppTeamName)
|
|
pos = int(pos)
|
|
entry['pos'] = pos
|
|
|
|
if (pos <= (all_team_count / 2)):
|
|
# count away top winning
|
|
if entry['fullTimeResult'] == 'W':
|
|
result['away_top_win_count'] += 1
|
|
|
|
# count away top draw
|
|
if entry['fullTimeResult'] == 'D':
|
|
result['away_top_draw_count'] += 1
|
|
|
|
# count away top losing
|
|
if entry['fullTimeResult'] == 'L':
|
|
result['away_top_loss_count'] += 1
|
|
else:
|
|
# count away bottom winning
|
|
if entry['fullTimeResult'] == 'W':
|
|
result['away_bottom_win_count'] += 1
|
|
# count away bottom draw
|
|
if entry['fullTimeResult'] == 'D':
|
|
result['away_bottom_draw_count'] += 1
|
|
# count away bottom losing
|
|
if entry['fullTimeResult'] == 'L':
|
|
result['away_bottom_loss_count'] += 1
|
|
|
|
def helloworld():
|
|
print("helloworld")
|