Fix web player results overlay to show correct data

- Query ExtractionAssociationModel for winning outcomes based on match result
- Include under_over_result in winning outcomes list
- Match Qt player's getWinningOutcomes() logic in API endpoint
- Results overlay now correctly shows fighter names, result, winning outcomes, and under/over result
parent d8864a7b
...@@ -754,20 +754,13 @@ ...@@ -754,20 +754,13 @@
</div> </div>
</div> </div>
<!-- Main Result Display --> <!-- Combined Result Display -->
<div class="main-result-display" id="mainResultDisplay"> <div class="combined-result-display" id="combinedResultDisplay">
<div class="main-result-text" id="mainResultText"> <div class="combined-result-text" id="combinedResultText">
<span id="mainResult">WIN1</span> <span id="mainResult">WIN1</span>
</div> </div>
</div> </div>
<!-- Under/Over Result Display -->
<div class="under-over-display" id="underOverDisplay">
<div class="under-over-text" id="underOverText">
<span id="underOverResult">UNDER</span>
</div>
</div>
<!-- Winning Bets Section --> <!-- Winning Bets Section -->
<div class="winning-bets-section"> <div class="winning-bets-section">
<div class="bets-title">Winning bets:</div> <div class="bets-title">Winning bets:</div>
...@@ -1087,11 +1080,8 @@ ...@@ -1087,11 +1080,8 @@
// Update fighters display // Update fighters display
updateFightersDisplay(); updateFightersDisplay();
// Update main result display // Update combined result display
updateMainResultDisplay(); updateCombinedResultDisplay();
// Update under/over result display
updateUnderOverResultDisplay();
// Update winning bets display // Update winning bets display
updateWinningBetsDisplay(); updateWinningBetsDisplay();
...@@ -1206,37 +1196,16 @@ ...@@ -1206,37 +1196,16 @@
} }
} }
// Update main result display // Update combined result display
function updateMainResultDisplay() { function updateCombinedResultDisplay() {
const mainResultSpan = document.getElementById('mainResult'); const mainResultSpan = document.getElementById('mainResult');
const mainResultDisplay = document.getElementById('mainResultDisplay'); const combinedDisplay = document.getElementById('combinedResultDisplay');
if (currentMainResult) { if (currentMainResult) {
mainResultSpan.textContent = currentMainResult; mainResultSpan.textContent = currentMainResult;
mainResultDisplay.style.display = 'block'; combinedDisplay.style.display = 'block';
} else {
mainResultDisplay.style.display = 'none';
}
}
// Update under/over result display
function updateUnderOverResultDisplay() {
const underOverResultSpan = document.getElementById('underOverResult');
const underOverDisplay = document.getElementById('underOverDisplay');
const underOverText = document.getElementById('underOverText');
if (currentUnderOverResult) {
underOverResultSpan.textContent = currentUnderOverResult;
underOverDisplay.style.display = 'block';
// Add 'over' class for different styling
if (currentUnderOverResult === 'OVER') {
underOverDisplay.classList.add('over');
} else {
underOverDisplay.classList.remove('over');
}
} else { } else {
underOverDisplay.style.display = 'none'; combinedDisplay.style.display = 'none';
} }
} }
......
...@@ -10758,8 +10758,31 @@ def get_overlay_data(): ...@@ -10758,8 +10758,31 @@ def get_overlay_data():
# Also add under_over_result if available # Also add under_over_result if available
if match.under_over_result: if match.under_over_result:
overlay_data['result_data']['under_over_result'] = match.under_over_result overlay_data['result_data']['under_over_result'] = match.under_over_result
# Add winning outcomes if available
if match.winning_outcomes: # Get winning outcomes from ExtractionAssociationModel (like Qt player does)
winning_outcome_names = []
result = match.result or overlay_data['result_data'].get('result') or overlay_data['result_data'].get('outcome')
if result:
try:
from ..database.models import ExtractionAssociationModel
winning_outcomes_query = session.query(ExtractionAssociationModel.outcome_name).filter(
ExtractionAssociationModel.extraction_result == result
).all()
winning_outcome_names = [outcome.outcome_name for outcome in winning_outcomes_query]
logger.debug(f"Found {len(winning_outcome_names)} winning outcomes from associations for result {result}: {winning_outcome_names}")
except Exception as assoc_error:
logger.warning(f"Failed to query ExtractionAssociationModel: {assoc_error}")
# Include under_over_result if available
if match.under_over_result and match.under_over_result not in winning_outcome_names:
winning_outcome_names.append(match.under_over_result)
# Convert to the format expected by the template
if winning_outcome_names:
overlay_data['result_data']['winningOutcomes'] = [{'outcome': o} for o in winning_outcome_names]
elif match.winning_outcomes:
# Fallback to match.winning_outcomes if no associations found
import json import json
try: try:
winning_outcomes = json.loads(match.winning_outcomes) if isinstance(match.winning_outcomes, str) else match.winning_outcomes winning_outcomes = json.loads(match.winning_outcomes) if isinstance(match.winning_outcomes, str) else match.winning_outcomes
......
...@@ -61,6 +61,8 @@ server { ...@@ -61,6 +61,8 @@ server {
proxy_no_cache 1; proxy_no_cache 1;
proxy_cache_bypass 1; proxy_cache_bypass 1;
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0";
expires -1; # Also helps with older clients
} }
# HLS stream # HLS stream
...@@ -81,6 +83,8 @@ server { ...@@ -81,6 +83,8 @@ server {
proxy_no_cache 1; proxy_no_cache 1;
proxy_cache_bypass 1; proxy_cache_bypass 1;
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0";
expires -1; # Also helps with older clients
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment