|
|
|
|
import os
|
|
|
|
|
import re
|
|
|
|
|
from xml.etree.ElementTree import Element, SubElement, ElementTree
|
|
|
|
|
from server import process_pb2
|
|
|
|
|
import pymysql
|
|
|
|
|
import yaml
|
|
|
|
|
|
|
|
|
|
yamlPath = os.path.join(os.path.split(os.path.realpath(__file__))[0], '../config/application.yaml')
|
|
|
|
|
f = open(yamlPath, 'r', encoding='utf-8')
|
|
|
|
|
x = yaml.load(f, Loader=yaml.FullLoader)
|
|
|
|
|
|
|
|
|
|
match_info = {}
|
|
|
|
|
teamHost = {}
|
|
|
|
|
hostPlayerSpam = []
|
|
|
|
|
teamGuest = {}
|
|
|
|
|
guestPlayerSpam = []
|
|
|
|
|
teamHost['Players'] = 0
|
|
|
|
|
teamGuest['Players'] = 0
|
|
|
|
|
filename = "Stats1.xml"
|
|
|
|
|
text_eq1 = 'Beijing Guoan'
|
|
|
|
|
text_eq2 = 'Guangzhou Evergrande'
|
|
|
|
|
text_journee = '1'
|
|
|
|
|
text_competition = 'Chinese Friendly matches'
|
|
|
|
|
attrib1_competition = '01/01/2015'
|
|
|
|
|
attrib2_competition = '31/12/2015'
|
|
|
|
|
text_date = '27/03/2015'
|
|
|
|
|
text_stade = 'Beijing Fengtai Stadium'
|
|
|
|
|
text_heure = '19:35'
|
|
|
|
|
text_couleq1 = '#FFFFFF'
|
|
|
|
|
text_couleq2 = '#FFC0CB'
|
|
|
|
|
attrib1_codematch = '20207242'
|
|
|
|
|
text_codematch = 'BEIJI-LUNEN-270315-1'
|
|
|
|
|
text_tempsDeJeu = '23:45'
|
|
|
|
|
text_tempsEffectif = '12:34'
|
|
|
|
|
text_statut = 'pas commence'
|
|
|
|
|
int_scoreA_match = 2
|
|
|
|
|
int_scoreB_match = 3
|
|
|
|
|
int_equipeA_rapportForce5Min_attrib = 50
|
|
|
|
|
text_equipeA_rapportForce5Min = 'Beijing Guoan'
|
|
|
|
|
text_equipeA_tempsPossession = '30:00'
|
|
|
|
|
int_equipeB_rapportForce5Min_attrib = 50
|
|
|
|
|
text_equipeB_rapportForce5Min = 'Guangzhou Evergrande'
|
|
|
|
|
text_equipeB_tempsPossession = '00:00'
|
|
|
|
|
|
|
|
|
|
int_equipeA_pctPossession = 0
|
|
|
|
|
int_equipeA_ballonJoue = 11
|
|
|
|
|
int_equipeA_ballonGagne = 22
|
|
|
|
|
int_equipeA_ballonPerdu = 33
|
|
|
|
|
int_equipeA_passe = 44
|
|
|
|
|
int_equipeA_passeReussie = 45
|
|
|
|
|
int_equipeA_pctPasseReussie = 0
|
|
|
|
|
int_equipeA_occasion = 0
|
|
|
|
|
int_equipeA_tir = 0
|
|
|
|
|
int_equipeA_tirCadre = 0
|
|
|
|
|
int_equipeA_tirNonCadre = 0
|
|
|
|
|
int_equipeA_pctTirsCadres = 0
|
|
|
|
|
int_equipeA_but = 0
|
|
|
|
|
int_equipeA_butSurPenalty = 0
|
|
|
|
|
int_equipeA_butContreSonCamp = 0
|
|
|
|
|
int_equipeA_horsJeu = 0
|
|
|
|
|
int_equipeA_cornerEffectue = 0
|
|
|
|
|
int_equipeA_toucheEffectuee = 0
|
|
|
|
|
int_equipeA_centreEffectue = 0
|
|
|
|
|
int_equipeA_coupFrancEffectue = 0
|
|
|
|
|
int_equipeA_sortieDeButEffectuee = 0
|
|
|
|
|
int_equipeA_penalty = 0
|
|
|
|
|
int_equipeA_fauteSubie = 0
|
|
|
|
|
int_equipeA_fauteCommise = 0
|
|
|
|
|
int_equipeA_tacle = 0
|
|
|
|
|
int_equipeA_cartonJaune = 0
|
|
|
|
|
int_equipeA_cartonRouge = 0
|
|
|
|
|
text_equipeA_entraineur = ''
|
|
|
|
|
|
|
|
|
|
int_equipeB_pctPossession = 0
|
|
|
|
|
int_equipeB_ballonJoue = 3
|
|
|
|
|
int_equipeB_ballonGagne = 6
|
|
|
|
|
int_equipeB_ballonPerdu = 9
|
|
|
|
|
int_equipeB_passe = 12
|
|
|
|
|
int_equipeB_passeReussie = 0
|
|
|
|
|
int_equipeB_pctPasseReussie = 0
|
|
|
|
|
int_equipeB_occasion = 0
|
|
|
|
|
int_equipeB_tir = 11
|
|
|
|
|
int_equipeB_tirCadre = 8
|
|
|
|
|
int_equipeB_tirNonCadre = 10
|
|
|
|
|
int_equipeB_pctTirsCadres = 0
|
|
|
|
|
int_equipeB_but = 7
|
|
|
|
|
int_equipeB_butSurPenalty = 0
|
|
|
|
|
int_equipeB_butContreSonCamp = 0
|
|
|
|
|
int_equipeB_horsJeu = 0
|
|
|
|
|
int_equipeB_cornerEffectue = 0
|
|
|
|
|
int_equipeB_toucheEffectuee = 0
|
|
|
|
|
int_equipeB_centreEffectue = 0
|
|
|
|
|
int_equipeB_coupFrancEffectue = 0
|
|
|
|
|
int_equipeB_sortieDeButEffectuee = 0
|
|
|
|
|
int_equipeB_penalty = 0
|
|
|
|
|
int_equipeB_fauteSubie = 0
|
|
|
|
|
int_equipeB_fauteCommise = 0
|
|
|
|
|
int_equipeB_tacle = 0
|
|
|
|
|
int_equipeB_cartonJaune = 0
|
|
|
|
|
int_equipeB_cartonRouge = 0
|
|
|
|
|
text_equipeB_entraineur = ''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CreateXml:
|
|
|
|
|
|
|
|
|
|
def __init__(self, match_id):
|
|
|
|
|
self.match_id = match_id
|
|
|
|
|
|
|
|
|
|
def run_create_xml(self):
|
|
|
|
|
db = pymysql.connect(host=x.get('databases').get('url') + '', user=x.get('databases').get('name'), password=x.get('databases').get('password'),
|
|
|
|
|
database=x.get('databases').get('database'))
|
|
|
|
|
# db = pymysql.connect(x.get('databases').get('url'),
|
|
|
|
|
# x.get('databases').get('name'),
|
|
|
|
|
# x.get('databases').get('password'),
|
|
|
|
|
# x.get('databases').get('database')
|
|
|
|
|
# )
|
|
|
|
|
self.fetch_data_from_database(self.match_id, db)
|
|
|
|
|
tree = self.create_xml()
|
|
|
|
|
self.update_xml(tree)
|
|
|
|
|
tree.write(x.get('file').get('path') + filename, encoding='utf-8', xml_declaration=True,
|
|
|
|
|
short_empty_elements=False)
|
|
|
|
|
self.clean_list()
|
|
|
|
|
return process_pb2.XmlResult(
|
|
|
|
|
status="1"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def GetTimeString(self, time_in_mil_secs):
|
|
|
|
|
time_in_secs = int(time_in_mil_secs / 1000)
|
|
|
|
|
n_min = int(time_in_secs / 60)
|
|
|
|
|
n_sec = int(time_in_secs - n_min * 60)
|
|
|
|
|
if n_min == 0 or n_sec == 0:
|
|
|
|
|
return ""
|
|
|
|
|
return str(n_min) + ':' + str(n_sec).rjust(2, '0')
|
|
|
|
|
|
|
|
|
|
def pretty_xml(self, element, indent, newline, level=0): # elemnt为传进来的Elment类,参数indent用于缩进,newline用于换行
|
|
|
|
|
if element: # 判断element是否有子元素
|
|
|
|
|
if (element.text is None) or element.text.isspace(): # 如果element的text没有内容
|
|
|
|
|
element.text = newline + indent * (level + 1)
|
|
|
|
|
else:
|
|
|
|
|
element.text = newline + indent * (level + 1) + element.text.strip() + newline + indent * (level + 1)
|
|
|
|
|
# else: # 此处两行如果把注释去掉,Element的text也会另起一行
|
|
|
|
|
# element.text = newline + indent * (level + 1) + element.text.strip() + newline + indent * level
|
|
|
|
|
temp = list(element) # 将element转成list
|
|
|
|
|
for subelement in temp:
|
|
|
|
|
if temp.index(subelement) < (len(temp) - 1): # 如果不是list的最后一个元素,说明下一个行是同级别元素的起始,缩进应一致
|
|
|
|
|
subelement.tail = newline + indent * (level + 1)
|
|
|
|
|
else: # 如果是list的最后一个元素, 说明下一行是母元素的结束,缩进应该少一个
|
|
|
|
|
subelement.tail = newline + indent * level
|
|
|
|
|
self.pretty_xml(subelement, indent, newline, level=level + 1) # 对子元素进行递归操作
|
|
|
|
|
|
|
|
|
|
def create_xml(self):
|
|
|
|
|
global teamHost, teamGuest
|
|
|
|
|
element_list = []
|
|
|
|
|
tree = ElementTree()
|
|
|
|
|
statistiques = Element('statistiques')
|
|
|
|
|
tree._setroot(statistiques)
|
|
|
|
|
|
|
|
|
|
identite = SubElement(statistiques, 'identite')
|
|
|
|
|
identite_sub_element = ['eq1', 'eq2', 'journee', 'competition', 'date', 'stade', 'heure',
|
|
|
|
|
'arbitre', 'arbitre1', 'arbitre2', 'arbitre3', 'source', 'couleq1', 'couleq2',
|
|
|
|
|
'codematch']
|
|
|
|
|
|
|
|
|
|
for i in range(len(identite_sub_element)):
|
|
|
|
|
element_list.append(SubElement(identite, identite_sub_element[i]))
|
|
|
|
|
|
|
|
|
|
match = SubElement(statistiques, 'match')
|
|
|
|
|
match_sub_element = ['tempsDeJeu', 'tempsEffectif', 'statut', 'scoreA', 'scoreB', 'remplacement', 'buteur']
|
|
|
|
|
for i in range(len(match_sub_element)):
|
|
|
|
|
element_list.append(SubElement(match, match_sub_element[i]))
|
|
|
|
|
score_ab = ['scoreA', 'scoreB']
|
|
|
|
|
score_ab_sub_element = ['miTemps', 'match']
|
|
|
|
|
for i in range(len(score_ab)):
|
|
|
|
|
for j in range(len(score_ab_sub_element)):
|
|
|
|
|
element_list.append(SubElement(next(tree.iter(score_ab[i])), score_ab_sub_element[j]))
|
|
|
|
|
remplace_ab_sub_element = ['remplaceEquipeA', 'remplaceEquipeB']
|
|
|
|
|
for i in range(len(remplace_ab_sub_element)):
|
|
|
|
|
element_list.append(SubElement(next(tree.iter('remplacement')), remplace_ab_sub_element[i]))
|
|
|
|
|
buteur_ab_sub_element = ['equipeA', 'equipeB']
|
|
|
|
|
for i in range(len(buteur_ab_sub_element)):
|
|
|
|
|
element_list.append(SubElement(next(tree.iter('buteur')), buteur_ab_sub_element[i]))
|
|
|
|
|
|
|
|
|
|
equipes = SubElement(statistiques, 'equipes')
|
|
|
|
|
equipes_sub_element = ['equipeA', 'equipeB']
|
|
|
|
|
for i in range(len(equipes_sub_element)):
|
|
|
|
|
element_list.append(SubElement(equipes, equipes_sub_element[i]))
|
|
|
|
|
|
|
|
|
|
equipe_ab_sub_element = ['collective', 'individuelle']
|
|
|
|
|
for j in range(len(equipe_ab_sub_element)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i]
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), equipe_ab_sub_element[j]))
|
|
|
|
|
|
|
|
|
|
collective_sub_element = ['nomEquipe', 'tempsPossession', 'pctPossession', 'ballonJoue',
|
|
|
|
|
'ballonGagne', 'ballonPerdu', 'passe', 'passeReussie', 'pctPasseReussie',
|
|
|
|
|
'occasion',
|
|
|
|
|
'tir', 'tirCadre', 'tirNonCadre', 'pctTirsCadres', 'but', 'butSurPenalty',
|
|
|
|
|
'butContreSonCamp',
|
|
|
|
|
'horsJeu', 'cornerEffectue', 'toucheEffectuee', 'centreEffectue',
|
|
|
|
|
'coupFrancEffectue',
|
|
|
|
|
'sortieDeButEffectuee', 'penalty', 'fauteSubie', 'fauteCommise', 'tacle',
|
|
|
|
|
'cartonJaune',
|
|
|
|
|
'cartonRouge', 'entraineur', 'possessionZone', 'possessionTemps', 'tirZone',
|
|
|
|
|
'attaqueZone',
|
|
|
|
|
'nbPassesParAttaque', 'vitesseAttaque', 'attaquesEtTirs', 'zoneRecuperation',
|
|
|
|
|
'vitesseRecuperation',
|
|
|
|
|
'zoneRecuperationRapide', 'zoneRecuperationEnJeu',
|
|
|
|
|
'zoneRecuperationAvecAttaqueRapide',
|
|
|
|
|
'zoneFauteSubie', 'zoneFauteCommise', 'directionPasse', 'centre', 'longueurPasse']
|
|
|
|
|
for collective_i in range(len(collective_sub_element)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), collective_sub_element[collective_i]))
|
|
|
|
|
|
|
|
|
|
individuelleSUbElement = ['nom', 'prenom', 'numeroMaillot', 'nomUsuel', 'capitaine', 'lequipe',
|
|
|
|
|
'poste', 'bloc', 'tempsJoue', 'tempsDePossession', 'ballonJoue', 'ballonGagne',
|
|
|
|
|
'ballonPerdu',
|
|
|
|
|
'passe', 'passeReussie', 'pctPasseReussie', 'passeDecisive', 'occasion', 'tir',
|
|
|
|
|
'tirPiedGauche',
|
|
|
|
|
'tirPiedDroit', 'tirTete', 'tirCadre', 'tirNonCadre', 'pctTirCadre', 'butMarque',
|
|
|
|
|
'butSurPenalty',
|
|
|
|
|
'butContreSonCamp', 'horsJeu', 'cornerEffectue', 'toucheEffectuee',
|
|
|
|
|
'centreEffectue',
|
|
|
|
|
'coupFrancEffectue',
|
|
|
|
|
'sortieDeButEffectuee', 'penaltyEffectue', 'fauteSubie', 'fauteCommise', 'tacle',
|
|
|
|
|
'uneTouche', 'gardienArret',
|
|
|
|
|
'gardienDetournement', 'gardienArretTotal', 'cartonJaune1', 'cartonJaune2',
|
|
|
|
|
'cartonRouge', 'tirZone',
|
|
|
|
|
'directionPasse', 'positionMoyenne', 'possessionInd', 'zoneFauteSubie',
|
|
|
|
|
'zoneFauteCommise', 'zoneTacle',
|
|
|
|
|
'circuitPref']
|
|
|
|
|
if teamHost['Players'] != 0:
|
|
|
|
|
for _ in hostPlayerSpam:
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'individuelle'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), 'joueur'))
|
|
|
|
|
children = [
|
|
|
|
|
Element(str(ele))
|
|
|
|
|
for ele in individuelleSUbElement
|
|
|
|
|
]
|
|
|
|
|
element_list[-1].extend(children)
|
|
|
|
|
|
|
|
|
|
# possessionZone
|
|
|
|
|
possession_zone_sub_element = ['A1', 'A2', 'A3', 'A4', 'B1', 'B2', 'B3', 'B4', 'C1', 'C2', 'C3', 'C4',
|
|
|
|
|
'D1', 'D2', 'D3', 'D4', 'A1A4', 'B1C4', 'D1D4', 'A1D1', 'A2D2', 'A3D3',
|
|
|
|
|
'A4D4',
|
|
|
|
|
'A1B4', 'C1D4']
|
|
|
|
|
for possessionZone_i in range(len(possession_zone_sub_element)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'possessionZone'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), possession_zone_sub_element[possessionZone_i]))
|
|
|
|
|
possession_zone_a1_d4_sub_element = ['pct', 'temps']
|
|
|
|
|
elementloc += '/'
|
|
|
|
|
elementloc += possession_zone_sub_element[possessionZone_i]
|
|
|
|
|
for possessionZone_A1D4_i in range(len(possession_zone_a1_d4_sub_element)):
|
|
|
|
|
element_list.append(
|
|
|
|
|
SubElement(tree.find(elementloc), possession_zone_a1_d4_sub_element[possessionZone_A1D4_i]))
|
|
|
|
|
if possession_zone_a1_d4_sub_element[possessionZone_A1D4_i] == 'temps':
|
|
|
|
|
element_list[-1].text = '00:00'
|
|
|
|
|
|
|
|
|
|
# possessionTemps
|
|
|
|
|
possession_temps_sub_element = ['tps_0_15', 'tps_15_30', 'tps_30_45', 'tps_45plus', 'tps_45_60',
|
|
|
|
|
'tps_60_75', 'tps_75_90', 'tps_90plus', 'tps_0_90plus']
|
|
|
|
|
for possessionTemps_i in range(len(possession_temps_sub_element)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'possessionTemps'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), possession_temps_sub_element[possessionTemps_i]))
|
|
|
|
|
temps_sub_element = ['pct', 'temps']
|
|
|
|
|
elementloc += '/'
|
|
|
|
|
elementloc += possession_temps_sub_element[possessionTemps_i]
|
|
|
|
|
for TempsSubElement_i in range(len(temps_sub_element)):
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), temps_sub_element[TempsSubElement_i]))
|
|
|
|
|
|
|
|
|
|
# tirZone
|
|
|
|
|
tir_zone_sub_element = ['zone1', 'zone2', 'zone3', 'zone4', 'zone5', 'zone6', 'zone1_5']
|
|
|
|
|
for tirZoneTemps_i in range(len(tir_zone_sub_element)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'tirZone'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), tir_zone_sub_element[tirZoneTemps_i]))
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
|
|
|
|
|
# attaqueZone
|
|
|
|
|
attaque_zone_sub_element = ['nbGauche', 'nbMilieu', 'nbDroite', 'pctGauche', 'pctMilieu', 'pctDroite']
|
|
|
|
|
for attaqueZone_i in range(len(attaque_zone_sub_element)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'attaqueZone'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), attaque_zone_sub_element[attaqueZone_i]))
|
|
|
|
|
if attaque_zone_sub_element[attaqueZone_i] == 'nbGauche' or attaque_zone_sub_element[
|
|
|
|
|
attaqueZone_i] == 'nbMilieu' or attaque_zone_sub_element[attaqueZone_i] == 'nbDroite':
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
|
|
|
|
|
# nbPassesParAttaque
|
|
|
|
|
nbPassesParAttaqueSubElement = ['haut', 'moyen', 'bas', 'pctHaut']
|
|
|
|
|
for nbPassesParAttaque_i in range(len(nbPassesParAttaqueSubElement)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'nbPassesParAttaque'
|
|
|
|
|
element_list.append(
|
|
|
|
|
SubElement(tree.find(elementloc), nbPassesParAttaqueSubElement[nbPassesParAttaque_i]))
|
|
|
|
|
if nbPassesParAttaqueSubElement[nbPassesParAttaque_i] != 'pctHaut':
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
|
|
|
|
|
# vitesseAttaque
|
|
|
|
|
vitesseAttaqueSubElement = ['haut', 'moyen', 'bas', 'pctHautParRapportAuxBallonsGagnes']
|
|
|
|
|
for vitesseAttaque_i in range(len(vitesseAttaqueSubElement)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'vitesseAttaque'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), vitesseAttaqueSubElement[vitesseAttaque_i]))
|
|
|
|
|
if vitesseAttaqueSubElement[vitesseAttaque_i] != 'pctHautParRapportAuxBallonsGagnes':
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
# attaquesEtTirs
|
|
|
|
|
attaquesEtTirsSubElement = ['nbAttaque', 'nbAttaqueAvecTirCentre', 'nbAttaqueAvecTirSansCentre',
|
|
|
|
|
'nbTirEnJeu',
|
|
|
|
|
'nbTirRemiseEnJeu']
|
|
|
|
|
for attaquesEtTirs_i in range(len(attaquesEtTirsSubElement)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'attaquesEtTirs'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), attaquesEtTirsSubElement[attaquesEtTirs_i]))
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
|
|
|
|
|
# zoneRecuperation
|
|
|
|
|
zoneRecuperationSubElement = ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'ligneRecuperation']
|
|
|
|
|
for zoneRecuperation_i in range(len(zoneRecuperationSubElement)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'zoneRecuperation'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), zoneRecuperationSubElement[zoneRecuperation_i]))
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
|
|
|
|
|
# vitesseRecuperation
|
|
|
|
|
vitesseRecuperationSubElement = ['nbBallonRecupereRapide', 'nbBallonRecupereMoyen', 'nbBallonRecupereBas',
|
|
|
|
|
'pctBallonRapide', 'nbBallonRecupereRapideMenantAUneAttaqueRapide']
|
|
|
|
|
for vitesseRecuperation_i in range(len(vitesseRecuperationSubElement)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'vitesseRecuperation'
|
|
|
|
|
element_list.append(
|
|
|
|
|
SubElement(tree.find(elementloc), vitesseRecuperationSubElement[vitesseRecuperation_i]))
|
|
|
|
|
if vitesseRecuperationSubElement[vitesseRecuperation_i] != 'pctBallonRapide':
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
|
|
|
|
|
# zoneRecuperationRapide
|
|
|
|
|
# zoneRecuperationEnJeu
|
|
|
|
|
# zoneRecuperationAvecAttaqueRapide
|
|
|
|
|
zoneRecuperationA1C2SubElement = ['A1', 'A2', 'B1', 'B2', 'C1', 'C2']
|
|
|
|
|
for zoneRecuperationA1C2_i in range(len(zoneRecuperationA1C2SubElement)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'zoneRecuperationRapide'
|
|
|
|
|
element_list.append(
|
|
|
|
|
SubElement(tree.find(elementloc), zoneRecuperationA1C2SubElement[zoneRecuperationA1C2_i]))
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'zoneRecuperationEnJeu'
|
|
|
|
|
element_list.append(
|
|
|
|
|
SubElement(tree.find(elementloc), zoneRecuperationA1C2SubElement[zoneRecuperationA1C2_i]))
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[
|
|
|
|
|
i] + '/' + 'collective' + '/' + 'zoneRecuperationAvecAttaqueRapide'
|
|
|
|
|
element_list.append(
|
|
|
|
|
SubElement(tree.find(elementloc), zoneRecuperationA1C2SubElement[zoneRecuperationA1C2_i]))
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
|
|
|
|
|
# zoneFauteSubie
|
|
|
|
|
# zoneFauteCommise
|
|
|
|
|
zoneFauteSubElement = ['A1', 'A2', 'A3', 'A4', 'B1', 'B2', 'B3', 'B4', 'C1', 'C2', 'C3', 'C4', 'D1', 'D2',
|
|
|
|
|
'D3',
|
|
|
|
|
'D4']
|
|
|
|
|
for zoneFaute_i in range(len(zoneFauteSubElement)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'zoneFauteSubie'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), zoneFauteSubElement[zoneFaute_i]))
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'zoneFauteCommise'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), zoneFauteSubElement[zoneFaute_i]))
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
|
|
|
|
|
# directionPasse
|
|
|
|
|
directionPasseSubElement = ['nbVersAvant', 'nbLaterale', 'nbVersArriere', 'pctVersAvant', 'pctLaterale',
|
|
|
|
|
'pctVersArriere', 'pctVersAvantReussi', 'pctLateraleReussi',
|
|
|
|
|
'pctVersArriereReussi']
|
|
|
|
|
for directionPasse_i in range(len(directionPasseSubElement)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'directionPasse'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), directionPasseSubElement[directionPasse_i]))
|
|
|
|
|
if directionPasseSubElement[directionPasse_i] == 'nbVersAvant' or \
|
|
|
|
|
directionPasseSubElement[directionPasse_i] == 'nbLaterale' or \
|
|
|
|
|
directionPasseSubElement[directionPasse_i] == 'nbVersArriere':
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
|
|
|
|
|
# centre
|
|
|
|
|
centreSubElement = ['nbGauche', 'nbDroite', 'pctGaucheReussi', 'pctDroiteReussi']
|
|
|
|
|
for centre_i in range(len(centreSubElement)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'centre'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), centreSubElement[centre_i]))
|
|
|
|
|
if centreSubElement[centre_i] == 'nbGauche' or centreSubElement[centre_i] == 'nbDroite':
|
|
|
|
|
element_list[-1].text = str(0)
|
|
|
|
|
|
|
|
|
|
# longueurPasse
|
|
|
|
|
longueurPasseSubElement = ['pctLong', 'pctMoyen', 'pctCourt']
|
|
|
|
|
for longueurPasse_i in range(len(longueurPasseSubElement)):
|
|
|
|
|
elementloc = './equipes/' + equipes_sub_element[i] + '/' + 'collective' + '/' + 'longueurPasse'
|
|
|
|
|
element_list.append(SubElement(tree.find(elementloc), longueurPasseSubElement[longueurPasse_i]))
|
|
|
|
|
|
|
|
|
|
PlayerLocRoot = ['./equipes/equipeA/individuelle/joueur', './equipes/equipeB/individuelle/joueur']
|
|
|
|
|
individuelleTirzone = ['zone1', 'zone2', 'zone3', 'zone4', 'zone5', 'zone6', 'zone1_5']
|
|
|
|
|
individuelleDirectionPasse = ['nbVersAvant', 'nbLaterale', 'nbVersArriere', 'pctVersAvant', 'pctLaterale',
|
|
|
|
|
'pctVersArriere', 'pctVersAvantReussi', 'pctLateraleReussi',
|
|
|
|
|
'pctVersArriereReussi']
|
|
|
|
|
individuellePossessionInd = ['A1', 'A2', 'A3', 'A4', 'B1', 'B2', 'B3', 'B4', 'C1', 'C2', 'C3', 'C4', 'D1', 'D2',
|
|
|
|
|
'D3', 'D4']
|
|
|
|
|
for PlayerLoc in PlayerLocRoot:
|
|
|
|
|
player_list = tree.findall(PlayerLoc)
|
|
|
|
|
for player_i in range(len(player_list)):
|
|
|
|
|
children = [
|
|
|
|
|
Element(str(ele))
|
|
|
|
|
for ele in individuelleTirzone
|
|
|
|
|
]
|
|
|
|
|
player_list[player_i].find('tirZone').extend(children)
|
|
|
|
|
children = [
|
|
|
|
|
Element(str(ele))
|
|
|
|
|
for ele in individuelleDirectionPasse
|
|
|
|
|
]
|
|
|
|
|
player_list[player_i].find('directionPasse').extend(children)
|
|
|
|
|
children = [
|
|
|
|
|
Element(str(ele))
|
|
|
|
|
for ele in individuellePossessionInd
|
|
|
|
|
]
|
|
|
|
|
player_list[player_i].find('possessionInd').extend(children)
|
|
|
|
|
children = [
|
|
|
|
|
Element(str(ele))
|
|
|
|
|
for ele in individuellePossessionInd
|
|
|
|
|
]
|
|
|
|
|
player_list[player_i].find('zoneFauteSubie').extend(children)
|
|
|
|
|
children = [
|
|
|
|
|
Element(str(ele))
|
|
|
|
|
for ele in individuellePossessionInd
|
|
|
|
|
]
|
|
|
|
|
player_list[player_i].find('zoneFauteCommise').extend(children)
|
|
|
|
|
children = [
|
|
|
|
|
Element(str(ele))
|
|
|
|
|
for ele in individuellePossessionInd
|
|
|
|
|
]
|
|
|
|
|
player_list[player_i].find('zoneTacle').extend(children)
|
|
|
|
|
# if teamHost.get('Players') != 0 :
|
|
|
|
|
|
|
|
|
|
# if teamGuest.get('Players') != 0 :
|
|
|
|
|
self.pretty_xml(statistiques, '\t', '\n')
|
|
|
|
|
|
|
|
|
|
return tree
|
|
|
|
|
|
|
|
|
|
def update_xml(self, tree):
|
|
|
|
|
next(tree.iter('eq1')).text = text_eq1
|
|
|
|
|
next(tree.iter('eq2')).text = text_eq2
|
|
|
|
|
|
|
|
|
|
next(tree.iter('journee')).text = text_journee
|
|
|
|
|
next(tree.iter('competition')).text = text_competition
|
|
|
|
|
next(tree.iter('competition')).set('dateDebut', attrib1_competition)
|
|
|
|
|
next(tree.iter('competition')).set('dateFin', attrib2_competition)
|
|
|
|
|
next(tree.iter('date')).text = text_date
|
|
|
|
|
next(tree.iter('stade')).text = text_stade
|
|
|
|
|
next(tree.iter('heure')).text = text_heure
|
|
|
|
|
next(tree.iter('couleq1')).text = text_couleq1
|
|
|
|
|
next(tree.iter('couleq2')).text = text_couleq2
|
|
|
|
|
next(tree.iter('codematch')).text = text_codematch
|
|
|
|
|
next(tree.iter('codematch')).set('id', attrib1_codematch)
|
|
|
|
|
|
|
|
|
|
next(tree.iter('tempsDeJeu')).text = text_tempsDeJeu
|
|
|
|
|
next(tree.iter('tempsEffectif')).text = text_tempsEffectif
|
|
|
|
|
next(tree.iter('statut')).text = text_statut
|
|
|
|
|
|
|
|
|
|
# tree.find('./match/scoreA/miTemps').text = str(int_scoreA_miTemps)
|
|
|
|
|
tree.find('./match/scoreA/match').text = str(int_scoreA_match)
|
|
|
|
|
# tree.find('./match/scoreB/miTemps').text = str(int_scoreB_miTemps)
|
|
|
|
|
tree.find('./match/scoreB/match').text = str(int_scoreB_match)
|
|
|
|
|
|
|
|
|
|
tree.find('./equipes/equipeA/collective/nomEquipe').set('rapportForce5Min',
|
|
|
|
|
str(int_equipeA_rapportForce5Min_attrib))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/nomEquipe').text = text_equipeA_rapportForce5Min
|
|
|
|
|
tree.find('./equipes/equipeA/collective/tempsPossession').text = text_equipeA_tempsPossession
|
|
|
|
|
tree.find('./equipes/equipeA/collective/pctPossession').text = str(int_equipeA_pctPossession)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/ballonJoue').text = str(int_equipeA_ballonJoue)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/ballonGagne').text = str(int_equipeA_ballonGagne)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/ballonPerdu').text = str(int_equipeA_ballonPerdu)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/passe').text = str(int_equipeA_passe)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/passeReussie').text = str(int_equipeA_passeReussie)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/pctPasseReussie').text = str(int_equipeA_pctPasseReussie)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/occasion').text = str(int_equipeA_occasion)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/tir').text = str(int_equipeA_tir)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/tirCadre').text = str(int_equipeA_tirCadre)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/tirNonCadre').text = str(int_equipeA_tirNonCadre)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/pctTirsCadres').text = str(int_equipeA_pctTirsCadres)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/but').text = str(int_equipeA_but)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/butSurPenalty').text = str(int_equipeA_butSurPenalty)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/butContreSonCamp').text = str(int_equipeA_butContreSonCamp)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/horsJeu').text = str(int_equipeA_horsJeu)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/cornerEffectue').text = str(int_equipeA_cornerEffectue)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/toucheEffectuee').text = str(int_equipeA_toucheEffectuee)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/centreEffectue').text = str(int_equipeA_centreEffectue)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/coupFrancEffectue').text = str(int_equipeA_coupFrancEffectue)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/sortieDeButEffectuee').text = str(int_equipeA_sortieDeButEffectuee)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/penalty').text = str(int_equipeA_penalty)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/fauteSubie').text = str(int_equipeA_fauteSubie)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/fauteCommise').text = str(int_equipeA_fauteCommise)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/tacle').text = str(int_equipeA_tacle)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/cartonJaune').text = str(int_equipeA_cartonJaune)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/cartonRouge').text = str(int_equipeA_cartonRouge)
|
|
|
|
|
tree.find('./equipes/equipeA/collective/entraineur').text = text_equipeA_entraineur
|
|
|
|
|
tree.find('./equipes/equipeA/collective/possessionTemps/tps_0_15/pct').text = str(teamHost.get('0_15_pct'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/possessionTemps/tps_15_30/pct').text = str(teamHost.get('15_30_pct'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/possessionTemps/tps_30_45/pct').text = str(teamHost.get('30_45_pct'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/possessionTemps/tps_45_60/pct').text = str(teamHost.get('45_60_pct'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/possessionTemps/tps_60_75/pct').text = str(teamHost.get('60_75_pct'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/possessionTemps/tps_75_90/pct').text = str(teamHost.get('75_90_pct'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/tirZone/zone1').text = str(teamHost.get('shots_area_one'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/tirZone/zone2').text = str(teamHost.get('shots_area_two'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/tirZone/zone3').text = str(teamHost.get('shots_area_three'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/tirZone/zone4').text = str(teamHost.get('shots_area_four'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/tirZone/zone5').text = str(teamHost.get('shots_area_five'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/tirZone/zone6').text = str(teamHost.get('shots_area_six'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/attaqueZone/nbGauche').text = str(teamHost.get('nbGauche'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/attaqueZone/nbMilieu').text = str(teamHost.get('nbMilieu'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/attaqueZone/nbDroite').text = str(teamHost.get('nbDroite'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/attaqueZone/pctGauche').text = str(teamHost.get('pctGauche'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/attaqueZone/pctMilieu').text = str(teamHost.get('pctMilieu'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/attaqueZone/pctDroite').text = str(teamHost.get('pctDroite'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/directionPasse/nbVersAvant').text = str(teamHost.get('nbVersAvant'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/directionPasse/nbLaterale').text = str(teamHost.get('nbLaterale'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/directionPasse/nbVersArriere').text = str(teamHost.get('nbVersArriere'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/directionPasse/pctVersAvant').text = str(teamHost.get('pctVersAvant'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/directionPasse/pctLaterale').text = str(teamHost.get('pctLaterale'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/directionPasse/pctVersArriere').text = str(
|
|
|
|
|
teamHost.get('pctVersArriere'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/longueurPasse/pctLong').text = str(teamHost.get('pctLong'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/longueurPasse/pctMoyen').text = str(teamHost.get('pctMoyen'))
|
|
|
|
|
tree.find('./equipes/equipeA/collective/longueurPasse/pctCourt').text = str(teamHost.get('pctCourt'))
|
|
|
|
|
|
|
|
|
|
tree.find('./equipes/equipeB/collective/nomEquipe').set('rapportForce5Min',
|
|
|
|
|
str(int_equipeB_rapportForce5Min_attrib))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/nomEquipe').text = text_equipeB_rapportForce5Min
|
|
|
|
|
tree.find('./equipes/equipeB/collective/tempsPossession').text = text_equipeB_tempsPossession
|
|
|
|
|
tree.find('./equipes/equipeB/collective/pctPossession').text = str(int_equipeB_pctPossession)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/ballonJoue').text = str(int_equipeB_ballonJoue)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/ballonGagne').text = str(int_equipeB_ballonGagne)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/ballonPerdu').text = str(int_equipeB_ballonPerdu)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/passe').text = str(int_equipeB_passe)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/passeReussie').text = str(int_equipeB_passeReussie)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/pctPasseReussie').text = str(int_equipeB_pctPasseReussie)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/occasion').text = str(int_equipeB_occasion)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/tir').text = str(int_equipeB_tir)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/tirCadre').text = str(int_equipeB_tirCadre)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/tirNonCadre').text = str(int_equipeB_tirNonCadre)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/pctTirsCadres').text = str(int_equipeB_pctTirsCadres)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/but').text = str(int_equipeB_but)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/butSurPenalty').text = str(int_equipeB_butSurPenalty)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/butContreSonCamp').text = str(int_equipeB_butContreSonCamp)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/horsJeu').text = str(int_equipeB_horsJeu)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/cornerEffectue').text = str(int_equipeB_cornerEffectue)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/toucheEffectuee').text = str(int_equipeB_toucheEffectuee)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/centreEffectue').text = str(int_equipeB_centreEffectue)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/coupFrancEffectue').text = str(int_equipeB_coupFrancEffectue)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/sortieDeButEffectuee').text = str(int_equipeB_sortieDeButEffectuee)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/penalty').text = str(int_equipeB_penalty)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/fauteSubie').text = str(int_equipeB_fauteSubie)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/fauteCommise').text = str(int_equipeB_fauteCommise)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/tacle').text = str(int_equipeB_tacle)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/cartonJaune').text = str(int_equipeB_cartonJaune)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/cartonRouge').text = str(int_equipeB_cartonRouge)
|
|
|
|
|
tree.find('./equipes/equipeB/collective/entraineur').text = text_equipeB_entraineur
|
|
|
|
|
tree.find('./equipes/equipeB/collective/possessionTemps/tps_0_15/pct').text = str(teamGuest.get('0_15_pct'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/possessionTemps/tps_15_30/pct').text = str(teamGuest.get('15_30_pct'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/possessionTemps/tps_30_45/pct').text = str(teamGuest.get('30_45_pct'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/possessionTemps/tps_45_60/pct').text = str(teamGuest.get('45_60_pct'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/possessionTemps/tps_60_75/pct').text = str(teamGuest.get('60_75_pct'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/possessionTemps/tps_75_90/pct').text = str(teamGuest.get('75_90_pct'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/tirZone/zone1').text = str(teamGuest.get('shots_area_one'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/tirZone/zone2').text = str(teamGuest.get('shots_area_two'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/tirZone/zone3').text = str(teamGuest.get('shots_area_three'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/tirZone/zone4').text = str(teamGuest.get('shots_area_four'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/tirZone/zone5').text = str(teamGuest.get('shots_area_five'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/tirZone/zone6').text = str(teamGuest.get('shots_area_six'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/attaqueZone/nbGauche').text = str(teamGuest.get('nbGauche'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/attaqueZone/nbMilieu').text = str(teamGuest.get('nbMilieu'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/attaqueZone/nbDroite').text = str(teamGuest.get('nbDroite'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/attaqueZone/pctGauche').text = str(teamGuest.get('pctGauche'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/attaqueZone/pctMilieu').text = str(teamGuest.get('pctMilieu'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/attaqueZone/pctDroite').text = str(teamGuest.get('pctDroite'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/directionPasse/nbVersAvant').text = str(teamGuest.get('nbVersAvant'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/directionPasse/nbLaterale').text = str(teamGuest.get('nbLaterale'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/directionPasse/nbVersArriere').text = str(
|
|
|
|
|
teamGuest.get('nbVersArriere'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/directionPasse/pctVersAvant').text = str(teamGuest.get('pctVersAvant'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/directionPasse/pctLaterale').text = str(teamGuest.get('pctLaterale'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/directionPasse/pctVersArriere').text = str(
|
|
|
|
|
teamGuest.get('pctVersArriere'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/longueurPasse/pctLong').text = str(teamGuest.get('pctLong'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/longueurPasse/pctMoyen').text = str(teamGuest.get('pctMoyen'))
|
|
|
|
|
tree.find('./equipes/equipeB/collective/longueurPasse/pctCourt').text = str(teamGuest.get('pctCourt'))
|
|
|
|
|
|
|
|
|
|
player_loc_root = ['./equipes/equipeA/individuelle/joueur', './equipes/equipeB/individuelle/joueur']
|
|
|
|
|
for PlayerLoc in player_loc_root:
|
|
|
|
|
player_list = tree.findall(PlayerLoc)
|
|
|
|
|
if PlayerLoc == player_loc_root[0]:
|
|
|
|
|
player_team = hostPlayerSpam
|
|
|
|
|
else:
|
|
|
|
|
player_team = guestPlayerSpam
|
|
|
|
|
|
|
|
|
|
for player_i in range(len(player_list)):
|
|
|
|
|
if player_i >= len(player_team):
|
|
|
|
|
continue
|
|
|
|
|
player_list[player_i].find('nom').text = player_team[player_i].get('player_name')
|
|
|
|
|
player_list[player_i].find('nom').set('id', str(player_team[player_i].get('id_player')))
|
|
|
|
|
player_list[player_i].find('tempsDePossession').text = player_team[player_i].get('possession_time')
|
|
|
|
|
player_list[player_i].find('numeroMaillot').text = player_team[player_i].get('football_number')
|
|
|
|
|
spam_position = ['coach', 'Gardien', 'Defenseur', 'Milieu', 'Attaquant']
|
|
|
|
|
player_list[player_i].find('poste').text = spam_position[
|
|
|
|
|
player_team[player_i].get('football_position') - 1]
|
|
|
|
|
player_list[player_i].find('bloc').text = spam_position[
|
|
|
|
|
player_team[player_i].get('football_position') - 1]
|
|
|
|
|
player_list[player_i].find('ballonJoue').text = str(player_team[player_i].get('balls_played'))
|
|
|
|
|
player_list[player_i].find('ballonGagne').text = str(player_team[player_i].get('possessions_gained'))
|
|
|
|
|
player_list[player_i].find('ballonPerdu').text = str(player_team[player_i].get('possessions_lost'))
|
|
|
|
|
player_list[player_i].find('passe').text = str(player_team[player_i].get('passes'))
|
|
|
|
|
player_list[player_i].find('passeReussie').text = str(player_team[player_i].get('successful_passes'))
|
|
|
|
|
player_list[player_i].find('pctPasseReussie').text = str(
|
|
|
|
|
player_team[player_i].get('successful_passes_p'))
|
|
|
|
|
player_list[player_i].find('occasion').text = str(player_team[player_i].get('chances'))
|
|
|
|
|
player_list[player_i].find('tir').text = str(player_team[player_i].get('shots'))
|
|
|
|
|
player_list[player_i].find('tirCadre').text = str(player_team[player_i].get('shots_on_target'))
|
|
|
|
|
player_list[player_i].find('tirNonCadre').text = str(player_team[player_i].get('shot_off_target'))
|
|
|
|
|
player_list[player_i].find('pctTirCadre').text = str(player_team[player_i].get('shots_on_target_p'))
|
|
|
|
|
player_list[player_i].find('butMarque').text = str(player_team[player_i].get('goal_normal'))
|
|
|
|
|
player_list[player_i].find('butSurPenalty').text = str(player_team[player_i].get('goal_penalty'))
|
|
|
|
|
player_list[player_i].find('butContreSonCamp').text = str(player_team[player_i].get('own_goal'))
|
|
|
|
|
player_list[player_i].find('horsJeu').text = str(player_team[player_i].get('offside'))
|
|
|
|
|
player_list[player_i].find('cornerEffectue').text = str(player_team[player_i].get('corner'))
|
|
|
|
|
player_list[player_i].find('toucheEffectuee').text = str(player_team[player_i].get('throw_in'))
|
|
|
|
|
player_list[player_i].find('centreEffectue').text = str(player_team[player_i].get('crosses'))
|
|
|
|
|
player_list[player_i].find('fauteSubie').text = str(player_team[player_i].get('fouls_received'))
|
|
|
|
|
player_list[player_i].find('fauteCommise').text = str(player_team[player_i].get('fouls_commited'))
|
|
|
|
|
player_list[player_i].find('cartonJaune1').text = str(player_team[player_i].get('yellow_card1st'))
|
|
|
|
|
player_list[player_i].find('cartonJaune2').text = str(player_team[player_i].get('yellow_card2nd'))
|
|
|
|
|
player_list[player_i].find('cartonRouge').text = str(player_team[player_i].get('red_card_time'))
|
|
|
|
|
tir_zone_root = player_list[player_i].find('tirZone')
|
|
|
|
|
tir_zone_root.find('zone1').text = str(player_team[player_i].get('tirZone_zone1'))
|
|
|
|
|
tir_zone_root.find('zone2').text = str(player_team[player_i].get('tirZone_zone2'))
|
|
|
|
|
tir_zone_root.find('zone3').text = str(player_team[player_i].get('tirZone_zone3'))
|
|
|
|
|
tir_zone_root.find('zone4').text = str(player_team[player_i].get('tirZone_zone4'))
|
|
|
|
|
tir_zone_root.find('zone5').text = str(player_team[player_i].get('tirZone_zone5'))
|
|
|
|
|
tir_zone_root.find('zone6').text = str(player_team[player_i].get('tirZone_zone6'))
|
|
|
|
|
direction_passe_root = player_list[player_i].find('directionPasse')
|
|
|
|
|
direction_passe_root.find('nbVersAvant').text = str(
|
|
|
|
|
player_team[player_i].get('directionPasses_nbVersAvant'))
|
|
|
|
|
direction_passe_root.find('nbLaterale').text = str(
|
|
|
|
|
player_team[player_i].get('directionPasses_nbLaterale'))
|
|
|
|
|
direction_passe_root.find('nbVersArriere').text = str(
|
|
|
|
|
player_team[player_i].get('directionPasses_nbVersArriere'))
|
|
|
|
|
direction_passe_root.find('pctVersAvant').text = str(
|
|
|
|
|
player_team[player_i].get('directionPasses_pctVersAvant'))
|
|
|
|
|
direction_passe_root.find('pctLaterale').text = str(
|
|
|
|
|
player_team[player_i].get('directionPasses_pctLaterale'))
|
|
|
|
|
direction_passe_root.find('pctVersArriere').text = str(
|
|
|
|
|
player_team[player_i].get('directionPasses_pctVersArriere'))
|
|
|
|
|
possession_ind_root = player_list[player_i].find('possessionInd')
|
|
|
|
|
possession_ind_root.find('A1').text = str(player_team[player_i].get('possessionInd_A1'))
|
|
|
|
|
possession_ind_root.find('A2').text = str(player_team[player_i].get('possessionInd_A2'))
|
|
|
|
|
possession_ind_root.find('A3').text = str(player_team[player_i].get('possessionInd_A3'))
|
|
|
|
|
possession_ind_root.find('A4').text = str(player_team[player_i].get('possessionInd_A4'))
|
|
|
|
|
possession_ind_root.find('B1').text = str(player_team[player_i].get('possessionInd_B1'))
|
|
|
|
|
possession_ind_root.find('B2').text = str(player_team[player_i].get('possessionInd_B2'))
|
|
|
|
|
possession_ind_root.find('B3').text = str(player_team[player_i].get('possessionInd_B3'))
|
|
|
|
|
possession_ind_root.find('B4').text = str(player_team[player_i].get('possessionInd_B4'))
|
|
|
|
|
possession_ind_root.find('C1').text = str(player_team[player_i].get('possessionInd_C1'))
|
|
|
|
|
possession_ind_root.find('C2').text = str(player_team[player_i].get('possessionInd_C2'))
|
|
|
|
|
possession_ind_root.find('C3').text = str(player_team[player_i].get('possessionInd_C3'))
|
|
|
|
|
possession_ind_root.find('C4').text = str(player_team[player_i].get('possessionInd_C4'))
|
|
|
|
|
possession_ind_root.find('D1').text = str(player_team[player_i].get('possessionInd_D1'))
|
|
|
|
|
possession_ind_root.find('D2').text = str(player_team[player_i].get('possessionInd_D2'))
|
|
|
|
|
possession_ind_root.find('D3').text = str(player_team[player_i].get('possessionInd_D3'))
|
|
|
|
|
possession_ind_root.find('D4').text = str(player_team[player_i].get('possessionInd_D4'))
|
|
|
|
|
|
|
|
|
|
def fetch_data_from_database(self, match_id, db):
|
|
|
|
|
global match_info, teamHost, hostPlayerSpam, teamGuest, guestPlayerSpam
|
|
|
|
|
|
|
|
|
|
cursor = db.cursor(cursor=pymysql.cursors.DictCursor)
|
|
|
|
|
# t_match
|
|
|
|
|
match_sql = """SELECT competitionId, start_time, home_background, visiting_background, matchId, home_team,
|
|
|
|
|
homeScore, guestScore
|
|
|
|
|
FROM t_match
|
|
|
|
|
WHERE id_match=%s;"""
|
|
|
|
|
# t_competition
|
|
|
|
|
competition_sql = """SELECT zhName
|
|
|
|
|
FROM t_competition
|
|
|
|
|
WHERE id=%s;"""
|
|
|
|
|
# d_team_statistics
|
|
|
|
|
match_statistic_sql = """SELECT *
|
|
|
|
|
FROM d_team_statistics
|
|
|
|
|
WHERE match_id=%s;"""
|
|
|
|
|
# t_team_base
|
|
|
|
|
team_base_sql = """SELECT letter_code, teamName, home, head_coach
|
|
|
|
|
FROM t_team_base
|
|
|
|
|
WHERE teamid=%s;"""
|
|
|
|
|
# t_match_segment
|
|
|
|
|
current_segment_sql = """SELECT COUNT(*)
|
|
|
|
|
FROM t_match_segment
|
|
|
|
|
WHERE start_position is not NULL and id_match=%s;"""
|
|
|
|
|
# t_match_segment
|
|
|
|
|
current_segment_id_sql = """SELECT id_match_segment
|
|
|
|
|
FROM t_match_segment
|
|
|
|
|
WHERE start_position is not NULL and id_match=%s
|
|
|
|
|
order by id_match_segment desc limit 1;"""
|
|
|
|
|
# t_match_event
|
|
|
|
|
current_segment_time_sql = """SELECT time_point
|
|
|
|
|
FROM t_match_event
|
|
|
|
|
WHERE id_match_segment = %s
|
|
|
|
|
order by time_point desc limit 1;"""
|
|
|
|
|
|
|
|
|
|
# t_match_lineup
|
|
|
|
|
match_player_sql = """SELECT id_player, player_name, football_number, football_position
|
|
|
|
|
FROM t_match_lineup
|
|
|
|
|
where id_match=%s and team=%s and match_progress=1;"""
|
|
|
|
|
|
|
|
|
|
# d_player_statistics
|
|
|
|
|
player_statistics_sql = """SELECT *
|
|
|
|
|
FROM d_player_statistics
|
|
|
|
|
where match_id=%s and player_id=%s;"""
|
|
|
|
|
|
|
|
|
|
sql = current_segment_sql % (str(match_id))
|
|
|
|
|
|
|
|
|
|
cursor.execute(sql)
|
|
|
|
|
result = cursor.fetchall()
|
|
|
|
|
match_info['segment'] = result[0].get('COUNT(*)')
|
|
|
|
|
|
|
|
|
|
sql = current_segment_id_sql % (str(match_id))
|
|
|
|
|
cursor.execute(sql)
|
|
|
|
|
result = cursor.fetchall()
|
|
|
|
|
match_info['segment_id'] = result[0].get('id_match_segment')
|
|
|
|
|
|
|
|
|
|
sql = current_segment_time_sql % (str(match_info['segment_id']))
|
|
|
|
|
cursor.execute(sql)
|
|
|
|
|
result = cursor.fetchall()
|
|
|
|
|
seg_sec = int(result[0].get('time_point')) / 1000
|
|
|
|
|
seg_min = int(seg_sec / 60)
|
|
|
|
|
seg_sec = int(seg_sec - seg_min * 60)
|
|
|
|
|
if match_info['segment'] == 4:
|
|
|
|
|
seg_min = seg_min + 90 + 15
|
|
|
|
|
elif match_info['segment'] == 3:
|
|
|
|
|
seg_min = seg_min + 90
|
|
|
|
|
elif match_info['segment'] == 2:
|
|
|
|
|
seg_min = seg_min + 45
|
|
|
|
|
match_info['match_time'] = str(seg_min) + ':' + str(seg_sec).rjust(2, '0')
|
|
|
|
|
|
|
|
|
|
sql = match_sql % (str(match_id))
|
|
|
|
|
cursor.execute(sql)
|
|
|
|
|
result = cursor.fetchall()
|
|
|
|
|
homt_team_id = result[0].get('home_team')
|
|
|
|
|
match_info['match_id'] = result[0].get('matchId')
|
|
|
|
|
competition_Id = int(result[0].get('competitionId'))
|
|
|
|
|
matchObj = re.match(r'(.*)-(.*)-(.*) (.*):(.*):.*', str(result[0].get('start_time')))
|
|
|
|
|
match_info['date'] = matchObj.group(3) + '/' + matchObj.group(2) + '/' + matchObj.group(1)
|
|
|
|
|
match_info['heure'] = matchObj.group(4) + ':' + matchObj.group(5)
|
|
|
|
|
teamHost['background'] = result[0].get('home_background')
|
|
|
|
|
teamGuest['background'] = result[0].get('visiting_background')
|
|
|
|
|
teamHost['goal'] = result[0].get('homeScore')
|
|
|
|
|
teamGuest['goal'] = result[0].get('guestScore')
|
|
|
|
|
if teamHost.get('background'):
|
|
|
|
|
teamHost['background'] = '#' + str(hex(int(teamHost.get('background')) & 0xFFFFFFFF)).lstrip('0x').upper()
|
|
|
|
|
if teamGuest.get('background'):
|
|
|
|
|
teamGuest['background'] = '#' + str(hex(int(teamGuest.get('background')) & 0xFFFFFFFF)).lstrip('0x').upper()
|
|
|
|
|
|
|
|
|
|
sql = competition_sql % (str(competition_Id))
|
|
|
|
|
cursor.execute(sql)
|
|
|
|
|
result = cursor.fetchall()
|
|
|
|
|
match_info['competition_name'] = result[0].get('zhName')
|
|
|
|
|
|
|
|
|
|
sql = match_statistic_sql % (str(match_id))
|
|
|
|
|
cursor.execute(sql)
|
|
|
|
|
result = cursor.fetchall()
|
|
|
|
|
# d_team_statistic 中是按照teamid大小排序,不是主队在前,需要识别一下
|
|
|
|
|
if result[0].get('team_id') == homt_team_id:
|
|
|
|
|
spam_team = [teamHost, teamGuest]
|
|
|
|
|
else:
|
|
|
|
|
spam_team = [teamGuest, teamHost]
|
|
|
|
|
match_info['net_game_time'] = self.GetTimeString(result[0].get('net_game_time'))
|
|
|
|
|
for i in range(len(result)):
|
|
|
|
|
field = result[i]
|
|
|
|
|
spam_team[i]['team_id'] = int(field.get('team_id'))
|
|
|
|
|
possession_sec = int(field.get('possession_time')) / 1000
|
|
|
|
|
spam_team[i]['possession_seconds'] = possession_sec
|
|
|
|
|
possession_min = int(possession_sec / 60)
|
|
|
|
|
possession_sec = int(possession_sec - possession_min * 60)
|
|
|
|
|
spam_team[i]['possession_duration'] = str(possession_min) + ':' + str(possession_sec)
|
|
|
|
|
spam_team[i]['possession'] = int(field.get('possession') * 100)
|
|
|
|
|
spam_team[i]['balls_played'] = int(field.get('balls_played'))
|
|
|
|
|
spam_team[i]['possessions_gained'] = int(field.get('possessions_gained'))
|
|
|
|
|
spam_team[i]['possessions_lost'] = int(field.get('possessions_lost'))
|
|
|
|
|
spam_team[i]['passes'] = int(field.get('passes'))
|
|
|
|
|
spam_team[i]['successful_passes'] = int(field.get('successful_passes'))
|
|
|
|
|
spam_team[i]['successful_passes_p'] = int(100 * field.get('successful_passes_p'))
|
|
|
|
|
spam_team[i]['chances'] = int(field.get('chances'))
|
|
|
|
|
spam_team[i]['shots'] = int(field.get('shots'))
|
|
|
|
|
spam_team[i]['shots_on_target'] = int(field.get('shots_on_target'))
|
|
|
|
|
spam_team[i]['shot_off_target'] = int(field.get('shot_off_target'))
|
|
|
|
|
spam_team[i]['shots_on_target_p'] = int(100 * field.get('shots_on_target_p'))
|
|
|
|
|
spam_team[i]['goal_normal'] = int(field.get('goal_normal'))
|
|
|
|
|
spam_team[i]['goal_penalty'] = int(field.get('goal_penalty'))
|
|
|
|
|
spam_team[i]['goal_sur_penalty'] = int(field.get('goal_sur_penalty'))
|
|
|
|
|
spam_team[i]['own_goal'] = int(field.get('own_goal'))
|
|
|
|
|
spam_team[i]['offside'] = int(field.get('offside'))
|
|
|
|
|
spam_team[i]['corner'] = int(field.get('corner'))
|
|
|
|
|
spam_team[i]['throw_in'] = int(field.get('throw_in'))
|
|
|
|
|
spam_team[i]['fouls_received'] = int(field.get('fouls_received'))
|
|
|
|
|
spam_team[i]['fouls_commited'] = int(field.get('fouls_commited'))
|
|
|
|
|
spam_team[i]['yellow_cards'] = int(field.get('yellow_cards'))
|
|
|
|
|
spam_team[i]['red_cards'] = int(field.get('red_cards'))
|
|
|
|
|
spam_team[i]['crosses'] = int(field.get('crosses'))
|
|
|
|
|
spam_team[i]['0_15_pct'] = int(field.get('possession_first_quarter') * 100)
|
|
|
|
|
spam_team[i]['15_30_pct'] = int(field.get('possession_secend_quarter') * 100)
|
|
|
|
|
spam_team[i]['30_45_pct'] = int(field.get('possession_third_quarter') * 100)
|
|
|
|
|
spam_team[i]['45_60_pct'] = int(field.get('possession_fourth_quarter') * 100)
|
|
|
|
|
spam_team[i]['60_75_pct'] = int(field.get('possession_fifth_quarter') * 100)
|
|
|
|
|
spam_team[i]['75_90_pct'] = int(field.get('possession_sixth_quarter') * 100)
|
|
|
|
|
spam_team[i]['shots_area_one'] = int(field.get('shots_area_one'))
|
|
|
|
|
spam_team[i]['shots_area_two'] = int(field.get('shots_area_two'))
|
|
|
|
|
spam_team[i]['shots_area_three'] = int(field.get('shots_area_three'))
|
|
|
|
|
spam_team[i]['shots_area_four'] = int(field.get('shots_area_four'))
|
|
|
|
|
spam_team[i]['shots_area_five'] = int(field.get('shots_area_five'))
|
|
|
|
|
spam_team[i]['shots_area_six'] = int(field.get('shots_area_six'))
|
|
|
|
|
spam_team[i]['nbGauche'] = int(field.get('final_third_entries_left'))
|
|
|
|
|
spam_team[i]['nbMilieu'] = int(field.get('final_third_entries_medium'))
|
|
|
|
|
spam_team[i]['nbDroite'] = int(field.get('final_third_entries_right'))
|
|
|
|
|
spam_team[i]['pctGauche'] = int(field.get('final_third_entries_left_p') * 100)
|
|
|
|
|
spam_team[i]['pctMilieu'] = int(field.get('final_third_entries_medium_p') * 100)
|
|
|
|
|
spam_team[i]['pctDroite'] = int(field.get('final_third_entries_right_p') * 100)
|
|
|
|
|
spam_team[i]['nbVersAvant'] = int(field.get('forward_passes'))
|
|
|
|
|
spam_team[i]['nbLaterale'] = int(field.get('sideways_passes'))
|
|
|
|
|
spam_team[i]['nbVersArriere'] = int(field.get('backward_passes'))
|
|
|
|
|
spam_team[i]['pctVersAvant'] = int(field.get('forward_passes_p') * 100)
|
|
|
|
|
spam_team[i]['pctLaterale'] = int(field.get('sideways_passes_p') * 100)
|
|
|
|
|
spam_team[i]['pctVersArriere'] = int(field.get('backward_passes_p') * 100)
|
|
|
|
|
spam_team[i]['long_passes'] = int(field.get('long_passes'))
|
|
|
|
|
spam_team[i]['medium_passes'] = int(field.get('medium_passes'))
|
|
|
|
|
spam_team[i]['short_passes'] = int(field.get('short_passes'))
|
|
|
|
|
if spam_team[i]['passes'] != 0:
|
|
|
|
|
spam_team[i]['pctLong'] = int(spam_team[i]['long_passes'] / spam_team[i]['passes'] * 100)
|
|
|
|
|
spam_team[i]['pctMoyen'] = int(spam_team[i]['medium_passes'] / spam_team[i]['passes'] * 100)
|
|
|
|
|
spam_team[i]['pctCourt'] = int(spam_team[i]['short_passes'] / spam_team[i]['passes'] * 100)
|
|
|
|
|
|
|
|
|
|
for i in range(len(spam_team)):
|
|
|
|
|
sql = team_base_sql % (str(spam_team[i]['team_id']))
|
|
|
|
|
cursor.execute(sql)
|
|
|
|
|
result = cursor.fetchall()
|
|
|
|
|
for field in result:
|
|
|
|
|
spam_team[i]['letter_code'] = field.get('letter_code')
|
|
|
|
|
spam_team[i]['team_name'] = field.get('teamName')
|
|
|
|
|
spam_team[i]['stade'] = field.get('home')
|
|
|
|
|
spam_team[i]['head_coach'] = field.get('head_coach')
|
|
|
|
|
|
|
|
|
|
for HostGuest_letter in ['1', '2']:
|
|
|
|
|
sql = match_player_sql % (str(match_id), HostGuest_letter)
|
|
|
|
|
cursor.execute(sql)
|
|
|
|
|
result = cursor.fetchall()
|
|
|
|
|
for field in result:
|
|
|
|
|
individual = {'id_player': int(field.get('id_player')), 'player_name': str(field.get('player_name')),
|
|
|
|
|
'football_number': str(field.get('football_number')),
|
|
|
|
|
'football_position': int(field.get('football_position'))}
|
|
|
|
|
sql = player_statistics_sql % (str(match_id), str(individual['id_player']))
|
|
|
|
|
cursor.execute(sql)
|
|
|
|
|
result = cursor.fetchall()
|
|
|
|
|
if result:
|
|
|
|
|
seg_sec = int(result[0].get('possession_time')) / 1000
|
|
|
|
|
seg_min = int(seg_sec / 60)
|
|
|
|
|
seg_sec = int(seg_sec - seg_min * 60)
|
|
|
|
|
individual['possession_time'] = str(seg_min) + ':' + str(seg_sec).rjust(2, '0')
|
|
|
|
|
individual['balls_played'] = int(result[0].get('balls_played'))
|
|
|
|
|
individual['possessions_gained'] = int(result[0].get('possessions_gained'))
|
|
|
|
|
individual['possessions_lost'] = int(result[0].get('possessions_lost'))
|
|
|
|
|
individual['passes'] = int(result[0].get('passes'))
|
|
|
|
|
individual['successful_passes'] = int(result[0].get('successful_passes'))
|
|
|
|
|
individual['successful_passes_p'] = int(result[0].get('successful_passes_p') * 100)
|
|
|
|
|
individual['chances'] = int(result[0].get('chances'))
|
|
|
|
|
individual['shots'] = int(result[0].get('shots'))
|
|
|
|
|
individual['shots_on_target'] = int(result[0].get('shots_on_target'))
|
|
|
|
|
individual['shot_off_target'] = int(result[0].get('shot_off_target'))
|
|
|
|
|
individual['shots_on_target_p'] = int(result[0].get('shots_on_target_p') * 100)
|
|
|
|
|
individual['goal_normal'] = int(result[0].get('goal_normal'))
|
|
|
|
|
individual['goal_penalty'] = int(result[0].get('goal_penalty'))
|
|
|
|
|
individual['own_goal'] = int(result[0].get('own_goal'))
|
|
|
|
|
individual['offside'] = int(result[0].get('offside'))
|
|
|
|
|
individual['corner'] = int(result[0].get('corner'))
|
|
|
|
|
individual['throw_in'] = int(result[0].get('throw_in'))
|
|
|
|
|
individual['crosses'] = int(result[0].get('crosses'))
|
|
|
|
|
individual['fouls_received'] = int(result[0].get('fouls_received'))
|
|
|
|
|
individual['fouls_commited'] = int(result[0].get('fouls_commited'))
|
|
|
|
|
individual['yellow_card1st'] = self.GetTimeString(int(result[0].get('yellow_card1st')))
|
|
|
|
|
individual['yellow_card2nd'] = self.GetTimeString(int(result[0].get('yellow_card2nd')))
|
|
|
|
|
individual['red_card_time'] = self.GetTimeString(int(result[0].get('red_card_time')))
|
|
|
|
|
individual['tirZone_zone1'] = int(result[0].get('shots_area_one'))
|
|
|
|
|
individual['tirZone_zone2'] = int(result[0].get('shots_area_two'))
|
|
|
|
|
individual['tirZone_zone3'] = int(result[0].get('shots_area_three'))
|
|
|
|
|
individual['tirZone_zone4'] = int(result[0].get('shots_area_four'))
|
|
|
|
|
individual['tirZone_zone5'] = int(result[0].get('shots_area_five'))
|
|
|
|
|
individual['tirZone_zone6'] = int(result[0].get('shots_area_six'))
|
|
|
|
|
individual['directionPasses_nbVersAvant'] = int(result[0].get('forward_passes'))
|
|
|
|
|
individual['directionPasses_nbLaterale'] = int(result[0].get('sideways_passes'))
|
|
|
|
|
individual['directionPasses_nbVersArriere'] = int(result[0].get('backward_passes'))
|
|
|
|
|
individual['directionPasses_pctVersAvant'] = int(result[0].get('forward_passes_p') * 100)
|
|
|
|
|
individual['directionPasses_pctLaterale'] = int(result[0].get('sideways_passes_p') * 100)
|
|
|
|
|
individual['directionPasses_pctVersArriere'] = int(result[0].get('backward_passes_p') * 100)
|
|
|
|
|
individual['possessionInd_A1'] = int(result[0].get('possessions_area_a1'))
|
|
|
|
|
individual['possessionInd_A2'] = int(result[0].get('possessions_area_a2'))
|
|
|
|
|
individual['possessionInd_A3'] = int(result[0].get('possessions_area_a3'))
|
|
|
|
|
individual['possessionInd_A4'] = int(result[0].get('possessions_area_a4'))
|
|
|
|
|
individual['possessionInd_B1'] = int(result[0].get('possessions_area_b1'))
|
|
|
|
|
individual['possessionInd_B2'] = int(result[0].get('possessions_area_b2'))
|
|
|
|
|
individual['possessionInd_B3'] = int(result[0].get('possessions_area_b3'))
|
|
|
|
|
individual['possessionInd_B4'] = int(result[0].get('possessions_area_b4'))
|
|
|
|
|
individual['possessionInd_C1'] = int(result[0].get('possessions_area_c1'))
|
|
|
|
|
individual['possessionInd_C2'] = int(result[0].get('possessions_area_c2'))
|
|
|
|
|
individual['possessionInd_C3'] = int(result[0].get('possessions_area_c3'))
|
|
|
|
|
individual['possessionInd_C4'] = int(result[0].get('possessions_area_c4'))
|
|
|
|
|
individual['possessionInd_D1'] = int(result[0].get('possessions_area_d1'))
|
|
|
|
|
individual['possessionInd_D2'] = int(result[0].get('possessions_area_d2'))
|
|
|
|
|
individual['possessionInd_D3'] = int(result[0].get('possessions_area_d3'))
|
|
|
|
|
individual['possessionInd_D4'] = int(result[0].get('possessions_area_d4'))
|
|
|
|
|
if HostGuest_letter == '1':
|
|
|
|
|
hostPlayerSpam.append(individual)
|
|
|
|
|
else:
|
|
|
|
|
guestPlayerSpam.append(individual)
|
|
|
|
|
# 主队球员
|
|
|
|
|
teamHost['Players'] = len(hostPlayerSpam)
|
|
|
|
|
# print('HostPlayers:%d\n'%(len(HostplayerSpam)),HostplayerSpam,'\n')
|
|
|
|
|
# 客队球员
|
|
|
|
|
teamGuest['Players'] = len(guestPlayerSpam)
|
|
|
|
|
# print('GuestPlayers:%d\n'%(len(GuestplayerSpam)),GuestplayerSpam,'\n')
|
|
|
|
|
|
|
|
|
|
db.close()
|
|
|
|
|
|
|
|
|
|
# print('match_id: ', match_id)
|
|
|
|
|
# print(match_info)
|
|
|
|
|
# print('Host:', teamHost)
|
|
|
|
|
# print('Guest:', teamGuest)
|
|
|
|
|
global text_eq1, text_eq2, text_competition, attrib1_competition, attrib2_competition, text_date, text_stade, \
|
|
|
|
|
text_heure, text_couleq1, text_couleq2, attrib1_codematch, text_codematch, text_tempsDeJeu, text_tempsEffectif, \
|
|
|
|
|
int_scoreA_match, int_scoreB_match, text_equipeA_rapportForce5Min, text_equipeA_tempsPossession, \
|
|
|
|
|
text_equipeB_rapportForce5Min, text_equipeB_tempsPossession, int_equipeA_pctPossession, int_equipeB_pctPossession, \
|
|
|
|
|
int_equipeA_ballonJoue, int_equipeA_ballonGagne, int_equipeA_ballonPerdu, int_equipeB_ballonJoue, \
|
|
|
|
|
int_equipeB_ballonGagne, int_equipeB_ballonPerdu, int_equipeA_passe, int_equipeA_passeReussie, \
|
|
|
|
|
int_equipeA_pctPasseReussie, int_equipeB_passe, int_equipeB_passeReussie, int_equipeB_pctPasseReussie, \
|
|
|
|
|
int_equipeA_occasion, int_equipeB_occasion, int_equipeA_tir, int_equipeA_tirCadre, int_equipeA_tirNonCadre, \
|
|
|
|
|
int_equipeA_pctTirsCadres, int_equipeB_tir, int_equipeB_tirCadre, int_equipeB_tirNonCadre, int_equipeB_pctTirsCadres, \
|
|
|
|
|
int_equipeA_but, int_equipeA_butSurPenalty, int_equipeA_butContreSonCamp, int_equipeB_but, int_equipeB_butSurPenalty, \
|
|
|
|
|
int_equipeB_butContreSonCamp, int_equipeA_horsJeu, int_equipeB_horsJeu, int_equipeA_cornerEffectue, \
|
|
|
|
|
int_equipeB_cornerEffectue, int_equipeA_toucheEffectuee, int_equipeB_toucheEffectuee, int_equipeA_penalty, \
|
|
|
|
|
int_equipeB_penalty, int_equipeA_fauteSubie, int_equipeA_fauteCommise, int_equipeB_fauteSubie, \
|
|
|
|
|
int_equipeB_fauteCommise, int_equipeA_cartonJaune, int_equipeA_cartonRouge, int_equipeB_cartonJaune, \
|
|
|
|
|
int_equipeB_cartonRouge, text_equipeA_entraineur, text_equipeB_entraineur, int_equipeA_centreEffectue, \
|
|
|
|
|
int_equipeB_centreEffectue
|
|
|
|
|
|
|
|
|
|
text_eq1 = teamHost.get('team_name')
|
|
|
|
|
text_eq2 = teamGuest.get('team_name')
|
|
|
|
|
if teamHost.get('head_coach'):
|
|
|
|
|
text_equipeA_entraineur = teamHost.get('head_coach')
|
|
|
|
|
if teamGuest.get('head_coach'):
|
|
|
|
|
text_equipeB_entraineur = teamGuest.get('head_coach')
|
|
|
|
|
text_competition = match_info.get('competition_name')
|
|
|
|
|
attrib1_competition = '01/01/2020'
|
|
|
|
|
attrib2_competition = '31/12/2020'
|
|
|
|
|
text_date = match_info.get('date')
|
|
|
|
|
text_stade = teamHost.get('stade')
|
|
|
|
|
text_heure = match_info['heure']
|
|
|
|
|
text_couleq1 = teamHost.get('background')
|
|
|
|
|
text_couleq2 = teamGuest.get('background')
|
|
|
|
|
attrib1_codematch = str(match_info['match_id'])
|
|
|
|
|
|
|
|
|
|
text_codematch = teamHost.get('letter_code') + '-' + teamGuest.get('letter_code') + \
|
|
|
|
|
'-' if teamHost.get('letter_code') is not None and teamGuest.get('letter_code') is not None else '' + matchObj.group(3) + matchObj.group(2) + str(int(matchObj.group(1)) - 2000) + '-' + str(
|
|
|
|
|
match_info['segment'])
|
|
|
|
|
text_tempsDeJeu = match_info['match_time']
|
|
|
|
|
text_tempsEffectif = match_info['net_game_time']
|
|
|
|
|
int_scoreA_match = teamHost.get('goal')
|
|
|
|
|
int_scoreB_match = teamGuest.get('goal')
|
|
|
|
|
text_equipeA_rapportForce5Min = teamHost.get('team_name')
|
|
|
|
|
text_equipeA_tempsPossession = teamHost.get('possession_duration')
|
|
|
|
|
text_equipeB_rapportForce5Min = teamGuest.get('team_name')
|
|
|
|
|
text_equipeB_tempsPossession = teamGuest.get('possession_duration')
|
|
|
|
|
int_equipeA_pctPossession = teamHost.get('possession')
|
|
|
|
|
int_equipeB_pctPossession = teamGuest.get('possession')
|
|
|
|
|
int_equipeA_ballonJoue = teamHost.get('balls_played')
|
|
|
|
|
int_equipeA_ballonGagne = teamHost.get('possessions_gained')
|
|
|
|
|
int_equipeA_ballonPerdu = teamHost.get('possessions_lost')
|
|
|
|
|
int_equipeB_ballonJoue = teamGuest.get('balls_played')
|
|
|
|
|
int_equipeB_ballonGagne = teamGuest.get('possessions_gained')
|
|
|
|
|
int_equipeB_ballonPerdu = teamGuest.get('possessions_lost')
|
|
|
|
|
int_equipeA_passe = teamHost.get('passes')
|
|
|
|
|
int_equipeA_passeReussie = teamHost.get('successful_passes')
|
|
|
|
|
int_equipeA_pctPasseReussie = teamHost.get('successful_passes_p')
|
|
|
|
|
int_equipeB_passe = teamGuest.get('passes')
|
|
|
|
|
int_equipeB_passeReussie = teamGuest.get('successful_passes')
|
|
|
|
|
int_equipeB_pctPasseReussie = teamGuest.get('successful_passes_p')
|
|
|
|
|
int_equipeA_occasion = teamHost.get('chances')
|
|
|
|
|
int_equipeB_occasion = teamGuest.get('chances')
|
|
|
|
|
int_equipeA_tir = teamHost.get('shots')
|
|
|
|
|
int_equipeA_tirCadre = teamHost.get('shots_on_target')
|
|
|
|
|
int_equipeA_tirNonCadre = teamHost.get('shot_off_target')
|
|
|
|
|
int_equipeA_pctTirsCadres = teamHost.get('shots_on_target_p')
|
|
|
|
|
int_equipeB_tir = teamGuest.get('shots')
|
|
|
|
|
int_equipeB_tirCadre = teamGuest.get('shots_on_target')
|
|
|
|
|
int_equipeB_tirNonCadre = teamGuest.get('shot_off_target')
|
|
|
|
|
int_equipeB_pctTirsCadres = teamGuest.get('shots_on_target_p')
|
|
|
|
|
int_equipeA_but = teamHost.get('goal_normal')
|
|
|
|
|
int_equipeA_butSurPenalty = teamHost.get('goal_sur_penalty')
|
|
|
|
|
int_equipeA_butContreSonCamp = teamHost.get('own_goal')
|
|
|
|
|
int_equipeB_but = teamGuest.get('goal_normal')
|
|
|
|
|
int_equipeB_butSurPenalty = teamGuest.get('goal_sur_penalty')
|
|
|
|
|
int_equipeB_butContreSonCamp = teamGuest.get('own_goal')
|
|
|
|
|
int_equipeA_horsJeu = teamHost.get('offside')
|
|
|
|
|
int_equipeB_horsJeu = teamGuest.get('offside')
|
|
|
|
|
int_equipeA_cornerEffectue = teamHost.get('corner')
|
|
|
|
|
int_equipeB_cornerEffectue = teamGuest.get('corner')
|
|
|
|
|
int_equipeA_toucheEffectuee = teamHost.get('throw_in')
|
|
|
|
|
int_equipeB_toucheEffectuee = teamGuest.get('throw_in')
|
|
|
|
|
int_equipeA_penalty = teamHost.get('goal_penalty')
|
|
|
|
|
int_equipeB_penalty = teamGuest.get('goal_penalty')
|
|
|
|
|
int_equipeA_fauteSubie = teamHost.get('fouls_received')
|
|
|
|
|
int_equipeA_fauteCommise = teamHost.get('fouls_commited')
|
|
|
|
|
int_equipeB_fauteSubie = teamGuest.get('fouls_received')
|
|
|
|
|
int_equipeB_fauteCommise = teamGuest.get('fouls_commited')
|
|
|
|
|
int_equipeA_cartonJaune = teamHost.get('yellow_cards')
|
|
|
|
|
int_equipeA_cartonRouge = teamHost.get('red_cards')
|
|
|
|
|
int_equipeB_cartonJaune = teamGuest.get('yellow_cards')
|
|
|
|
|
int_equipeB_cartonRouge = teamGuest.get('red_cards')
|
|
|
|
|
int_equipeA_centreEffectue = teamHost.get('crosses')
|
|
|
|
|
int_equipeB_centreEffectue = teamGuest.get('crosses')
|
|
|
|
|
|
|
|
|
|
def clean_list(self):
|
|
|
|
|
match_info.clear()
|
|
|
|
|
teamHost.clear()
|
|
|
|
|
hostPlayerSpam.clear()
|
|
|
|
|
teamGuest.clear()
|
|
|
|
|
guestPlayerSpam.clear()
|
|
|
|
|
teamHost['Players'] = 0
|
|
|
|
|
teamGuest['Players'] = 0
|