Skip to content

A MagicMirror² module that displays football league standings from multiple competitions including the World Cup 2026, UEFA Champions League (UCL), UEFA Europa League (UEL), UEFA Europa Conference League (ECL), English Premier League (EPL), German Bundesliga,French La Ligue , Italian Serie A , Spanish Primera División, Portuguese Liga, Scottish SP

License

Notifications You must be signed in to change notification settings

gitgitaway/MMM-MyTeams-LeagueTable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

240 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MMM-MyTeams-LeagueTable

A comprehensive MagicMirror² module that displays football league standings from multiple competitions including the FIFA 2026 World Cup , UEFA Champions League (UCL), UEFA Europa League (UEL), UEFA Europa Conference League (ECL), English Premier League (EPL), German Bundesliga,French La Ligue , Italian Serie A , Spanish Primera División, Portuguese Liga, SPFL (Scottish Professional Football League) and Scottish Championship (SPFLC) as well as most other European and World wide leagues, with data sourced from the official website of the BBC Sport with robust fallback data and detailed error handling.

  • Author: gitgitaway

MagicMirror² License: MIT

🎬 Screenshots

[Screenshot 1] [Screenshot 2] [Screenshot 3]
[Screenshot 4] [Screenshot 5] [Screenshot 6]
[Screenshot 7]

🆕 Recent Updates (v1.8.4 - 2026-02-21)

UEFA Display & Data Quality Enhancements:

  • Equal-height split view - Results and Future Fixtures sections now display exactly 4 fixtures each without scrolling
  • Fixed partial team names - "Newcastle" → "Newcastle United", "Atletico" → "Atletico Madrid", "Leverkusen" → "Bayer Leverkusen"
  • Enhanced corruption detection - Properly identifies and repairs fixtures like "Dortmund vs Borussia Dortmund"
  • Improved team name matching - Less aggressive normalization preserves team identity while detecting duplicates
  • 🎨 Optimized fixture display - Reduced header/row padding to maximize visible content

See CHANGELOG.md for complete details.

🏆 Key Features

  • Multi-League Support: Track SPFL, EPL, Bundesliga, La Liga, and 20+ other national leagues.
  • Tournament Modes: Dedicated views for UEFA Champions League and FIFA World Cup 2026.
  • Intelligent Logo Mapping: Automatic team crest resolution for over 1,700 teams.
  • Performance Optimized: Server-side processing, intelligent caching, and smooth CSS transitions.
  • Accessible Design: Full ARIA support and responsive typography.
  • Stale Data Protection: Automatic warning indicators if live data cannot be fetched.
  • Auto-Cycling: Automatically rotate between different leagues or tournament groups.

Requirements & Dependencies

  • MagicMirror²: v2.1.0 or newer (tested on 2.32.0)
  • Node.js: v14+ (tested on v22.14.0)
  • Network access: HTTPS egress to www.bbc.co.uk
  • Runtime NPM dependencies: None (uses Node core modules and MagicMirror core only)
  • Optional Dev Tools (for local lint/format only; not required to run):
    • eslint ^8
    • prettier ^2

Installation

  1. Navigate to your MagicMirror's modules folder:
cd ~/MagicMirror/modules/
  1. Clone this repository:
git clone https://github.com/gitgitaway/MMM-MyTeams-LeagueTable.git

Configuration

To use this module, add it to the modules array in the ~/MagicMirror/config/config.js file:

Minimum Configuration

{
  module: "MMM-MyTeams-LeagueTable",
  position: "top_right",
  config: {
    selectedLeagues: ["SCOTLAND_PREMIERSHIP"]
  }
},

Full Configuration

{
  module: "MMM-MyTeams-LeagueTable",
  position: "top_right",
  header: "Football Standings",
  config: {
    updateInterval: 30 * 60 * 1000,
    selectedLeagues: ["SCOTLAND_PREMIERSHIP", "ENGLAND_PREMIER_LEAGUE", "UEFA_CHAMPIONS_LEAGUE", "WORLD_CUP_2026"],
    autoCycle: true,
    cycleInterval: 20000,
    highlightTeams: ["Celtic", "Liverpool", "Scotland"],
    maxTeams: 12,
    showTeamLogos: true,
    showForm: true,
    formMaxGames: 6,
    colored: true,
    showLeagueButtons: true,
    autoFocusRelevantSubTab: true,
    maxTableHeight: 600
  }
},

See - Configuration User Guide: for further detailed configuration options.

Configuration Options

Core Options

Option Default Description
updateInterval 1800000 (30m) How often to refresh data (in milliseconds).
selectedLeagues ["SCOTLAND_PREMIERSHIP"] Array of league codes to display.
highlightTeams ["Celtic", "Hearts"] Array of team names to visually emphasize.
maxTeams 36 Maximum number of teams to show (0 for all).
scrollable true Enable vertical scrolling if max height exceeded.
maxTableHeight 460 Height in px before scrolling kicks in.

Display Toggles

Option Default Description
showTeamLogos true Show/hide team crests.
showPosition true Show/hide league rank.
showPlayedGames true Show games played column.
showWon / showDrawn / showLost true Toggle W/D/L columns.
showGoalsFor / showGoalsAgainst true Toggle GF/GA columns.
showGoalDifference true Show GD column.
showPoints true Show points column.
showForm true Show recent match results (W/D/L).
formMaxGames 6 Number of recent games to show in form column.
colored true Color-code rows (Promotion/UEFA/Relegation zones).
showLeagueButtons true Show/hide the interactive tabs in the header.

Cycling Options

Option Default Description
autoCycle false If true, automatically rotate through selected leagues.
cycleInterval 15000 (15s) Time to display each league during auto-cycling.
autoCycleWcSubtabs true Allow auto-cycling of World Cup sub-tabs (groups/knockouts).
wcSubtabCycleInterval 15000 Time to display each WC sub-tab.

Tournament Specific (World Cup 2026 & UEFA)

Option Default Description
showWC2026 false Show World Cup 2026 in league switcher.
showUEFAleagues false Show UEFA leagues in league switcher.
onlyShowWorldCup2026 false Force module into dedicated World Cup mode.
autoFocusRelevantSubTab true Automatically focus on live or upcoming matches.
showWC2026Groups ["A"..."L"] Array of groups to display.
showWC2026Knockouts ["Rd32"..."Final"] Knockout rounds to show.
showUEFAnockouts ["Playoff"..."Final"] UEFA knockout stages to show.

⚽ Available Leagues

Use these codes in your selectedLeagues array:

  • UK: SCOTLAND_PREMIERSHIP, SCOTLAND_CHAMPIONSHIP, ENGLAND_PREMIER_LEAGUE
  • Major Europe: GERMANY_BUNDESLIGA, SPAIN_LA_LIGA, ITALY_SERIE_A, FRANCE_LIGUE1, NETHERLANDS_EREDIVISIE
  • Other Europe: PORTUGAL_PRIMEIRA_LIGA, BELGIUM_PRO_LEAGUE, TURKEY_SUPER_LIG, GREECE_SUPER_LEAGUE, AUSTRIA_BUNDESLIGA, CZECH_LIGA, DENMARK_SUPERLIGAEN, NORWAY_ELITESERIEN, SWEDEN_ALLSVENSKAN, SWITZERLAND_SUPER_LEAGUE, UKRAINE_PREMIER_LEAGUE, ROMANIA_LIGA_I, CROATIA_HNL, SERBIA_SUPER_LIGA, HUNGARY_NBI, POLAND_EKSTRAKLASA
  • International/UEFA: UEFA_CHAMPIONS_LEAGUE, UEFA_EUROPA_LEAGUE, UEFA_EUROPA_CONFERENCE_LEAGUE, WORLD_CUP_2026

📚 Detailed Documentation

Core Documentation

Tournament & League Guides

Technical References

Project Files

Acknowledgments

Thanks to the MagicMirror community for inspiration and guidance! Thanks to the BBC for providing free access to their sports pages.

License

MIT

About

A MagicMirror² module that displays football league standings from multiple competitions including the World Cup 2026, UEFA Champions League (UCL), UEFA Europa League (UEL), UEFA Europa Conference League (ECL), English Premier League (EPL), German Bundesliga,French La Ligue , Italian Serie A , Spanish Primera División, Portuguese Liga, Scottish SP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published