Skip to content

App/planes overhead#17

Merged
csader merged 2 commits into
csader:mainfrom
InertiaImpact:app/Planes_Overhead
May 6, 2026
Merged

App/planes overhead#17
csader merged 2 commits into
csader:mainfrom
InertiaImpact:app/Planes_Overhead

Conversation

@InertiaImpact
Copy link
Copy Markdown
Contributor

@InertiaImpact InertiaImpact commented May 6, 2026

This is reliant on #16 being merged first as it makes use of the advanced settings features introduced in that PR.

I can rebase if needed after #16 is merged if it will make things easier.

Planes Overhead App

This PR adds a comprehensive multi-provider aircraft tracking app to SplitFlap OS.

image

Features

  • Multi-provider support: Fetch nearby aircraft from OpenSky, FlightAware AeroAPI, Flightradar24, AirLabs, or Aviationstack
  • Flexible configuration:
    • Custom location (lat/lon) and search radius (miles or kilometers)
      Default location set to ORD Airport for high traffic example.
    • Adjustable polling rate and dwell time per flight
    • Maximum flight display limit with cycling
    • Units preset (aviation, metric, imperial) or custom
  • OpenSky OAuth2 support: Client credentials authentication with automatic token refresh; falls back to free anonymous tier when no credentials are provided
  • Smart polling: Plugin-local state tracking prevents redundant API calls when settings haven't changed; respects per-provider rate limits
  • Robust error handling: Provider-specific error pages for auth failures, rate limits, timeouts, and other API issues
  • Clean display: Shows callsign, distance, altitude (FL/feet/meters), heading, and speed for each aircraft

Implementation Details

  • Settings-driven configuration with conditional visibility (e.g., API keys only show when that provider is selected)
  • In-app polling state to support save-triggered refresh without server-side cache hooks
  • Haversine distance calculation and bearing/cardinal direction computation
  • Graceful degradation when providers are unavailable
image
  • Default provider is OpenSky with a anonymous API, settings will warn if you set refresh higher than your daily limit on the free tier.

    image

Files

  • apps/planes_overhead/app.py — Provider clients, data parsing, formatting
  • apps/planes_overhead/manifest.json — Settings schema with defaults and provider toggles
  • apps/registry.json — App registration entry

@csader
Copy link
Copy Markdown
Owner

csader commented May 6, 2026

Nice app! The code looks solid.

Since PR #16 is now merged, this PR has duplicate changes in server/app.py, app.js, styles.css, README.md, and APPS_README.md that will conflict. Can you rebase on latest main?

git fetch upstream
git rebase upstream/main
git push --force-with-lease origin app/Planes_Overhead

After that we can merge cleanly. The only new files should be apps/planes_overhead/ and the registry.json entry.

Keep provider polling state in-process and add OpenSky OAuth token fetch/caching so callers can supply client_id/secret for higher limits. Introduce polling rate logic and a settings signature to avoid unnecessary requests, broaden max_results limit, and cache flights between polls. Add robust provider error handling that maps timeouts, connection errors, auth failures, rate limits and server errors to user-facing pages. Update manifest defaults and UI: change refresh_interval, default location, radius, max results, dwell and polling defaults, mark some datasources with a note, and add opensky_client_id/opensky_client_secret settings (visible when using OpenSky).
@InertiaImpact InertiaImpact force-pushed the app/Planes_Overhead branch from 65497d1 to 5ad4e8e Compare May 6, 2026 16:03
@InertiaImpact
Copy link
Copy Markdown
Contributor Author

Nice app! The code looks solid.

Since PR #16 is now merged, this PR has duplicate changes in server/app.py, app.js, styles.css, README.md, and APPS_README.md that will conflict. Can you rebase on latest main?

git fetch upstream
git rebase upstream/main
git push --force-with-lease origin app/Planes_Overhead

After that we can merge cleanly. The only new files should be apps/planes_overhead/ and the registry.json entry.

Should be rebased with just the 2 new files and the registry addition.

@csader csader merged commit bb8c4d1 into csader:main May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants