Skip to content

Add FIFA World Cup 2026 plugin#62

Open
TimWheeler-SQUP wants to merge 11 commits into
mainfrom
work/tw/worldcup2026-plugin
Open

Add FIFA World Cup 2026 plugin#62
TimWheeler-SQUP wants to merge 11 commits into
mainfrom
work/tw/worldcup2026-plugin

Conversation

@TimWheeler-SQUP

@TimWheeler-SQUP TimWheeler-SQUP commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

🔌 Plugin overview

  • Plugin name: FIFA World Cup 2026
  • Purpose / problem solved: Brings World Cup 2026 data into SquaredUp — group standings, match results, upcoming fixtures, and knockout bracket — scoped to any indexed team object
  • Primary audience: Anyone following the FIFA World Cup 2026; teams wanting a fun live dashboard alongside their monitoring

🖼️ Plugin screenshots

image image

Plugin configuration

No configuration required — the API is public and unauthenticated.

Default dashboards

The bundled Team Dashboard contains four tiles scoped to a selected World Cup Team object:

  • Next Match — next upcoming fixture (transposed table)
  • Last Match — most recent completed match with result
  • Group Standings — all teams in the selected team's group, ranked by points/GD/GF
  • Stats — Country, Group, Goals For/Against/Difference, Points for the selected team

🧪 Testing

  • Deployed to a dev tenant using squaredup deploy --suffix tw --stage master
  • Tested with multiple team objects: Mexico, Czech Republic, England
  • Verified Group Standings filters correctly to the team's group (4 rows returned)
  • Verified Next Match and Last Match return correct data after matches are played
  • Verified Team Standing calculates W/D/L/Points/GD correctly from raw match data
  • Config validation step confirmed connectivity on plugin setup

⚠️ Known limitations

  • Data is sourced from the openfootball community JSON (github.com/openfootball/worldcup.json) — not FIFA's official data feed. Availability and accuracy depend on that community-maintained source
  • Flag URLs and FIFA codes are not available from this source

📚 Checklist

  • Plugin, datastream and UI naming follow SquaredUp guidelines
  • Logo added
  • One or more dashboards added
  • README added including configuration guidance
  • No secrets or credentials included
  • I agree to the Code of Conduct

🤖 Generated with Claude Code

TimWheeler-SQUP and others added 10 commits June 12, 2026 10:36
Monitors all 48 teams, match results, group standings, and knockout fixtures via the community worldcup26.ir API. Includes per-team perspective dashboard with next/last match, group points, and stats tiles.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add name_en to indexed properties so context.objects[0].name_en is
  accessible in scripts (was undefined, causing all team filters to
  silently return no results)
- Update team-standing, next-match, last-match scripts to use name_en
- Convert matches and group-standings to httpRequestScopedSingle with
  the same World Cup Team object picker as team-standing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Switch scoped streams from name-based to ID-based team matching
  (name_en property key may be normalised by SquaredUp; teamId is
  unambiguous and more robust)
- Store teamName and teamId as explicit properties with mapped keys
- Fix isHome check in team-standing to use team ID not name
- Add Country column to Team Standing data stream
- Rename MP -> Played and Pts -> Points in Group Standings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix isHome check in next-match and last-match to use teamId (teamName
  was removed but still referenced, causing script errors)
- Unwrap teamName property with [].concat()[0] since SquaredUp stores
  indexed properties as arrays

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Indexed properties are stored as arrays in SquaredUp, so teamFilter was
["Mexico"] instead of "Mexico", causing the strict equality check to
never match and returning all 48 teams. Apply [].concat()[0] unwrapping
consistent with other scoped scripts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Flag emojis prepended to all team/opponent name columns across
  group-standings, matches, next-match, last-match (name lookup),
  and team-standing (iso2-based conversion with ENG/SCO special cases)
- team-standing stream: add group and goal difference columns
- Stats OOB tile: now shows Country, Group, GF, GA, GD, Points
- Group Points OOB tile replaced with scoped Group Standings table
- teams-import: make id column hidden by default

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Revert flag emojis — Regional Indicator Symbol pairs render as letter
codes (HR, GH, PA) rather than flag images in SquaredUp's table tile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Clicking Country in Team Standing or Team in Group Standings now
navigates to the World Cup Team object. Raw team ID is output as
the sourceId column; SquaredUp resolves World Cup Team~{id} in
the graph via the drilldown metadata entry on each stream.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rewrites all scripts and data stream configs to use the openfootball
JSON (raw.githubusercontent.com). Teams are now extracted from group
stage matches rather than a dedicated endpoint. Team identity switches
from numeric IDs to team name strings. Removes live match status, flag
URLs, FIFA codes and ISO codes (unavailable from new source). Bumps to
v1.2.0.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@TimWheeler-SQUP TimWheeler-SQUP requested a review from a team June 12, 2026 14:41
Comment thread plugins/WorldCup2026/v1/docs/README.md Outdated
@TimWheeler-SQUP TimWheeler-SQUP requested a review from a team June 12, 2026 14:43
Updated the data source URL in the README to point to the new community data source.
@github-actions

Copy link
Copy Markdown

🧩 Plugin PR Summary

📦 Modified Plugins

  • plugins/WorldCup2026/v1

📋 Results

Step Status
Validation ✅ Passed
Deployment 🚀 Deployed

🔍 Validation Details

worldcup2026
{
  "valid": true,
  "pluginName": "worldcup2026",
  "pluginType": "hybrid",
  "summary": {
    "Data Streams": 7,
    "Import Definitions": 1,
    "UI Configuration": false,
    "Has Icon": true,
    "Has Default Content": true,
    "Config Validation": true,
    "Custom Types": true
  }
}

@clarkd

clarkd commented Jun 12, 2026

Copy link
Copy Markdown
Member

@claude review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants