1. 22 Feb, 2026 19 commits
  2. 21 Feb, 2026 20 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Fix results overlay template to display fighter names, main result, under/over... · d8864a7b
      Stefy Lanza (nextime / spora ) authored
      Fix results overlay template to display fighter names, main result, under/over result, and winning outcomes
      
      - Added separate HTML sections for main result and under/over result display
      - Added updateMainResultDisplay() and updateUnderOverResultDisplay() functions
      - Updated prepareResultsAnimation() to call both new display functions
      - Under/over result now shows with distinct styling (green for UNDER, orange for OVER)
      - web/templates is a symlink to mbetterclient/qt_player/templates
      d8864a7b
    • Stefy Lanza (nextime / spora )'s avatar
      Add user dropdown menu with gravatar support for player and broker dashboards · 6d573b42
      Stefy Lanza (nextime / spora ) authored
      - Added user dropdown menu with avatar, wallet and profile links
      - Integrated Gravatar support with MD5 hash for email-based avatars
      - Added dropdown toggle functionality with click-outside-to-close
      - Fixed balance display colors for better readability
      - Added dropdown divider styling
      6d573b42
    • Stefy Lanza (nextime / spora )'s avatar
      Update profile page to use Gravatar and show all user data · 5de4417b
      Stefy Lanza (nextime / spora ) authored
      - Add MD5 hash function for Gravatar URL generation
      - Display avatar from custom URL or Gravatar (with email hash)
      - Show real_name or username as display name
      - Show email from database
      - Format member since date nicely
      - Add fallback for avatar load errors
      - Update back button based on user role
      5de4417b
    • Stefy Lanza (nextime / spora )'s avatar
      Add separate wallet page and fix username display · 32e9c182
      Stefy Lanza (nextime / spora ) authored
      - Create wallet.html with full wallet management UI
      - Fix player.js to show actual username (real_name or username) instead of 'Player'
      - Add Wallet links to player.html and broker.html headers
      - Wallet page includes balance overview, deposit/withdraw modals, transaction history
      32e9c182
    • Stefy Lanza (nextime / spora )'s avatar
      Add wallet and profile features for brokers and players · 63393234
      Stefy Lanza (nextime / spora ) authored
      - Add WalletModel and WalletTransactionModel for balance tracking
      - Add wallet API endpoints: balance, deposit, withdraw, transactions
      - Add profile API endpoints: password change, email change with verification, avatar upload
      - Create profile.html page with wallet and profile management UI
      - Update player.html and broker.html with profile links
      - Add wallet and profile JavaScript functions to app.js
      - Add comprehensive CSS styling for profile and wallet components
      63393234
    • Stefy Lanza (nextime / spora )'s avatar
      Fix web player overlay template cycling during match video · 716c6371
      Stefy Lanza (nextime / spora ) authored
      - Fix overlay controller to properly handle video phase state machine
      - Stop template rotation during match/result phases
      - Fetch match data with fighter names from database for match phase
      - Send match data to match_video template via matchUpdate message
      - Handle result_data properly in result phase
      - Update match_video template to process match data from web player
      - Update overlay-web-adapter to emit match data directly
      
      This fixes the issue where the web player overlay was cycling between
      fixtures and match templates instead of showing the match_video template
      during match video playback, and not showing results either.
      716c6371
    • Stefy Lanza (nextime / spora )'s avatar
      Bump version to 1.0.15 (1.0r15) · a72b1640
      Stefy Lanza (nextime / spora ) authored
      - Updated main.py version to 1.0.15
      - Updated build.py app_version to 1.0.15
      - Updated MbetterClient.spec version to 1.0.15
      - Updated mbetterclient/__init__.py __version__ to 1.0.15
      - Updated mbetterclient/config/settings.py version to 1.0.15
      - Updated mbetterclient/config/settings.py user_agent to MbetterClient/1.0r15
      - Updated mbetterclient/web_dashboard/app.py app_version to 1.0.15
      a72b1640
    • Stefy Lanza (nextime / spora )'s avatar
      Fix results template fighter names and prevent duplicate match_video initialization · b485f12c
      Stefy Lanza (nextime / spora ) authored
      - Added guard in loadTemplate() to skip if template already loaded
      - Fixed executePhaseTransition() to properly pass match data to results template
      - Removed duplicate match_video loading logic in fetchOverlayData()
      - Template names are now normalized to prevent case-sensitivity issues
      b485f12c
    • Stefy Lanza (nextime / spora )'s avatar
      Fix overlay template cycling during match video playback · 80e69d88
      Stefy Lanza (nextime / spora ) authored
      - Fixed overlay controller to check video phase before loading templates
      - Prevented template rotation during match and result phases
      - Fixed resultUpdate message handling in overlay-web-adapter.js
      - Template rotation now only runs during idle/intro phases
      - match_video template now correctly displays during match video
      - results template now correctly displays during result video
      80e69d88
    • Stefy Lanza (nextime / spora )'s avatar
      Fix overlay template cycling during match video playback · b4792d9c
      Stefy Lanza (nextime / spora ) authored
      - Set video_phase='match' in rtsp_streamer._switch_to_video() when playing UNDER/OVER videos
      - Stop template rotation immediately when match/result phase detected in overlay-controller.js
      - This prevents the overlay from cycling between fixtures/match templates during match video
      - Results template now properly displays after match video ends
      b4792d9c
    • Stefy Lanza (nextime / spora )'s avatar
      Fix: Prevent creating multiple today fixtures by adding cache · 07182e9c
      Stefy Lanza (nextime / spora ) authored
      - Added _cached_today_fixture_id and _today_fixture_cache_time to cache today's fixture
      - Cache is valid for 60 seconds to prevent race conditions
      - This prevents multiple fixtures being created when _get_or_create_today_fixture is called multiple times in quick succession
      - Also provides MySQL queries for user to clean up duplicate fixtures
      07182e9c
    • Stefy Lanza (nextime / spora )'s avatar
      Handle pending matches in today's fixture during initialization · 537311c1
      Stefy Lanza (nextime / spora ) authored
      - Add _process_today_pending_matches() to process pending matches in today's fixture
      - Add _resolve_match_bets() to resolve bets for matches being finalized
      - Add _get_outcome_coefficient_for_bet() to get coefficients for bet resolution
      - For pending matches with no results: change status to 'bet' to play first
      - For pending matches with results: finalize as 'done' and resolve associated bets
      - Add Step 5 in initialize() to process today's pending matches
      537311c1
    • Stefy Lanza (nextime / spora )'s avatar
      Fix video overlay template sequence to use configured templates from dashboard · c56054b0
      Stefy Lanza (nextime / spora ) authored
      - Add _get_outcome_template() method to fetch template assignments from database
      - Update _handle_play_video_match() to use configured template for UNDER/OVER videos
      - Update _play_result_video() to use configured template for result videos
      - Update _switch_to_result_overlay() to use new template lookup method
      - Templates are now correctly loaded based on dashboard configuration
      - Falls back to match_video.html for UNDER/OVER and results.html for other outcomes
      c56054b0
    • Stefy Lanza (nextime / spora )'s avatar
      Fix multiple today fixtures creation and reset fixtures foreign key error · d908463e
      Stefy Lanza (nextime / spora ) authored
      - Fix _get_or_create_today_fixture() to use created_at as fallback when start_time is NULL
      - Replace _initialize_new_fixture() calls with _get_or_create_today_fixture() in _handle_start_game()
      - Fix reset_fixtures() to use raw SQL DELETE statements for proper MySQL foreign key handling
      - Delete tables in correct order: extraction_stats, bets_details, bets, match_outcomes, matches, match_outcomes_templates, matches_templates
      d908463e
    • Stefy Lanza (nextime / spora )'s avatar
      Fix: Handle matches with NULL start_time in cleanup logic · 074153e0
      Stefy Lanza (nextime / spora ) authored
      - Updated _cleanup_old_incomplete_matches() to also check matches with NULL start_time using created_at as fallback
      - Updated _get_yesterday_incomplete_matches() to also check matches with NULL start_time using created_at as fallback
      - Added detailed debug logging to help diagnose date/time issues
      - This fixes the issue where matches from old fixtures were not being detected because their start_time was NULL or recently synced
      074153e0
    • Stefy Lanza (nextime / spora )'s avatar
      Fix handling of incomplete matches from past days on startup · e4010d4e
      Stefy Lanza (nextime / spora ) authored
      - Add _cleanup_old_incomplete_matches() to mark 2+ day old matches as failed
      - Add _get_yesterday_incomplete_matches() to detect yesterday's incomplete matches
      - Add _get_or_create_today_fixture() to ensure new matches go to today's fixture
      - Modify initialize() to process past incomplete matches before starting
      - Modify _handle_start_game() to use pre-computed yesterday_fixture_id
      - Add yesterday_fixture_id attribute to track yesterday's fixture for completion
      
      This ensures:
      - Matches from 2+ days ago are marked as failed with bet cancellation
      - Yesterday's incomplete matches are played to completion first
      - New matches are created in today's fixture, not yesterday's
      e4010d4e
    • Stefy Lanza (nextime / spora )'s avatar
      Add cleanup for incomplete matches from past days · 15d06c2c
      Stefy Lanza (nextime / spora ) authored
      - Add _cleanup_old_incomplete_matches() to close matches 2+ days old as 'failed'
      - Add _get_yesterday_incomplete_matches() to find yesterday's incomplete matches
      - Add _get_or_create_today_fixture() to ensure new matches go to today's fixture
      - Add yesterday_fixture_id attribute to track yesterday's fixture for completion
      - Modify initialize() to process past incomplete matches before starting
      - Pre-create today's fixture when yesterday's incomplete matches are found
      - Ensure new matches are created in today's fixture, not yesterday's
      15d06c2c
    • Stefy Lanza (nextime / spora )'s avatar
      Implement Video Phase State Machine for HLS synchronization · d7d1b0a7
      Stefy Lanza (nextime / spora ) authored
      - Add video phase tracking in RTSPStreamer (idle, intro, match, result)
      - Implement HLS delay compensation for overlay template synchronization
      - Fix results template not showing after match video ends
      - Add phase transition handling with configurable delay compensation
      - Update overlay API endpoint to include video phase state
      - Add phaseTransitionTimer for delayed template changes
      
      This ensures overlay templates are synchronized with HLS video playback
      by compensating for FFmpeg encoding and web player buffering delays.
      d7d1b0a7
    • Stefy Lanza (nextime / spora )'s avatar
      Fix match result display: use display_result field to show actual fight winner... · 02284075
      Stefy Lanza (nextime / spora ) authored
      Fix match result display: use display_result field to show actual fight winner instead of UNDER/OVER
      02284075
    • Stefy Lanza (nextime / spora )'s avatar
  3. 20 Feb, 2026 1 commit