fix(aircraft): show planespotters photo in overlay popup #18

Merged
sirius merged 1 commit from fix/planespotters-popup-photo into master 2026-08-28 23:27:23 -04:00
Owner

Summary

  • Aircraft overlay popups now keep the Planespotters thumbnail after it loads (Leaflet popup.update() was wiping the <img>).
  • Server lookups send a contact User-Agent so planespotters stops 403ing /api/aircraft/photo.
  • Compose default OSINT_USER_AGENT matches config.py (email included).
  • Live firefighter upserts carry hex + src so they get a photo too.

Test plan

  • pytest tests/test_live_layers.py tests/test_api_live_layers.py — 39 passed
  • Clicked an ADS-B marker: thumbnail + © photographer in the popup
  • After merge/deploy: zoom in with Aircraft on, click a plane, photo stays
## Summary - Aircraft overlay popups now keep the Planespotters thumbnail after it loads (Leaflet `popup.update()` was wiping the `<img>`). - Server lookups send a contact User-Agent so planespotters stops 403ing `/api/aircraft/photo`. - Compose default `OSINT_USER_AGENT` matches `config.py` (email included). - Live firefighter upserts carry `hex` + `src` so they get a photo too. ## Test plan - [x] `pytest tests/test_live_layers.py tests/test_api_live_layers.py` — 39 passed - [x] Clicked an ADS-B marker: thumbnail + `© photographer` in the popup - [ ] After merge/deploy: zoom in with Aircraft on, click a plane, photo stays
sirius added 1 commit 2026-08-28 23:26:48 -04:00
Planespotters 403s server clients whose User-Agent has no contact
email; compose default UA lacked one. Leaflet popup.update() also
re-ran the bindPopup factory and wiped the thumbnail after load.

- Send a contact UA on planespotters lookups; align compose default.
- Resize the popup without re-rendering content.
- Keep hex/src on live firefighter upserts so they get a photo too.
sirius merged commit 30a9c9e9b1 into master 2026-08-28 23:27:23 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sirius/osint-dashboard#18
No description provided.