feat: add .o tape extension, recompute missing (32,960 rows)

claude-opus-4-6@MacFiver
This commit is contained in:
2026-02-17 16:18:51 +00:00
parent 6b91fde972
commit 5a6c536283
2 changed files with 131 additions and 3 deletions

View File

@@ -74,7 +74,7 @@ const STATE_FILE = path.join(CDN_CACHE, ".update-software-hashes.state.json");
const TAPE_FILETYPE_IDS = [8, 22]; const TAPE_FILETYPE_IDS = [8, 22];
// Tape file extensions in priority order (most common first) // Tape file extensions in priority order (most common first)
const TAPE_EXTENSIONS = [".tap", ".tzx", ".pzx", ".csw", ".p"]; const TAPE_EXTENSIONS = [".tap", ".tzx", ".pzx", ".csw", ".p", ".o"];
// ---- DB ---- // ---- DB ----
const pool = mysql.createPool({ const pool = mysql.createPool({

View File

@@ -1,6 +1,6 @@
{ {
"exportedAt": "2026-02-17T16:15:38.217Z", "exportedAt": "2026-02-17T16:18:44.812Z",
"count": 32944, "count": 32960,
"rows": [ "rows": [
{ {
"download_id": 172, "download_id": 172,
@@ -180594,6 +180594,14 @@
"inner_path": "REC2.P", "inner_path": "REC2.P",
"updated_at": "2026-02-17T16:15:35.000Z" "updated_at": "2026-02-17T16:15:35.000Z"
}, },
{
"download_id": 129922,
"md5": "b2771bc689d8f629ef08b62cbb900ae1",
"crc32": "3490d586",
"size_bytes": 13516,
"inner_path": "PBS1A.O",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{ {
"download_id": 129925, "download_id": 129925,
"md5": "1697b214bd7837ee2f0076688f92a9d3", "md5": "1697b214bd7837ee2f0076688f92a9d3",
@@ -182466,6 +182474,14 @@
"inner_path": "crapsrun.tap", "inner_path": "crapsrun.tap",
"updated_at": "2026-02-17T16:06:14.000Z" "updated_at": "2026-02-17T16:06:14.000Z"
}, },
{
"download_id": 130193,
"md5": "6e0793c1be4a401ad09d64a8bded172c",
"crc32": "f37002da",
"size_bytes": 13561,
"inner_path": "elfbayne.O",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{ {
"download_id": 130194, "download_id": 130194,
"md5": "8bdd0910a7c453dd1df8832f68a5cbb6", "md5": "8bdd0910a7c453dd1df8832f68a5cbb6",
@@ -182802,6 +182818,38 @@
"inner_path": "SP8501w2760CollectAKey.TAP", "inner_path": "SP8501w2760CollectAKey.TAP",
"updated_at": "2026-02-17T16:06:14.000Z" "updated_at": "2026-02-17T16:06:14.000Z"
}, },
{
"download_id": 131048,
"md5": "0e8c60c3bf291027f3655a685253df43",
"crc32": "5d5f6a37",
"size_bytes": 645,
"inner_path": "Complex Maths... WITH DRAGONS! - 1K Addition.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{
"download_id": 131049,
"md5": "92c301268ba10128ca34dcb189c05319",
"crc32": "8345a27d",
"size_bytes": 2102,
"inner_path": "Complex Maths... WITH DRAGONS! - 4K RAM pack Super Deluxe Edition.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{
"download_id": 131050,
"md5": "9beaf5739bc8032c18aa4173fb6dd154",
"crc32": "0fd3b4eb",
"size_bytes": 661,
"inner_path": "Complex Maths... WITH DRAGONS! - 1K Multiplication.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{
"download_id": 131051,
"md5": "f3a0cf5da62bcfc8fc68920b75632fce",
"crc32": "b933f580",
"size_bytes": 645,
"inner_path": "Complex Maths... WITH DRAGONS! - 1K Subtraction.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{ {
"download_id": 131052, "download_id": 131052,
"md5": "026eec1d1a287960b97bebe91aa87060", "md5": "026eec1d1a287960b97bebe91aa87060",
@@ -191106,6 +191154,14 @@
"inner_path": "Tardigrade.tap", "inner_path": "Tardigrade.tap",
"updated_at": "2026-02-17T16:07:51.000Z" "updated_at": "2026-02-17T16:07:51.000Z"
}, },
{
"download_id": 139693,
"md5": "4450e9f2dc3d635e1d3cdc7d755efe5a",
"crc32": "728c72eb",
"size_bytes": 6532,
"inner_path": "ticTacToeHell.O",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{ {
"download_id": 139694, "download_id": 139694,
"md5": "d6c5746fa56e0260bbc7eeada89f4fa8", "md5": "d6c5746fa56e0260bbc7eeada89f4fa8",
@@ -197186,6 +197242,22 @@
"inner_path": "ShuttleMaster.tap", "inner_path": "ShuttleMaster.tap",
"updated_at": "2026-02-17T16:07:58.000Z" "updated_at": "2026-02-17T16:07:58.000Z"
}, },
{
"download_id": 142059,
"md5": "2245fa1855cdf9329a400cff3d58a79c",
"crc32": "6e4a2460",
"size_bytes": 692,
"inner_path": "MiniBankRaid.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{
"download_id": 142062,
"md5": "08894254c3ca728fc3b738825f1532af",
"crc32": "e7a35e1f",
"size_bytes": 801,
"inner_path": "Golf80.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{ {
"download_id": 142068, "download_id": 142068,
"md5": "b997af314039585661223fdf5c8b4f32", "md5": "b997af314039585661223fdf5c8b4f32",
@@ -198442,6 +198514,14 @@
"inner_path": "Tschausepp.tzx", "inner_path": "Tschausepp.tzx",
"updated_at": "2026-02-17T16:07:59.000Z" "updated_at": "2026-02-17T16:07:59.000Z"
}, },
{
"download_id": 142612,
"md5": "1dddbfcf8c70ecaf61c6dd95d765c88f",
"crc32": "c86b059a",
"size_bytes": 3888,
"inner_path": "ZX80Boggle.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{ {
"download_id": 142616, "download_id": 142616,
"md5": "db6d8692d382e76fc07240ca76d516a9", "md5": "db6d8692d382e76fc07240ca76d516a9",
@@ -222786,6 +222866,14 @@
"inner_path": "MICROBUG.p", "inner_path": "MICROBUG.p",
"updated_at": "2026-02-17T16:15:37.000Z" "updated_at": "2026-02-17T16:15:37.000Z"
}, },
{
"download_id": 169160,
"md5": "74a7720d4575ca589df4f03c8572a99b",
"crc32": "690d289b",
"size_bytes": 774,
"inner_path": "GuessThePassword.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{ {
"download_id": 169163, "download_id": 169163,
"md5": "a86572e2929dac4914ff189a8d6d89d3", "md5": "a86572e2929dac4914ff189a8d6d89d3",
@@ -223002,6 +223090,14 @@
"inner_path": "FaceTheMusic.tap", "inner_path": "FaceTheMusic.tap",
"updated_at": "2026-02-17T16:08:25.000Z" "updated_at": "2026-02-17T16:08:25.000Z"
}, },
{
"download_id": 169328,
"md5": "173657ec771e5cf5b1a405ac4f61718b",
"crc32": "ddf2414e",
"size_bytes": 473,
"inner_path": "Tic-Tac-Toe.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{ {
"download_id": 169330, "download_id": 169330,
"md5": "07728bd063cc96fa1a74619676c9e1c8", "md5": "07728bd063cc96fa1a74619676c9e1c8",
@@ -223034,6 +223130,22 @@
"inner_path": "CastleMaze.tap", "inner_path": "CastleMaze.tap",
"updated_at": "2026-02-17T16:08:25.000Z" "updated_at": "2026-02-17T16:08:25.000Z"
}, },
{
"download_id": 169341,
"md5": "e51d7a085d9759c8b3cbdc828a0c2ddf",
"crc32": "958247cc",
"size_bytes": 639,
"inner_path": "ShootOutZX80.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{
"download_id": 169343,
"md5": "136b017af1c878099217dfa5fd6f265d",
"crc32": "7583e470",
"size_bytes": 583,
"inner_path": "RockPaperScissorsZX801KEdition.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{ {
"download_id": 169345, "download_id": 169345,
"md5": "d617c79a03400fe0a4eaa129021b4682", "md5": "d617c79a03400fe0a4eaa129021b4682",
@@ -223098,6 +223210,22 @@
"inner_path": "AnchovyCoastThe.tap", "inner_path": "AnchovyCoastThe.tap",
"updated_at": "2026-02-17T16:08:25.000Z" "updated_at": "2026-02-17T16:08:25.000Z"
}, },
{
"download_id": 169365,
"md5": "e273011e2f5fa4ce9ce921d3a3c63e1c",
"crc32": "ca6c0fcc",
"size_bytes": 157,
"inner_path": "OddsAndEvensClassic.o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{
"download_id": 169366,
"md5": "e2168b4e110b99bc5d23f75f43299336",
"crc32": "3df750b6",
"size_bytes": 998,
"inner_path": "OddsAndEvensClassic(Deluxe).o",
"updated_at": "2026-02-17T16:18:44.000Z"
},
{ {
"download_id": 169370, "download_id": 169370,
"md5": "de1dd17fa4e7d84133f19ad2f9bbc020", "md5": "de1dd17fa4e7d84133f19ad2f9bbc020",