Commit Graph

31 Commits

Author SHA1 Message Date
Matt Isenhower
7125f30bfc Remove inline base64 image embedding from iCal output
No major calendar client renders these inline binary attachments.
The ATTACH URL is kept, which links to the publicly hosted image.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 09:44:04 -08:00
Matt Isenhower
41c9f9a315 Add VFS layer to avoid downloading files only needed for existence checks
Uses S3 ListObjectsV2 to build an in-memory file listing at startup,
allowing exists() and olderThan() to resolve from the listing instead
of requiring files on disk. sync:download now skips assets/splatnet/,
data/xrank/, data/festivals.ranking.*, and status-screenshots/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 09:26:05 -08:00
Matt Isenhower
af526403a1 Update cron to v4 and ical-generator to v10
cron v4: No code changes needed (positional constructor args still supported).
ical-generator v10: Removed `new` keyword (now a factory function) and
switched from `attachments` property to `createAttachment()` method.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:09:19 -08:00
Matt Isenhower
8b11900905 Revert jsonpath-plus back to jsonpath
jsonpath v1.2.1 (published Feb 2025) fixed the security vulnerability
that prompted the switch to jsonpath-plus. Reverting to the original
package simplifies the code by removing the jsonpathQuery/jsonpathApply
wrapper functions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 15:56:05 -08:00
Matt Isenhower
7adb9c313e Add mkdirp utility to avoid verbose fs.mkdir calls
Added mkdirp() helper to app/common/fs.mjs that wraps
fs.mkdir(dir, { recursive: true }). Updated all call sites to use it.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:09:02 -08:00
Matt Isenhower
8780463c66 Replace deprecated and unmaintained packages
- Removed mkdirp in favor of native fs.mkdir({ recursive: true })
- Replaced ecstatic (unmaintained since 2021) with sirv
- Replaced jsonpath (security vulnerability) with jsonpath-plus
  - Added jsonpathQuery/jsonpathApply helpers in app/common/util.mjs
- Updated sharp: 0.32.6 → 0.34.5
- Updated puppeteer-core: 23.8.0 → 24.37.3

Vulnerabilities reduced from 40 to 1 (only remaining: axios in
threads-api transitive dependency).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:05:49 -08:00
Matt Isenhower
ba44aec52a Make the data archive optional
Some checks failed
Deploy / deploy-frontend (push) Has been cancelled
Deploy / deploy-backend (push) Has been cancelled
2024-11-29 14:35:52 -05:00
Matt Isenhower
7d4b9cc038 Skip "no need to update" message 2024-11-20 21:46:45 -08:00
Matt Isenhower
10c082a1c2 Retrieve localizations in parallel 2024-11-20 21:13:40 -08:00
Matt Isenhower
34c2d65b15 Download images concurrently 2024-11-17 21:16:24 -08:00
Matt Isenhower
37ee0c4dc9 Prefer single quotes and enforce semicolons 2024-03-17 10:20:17 -07:00
Matt Isenhower
e87a4b241d lint-fix 2024-03-17 10:15:18 -07:00
Matt Isenhower
8b55a5deba Fix linting issues 2024-03-16 22:31:20 -07:00
Matt Isenhower
6173693520 Make updaters more configurable
This should reduce the number of queries needed during high-load times (like waiting for Splatfest results).
2023-12-02 11:06:45 -08:00
Matt Isenhower
840d45373a Move archives back to storage dir and use precise time for X-Rank 2023-05-30 19:33:37 -07:00
Matt Isenhower
69ea3962cb Fix a mistake 2023-05-23 17:51:46 -07:00
Matt Isenhower
ba54d94e09 Make data archives more accessible, and store only one file per hour 2023-05-23 17:48:30 -07:00
Matt Isenhower
554fdd2e40 Retrieve localized names for each Splatfest 2023-02-11 15:27:49 -08:00
Matt Isenhower
a34ea396f6 Only update festival ranking data when needed 2022-11-15 13:44:39 -05:00
Samuel Elliott
aeda7726cd Get calendar URL from SITE_ENV 2022-11-07 19:05:41 +00:00
Samuel Elliott
110314ee17 Add Splatfest calendar feeds 2022-11-07 18:45:07 +00:00
Matt Isenhower
a9e26805d8 Streamline the process for deriving object IDs 2022-10-20 17:13:17 -07:00
Matt Isenhower
46159165f4 Move data archive to a separate directory 2022-10-20 16:57:27 -07:00
Matt Isenhower
73d8d43d49 Add the rest of the Splatoon locales 2022-10-19 17:50:55 -07:00
Matt Isenhower
47d0abb747 Retrieve localized strings from SplatNet 2022-10-17 20:32:38 -07:00
Matt Isenhower
d5560477a2 Prepare data updaters for multi-locale support 2022-10-17 17:56:01 -07:00
Matt Isenhower
866509a4d8 Add festival data updater 2022-09-16 12:51:23 -07:00
Matt Isenhower
42520b20f5 Enable multi-account support 2022-09-16 12:40:36 -07:00
Matt Isenhower
213683cea0 Save update history for all data files 2022-09-15 18:26:27 -07:00
Matt Isenhower
67387f9775 Download images from SplatNet 2022-09-10 14:32:23 -07:00
Matt Isenhower
f7dafefc31 Add data updater structure and a basic schedule updater 2022-09-10 13:02:39 -07:00