8000 Add motorsportsinfo.app to Calendar by byalex33 · Pull Request #12 · subinium/awesome-f1 · GitHub
[go: up one dir, main page]

Skip to content

Add motorsportsinfo.app to Calendar - #12

Open
byalex33 wants to merge 1 commit into
subinium:mainfrom
byalex33:add-motorsportsinfo
Open

byalex33 wants to merge 1 commit into
subinium:mainfrom
byalex33:add-motorsportsinfo

Conversation

@byalex33
Copy link
Copy Markdown

Adds motorsportsinfo.app to the Calendar section, after F1 Calendar.

It's a free, non-commercial site that shows every session for F1, F2, F3, WEC, Formula E, IndyCar and MotoGP in the visitor's time zone (or the circuit's local time), with a live countdown to the next one. Each session has a weather forecast for the circuit, and F1 also gets a rain radar. Visitors can turn on web push reminders before the session types they follow and get another push when a session is moved. There's also a subscribable .ics feed that stays current when times change. FIA documents for F1, F2 and F3 appear in an in-page viewer, and F1 results and telemetry are spoiler-safe.

Data comes from OpenF1, Open-Meteo and the FIA, and it's actively maintained with current 2026 data. The source is on GitHub.

@subinium
subinium commented Nov 7, 2026
Copy link
Copy Markdown
Owner

Thanks for the submission. The current schedule/feed and public code show real utility. A deeper review of upstream commit 3b7ed3d found issues that need clarification before inclusion:

  1. License wording: there is no repository license file or package license declaration. Please add an explicit license if intended, or change "Open source" in this PR to "Source available." Public visibility alone does not grant reuse rights.

  2. Data permissions: ADR 0001 explicitly acknowledges source-term conflicts and the absence of a reuse license for FIA listings/PDF relaying. The F2 terms restrict extraction and redistribution. Please document the applicable permission/basis, or use appropriately licensed sources and link directly to documents where relaying is not authorized. This is an unresolved provenance/operational concern, not a legal determination.

  3. Dependency update: the lockfile pins undici 7.30.0. A production-dependency audit reports affected advisories, including GHSA-xjj6-f33q-929c; 7.30.1 is patched. Please refresh the lockfile and rerun the audit. I saw Cheerio.load rather than fromURL in the inspected code, so I have not established that the vulnerable paths execute in the deployment.

  4. Push/availability controls: subscription creation accepts allowed-host-shaped endpoints/keys before insertion, without an application-level ownership challenge or rate limit in the inspected path. Please document any platform mitigations and address bogus-subscription capacity exhaustion. Also review notification claiming/fanout against the route deadline so claimed work is not lost on termination.

The cron authorization and several proxy restrictions were genuinely applied; I am not alleging a generic auth bypass or arbitrary-host SSRF. Source/deployment equivalence and production exploitation were not tested. Please respond with changes/evidence for these points; this remains on hold.

@byalex33
byalex33 commented Nov 7, 2026
Copy link
Copy Markdown
Author

Thanks for the thorough review. All four points are addressed in a3065ab (branch alex/github-pr-comment-review-d5c92e). It goes live once it's merged to main and deployed. I'll follow up here when it has.

  1. License: the code is now MIT (LICENSE, plus "license": "MIT" in package.json), so "Open source" in this PR is accurate. The README says the license covers the code only, not the data the site shows.

  2. Data permissions:

    • FIA documents: the site no longer fetches, relays or stores the PDFs. Each document link now only redirects to the FIA's PDF on fia.com (route). The links are addressed by Round and number, so the URL doesn't show the car numbers in the FIA's file names. The PDF.js viewer and pdfjs-dist are removed. The site only shows each document's title, number and publish time, linking to fia.com.
    • F2/F3: schedules now come from the MIT-licensed sportstimes/f1 dataset. The fiaformula2.com/fiaformula3.com scraper is deleted.
    • Remaining sources: ADR 0001 now has a "Basis for each source" section that lists which sources are licensed and which aren't. To be upfront: WEC, WRC, IMSA, NASCAR, GTWC Europe, DTM, Super GT and the fia.com document lists have no licence, and no licensed alternative exists. For those, the ADR records what's read (schedule times and document titles only), how (ordinary public requests, never posing as a browser, infrequent, cached), credit and links to the official sites, non-commercial use, and that a source is dropped if its owner asks.
  3. Dependency: undici is bumped to 7.30.2. npm audit --omit=dev now reports 0 vulnerabilities.

  4. Push/availability:

    • New devices: a new subscription is saved only after the push service accepts a confirmation push to it. That rejects made-up endpoints and ones created for another site's VAPID key (the push service returns 4xx). Each client is limited to 10 new devices an hour, keyed by an HMAC of the IP address that's kept for a day (subscriptions.ts). The 50,000-row cap stays as a backstop, and existing devices can always update.
    • Claiming and fan-out: claims on reminders, Schedule Changes and FIA Documents are now leases, not permanent marks. Each lease lasts the route's maxDuration (raised to 300 s). Fan-out sends 100 pushes at a time and saves the last subscription reached after each chunk. If a run is terminated, the lease expires and the next run carries on from the saved point, so nothing claimed is lost. At worst one chunk is re-sent, and the notification tag collapses those duplicates on the device (run.ts). Tests cover the deadline, resume and lease cases.

Typecheck, lint, the test suite (666 tests) and the production build pass.

byalex33 added a commit to byalex33/motorsportsinfo.app that referenced this pull request Nov 7, 2026
…rden push alerts (#20)

Answers the awesome-f1 review (subinium/awesome-f1#12).

- License: the code is MIT (LICENSE, package.json). The README notes that it
  covers the code only, not the data the site shows.
- FIA Documents: the PDFs are no longer fetched or relayed. Document links
  (/<series>/documents/<round>-<number>) redirect to the PDF on fia.com, so the
  link still never spells out a spoiler, and /documents/<file>.pdf from older
  links redirects the same way. An earlier Round's link is found in
  fia_documents. The PDF.js viewer and pdfjs-dist are gone.
- F2 and F3 schedules come from the MIT-licensed sportstimes dataset instead
  of fiaformula2.com and fiaformula3.com, whose terms forbid extraction.
- ADR 0001 records the basis for every source: which are licensed, and how
  the unlicensed ones are read.
- undici 7.30.0 -> 7.30.2: npm audit --omit=dev reports no vulnerabilities.
- New push subscriptions are saved only after the push service accepts a
  confirmation push, and at most 10 new devices per client an hour (keyed by
  an HMAC of the IP address, kept for a day).
- Alerts claims are leases (CLAIM_LEASE_MS, the route's 300 s maxDuration)
  instead of permanent marks, and Schedule Change and Document Alert fan-out
  saves its progress every PUSH_CHUNK pushes, so a run that stops loses
  nothing it claimed. Migration 0004 adds the columns and the sign-up table.
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

0