From 6cb9ffc781ae67f8cedd31850dda36d37edff3d0 Mon Sep 17 00:00:00 2001 From: LukaszChrostowski Date: Sat, 6 Jan 2024 11:27:58 +0100 Subject: [PATCH] =?UTF-8?q?Dalsza=20praca=20nad=20integracj=C4=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/components/Hero.jsx | 39 ++++++++++++++++++++++------------ app/src/flask-server/server.py | 22 +++++++++++++------ 2 files changed, 40 insertions(+), 21 deletions(-) diff --git a/app/src/components/Hero.jsx b/app/src/components/Hero.jsx index 52997f7..278bf7d 100644 --- a/app/src/components/Hero.jsx +++ b/app/src/components/Hero.jsx @@ -190,6 +190,8 @@ const Hero = () => { ball.style.left = x + "%" ball.style.top = y + "%" } + //var shooterX = konwerturX(ball.style.left) + //var shooterY = konwetujY(ball.style.top) posytion.innerHTML = "x:" + konwerturX(ball.style.left) + "m " + "y:" + konwetujY(ball.style.top) + "m"; bojo.addEventListener("mouseup", function(){ ball.style.background = pColor @@ -204,20 +206,29 @@ const Hero = () => { // // Wyłanie zapytania do serwera function sentQuestion() { var ball = document.querySelector('.football'); - if (ball) { - fetch("http://127.0.0.1:5000/get_model").then( - res=> res.json() - ).then( - data => { - setData(data) - console.log(data) - } - ) - eX = data.response - document.getElementById("ex").innerHTML = "Współczynnik xG: "+ eX - } else { - alert('Piłka nie jest obecnie na boisku.'); - } + + if (ball) { + // Użyj backticksów zamiast zwykłych cudzysłowów + //console.log('Wysyłanie wartości: ', ball); + shooterX = konwerturX(ball.style.left) + shooterY = konwetujY(ball.style.top) + console.log('Wysyłanie wartości: ', shooterX, shooterY); + fetch(`http://127.0.0.1:5000/get_model?x=${shooterX}&y=${shooterY}`).then( + res => res.json() + ).then( + data => { + setData(data); + console.log(data); + // Przenieś tę linię do środka bloku .then(), aby uniknąć błędów + let eX = data.response; + document.getElementById("ex").innerHTML = "Współczynnik xG: " + eX; + } + ).catch(error => { + console.error('Błąd:', error); + }); + } else { + alert('Piłka nie jest obecnie na boisku.'); + } } diff --git a/app/src/flask-server/server.py b/app/src/flask-server/server.py index c3336e2..c8beb7c 100644 --- a/app/src/flask-server/server.py +++ b/app/src/flask-server/server.py @@ -1,4 +1,4 @@ -from flask import Flask +from flask import Flask, request, jsonify from flask_cors import CORS from modele.modele import LogisticRegression_predict_proba @@ -15,14 +15,21 @@ app.config['CORS_HEADERS'] = 'Content-Type' # zapytanie o regresje logistyczną na podstawie pozycji piłki # @app.route("/LRegresion&") -@app.route("/get_model") +@app.route("/get_model", methods = ['GET']) def get_model(): - #x = int(x[0:2]) - #y = int(y[0:2]) + # x = int(x[0:2]) + # y = int(y[0:2]) + x = request.args.get('x', type=float) + y = request.args.get('y', type=float) + ## change model on xgboost + ## add angle, match minutes and number of players - response = LogisticRegression_predict_proba(position_x=5, - position_y=5, + if y is None and x is None: + return jsonify({"error": "Brak wymaganych parametrów"}), 400 + + response = LogisticRegression_predict_proba(position_x=x, + position_y=y, angle = 13.67, match_minute=13, Number_Intervening_Opponents=3, @@ -33,7 +40,8 @@ def get_model(): #print(y) #print(response) res = str(response) - return {"response":res} + #return {"response":res} + return jsonify({"response":res}) # uruchomienie serwera if __name__ == "__main__":