README / app.py
Semih25's picture
Create app.py
bd872c8 verified
Raw
History Blame Contribute Delete
2.65 kB
import streamlit as st
import requests
st.set_page_config(page_title="⚽ Maç Olasılık Analizi", layout="centered")
st.title("⚽ İki Takım — Maç Olasılık Analizi")
# Kullanıcıdan API Key al
api_key = st.text_input("API-Sports Key'inizi girin:", type="password")
# Takım isimlerini al
home_team = st.text_input("Ev Sahibi Takım (ör. Real Madrid)")
away_team = st.text_input("Deplasman Takım (ör. Barcelona)")
if st.button("🔍 Analiz Et"):
if not api_key:
st.error("Lütfen API key giriniz.")
else:
# Takım ID'sini bulmak için search endpoint'i kullan
def get_team_id(team_name):
url = f"https://v3.football.api-sports.io/teams?search={team_name}"
headers = {"x-apisports-key": api_key}
r = requests.get(url, headers=headers)
data = r.json()
if data["response"]:
return data["response"][0]["team"]["id"]
else:
return None
home_id = get_team_id(home_team)
away_id = get_team_id(away_team)
if not home_id or not away_id:
st.error(f"Takım bulunamadı: {home_team} veya {away_team}")
else:
st.success(f"{home_team} (ID: {home_id}) vs {away_team} (ID: {away_id}) bulundu ✅")
# Son 10 maç form durumunu getir
def get_last_matches(team_id):
url = f"https://v3.football.api-sports.io/fixtures?team={team_id}&last=10"
headers = {"x-apisports-key": api_key}
r = requests.get(url, headers=headers)
return r.json()["response"]
home_matches = get_last_matches(home_id)
away_matches = get_last_matches(away_id)
# Basit form analizi
def calc_winrate(matches, team_id):
wins = 0
for m in matches:
if m["teams"]["home"]["id"] == team_id and m["teams"]["home"]["winner"]:
wins += 1
elif m["teams"]["away"]["id"] == team_id and m["teams"]["away"]["winner"]:
wins += 1
return wins / len(matches) * 100 if matches else 0
home_winrate = calc_winrate(home_matches, home_id)
away_winrate = calc_winrate(away_matches, away_id)
st.subheader("📊 Olasılık Tahmini")
st.write(f"🏠 {home_team} kazanma ihtimali: **{home_winrate:.1f}%**")
st.write(f"🚌 {away_team} kazanma ihtimali: **{away_winrate:.1f}%**")
st.write(f"🤝 Beraberlik ihtimali: **{100 - (home_winrate + away_winrate)/2:.1f}%**")