printhive/lib
dlawler489 ba3bb415bb Track the filament you have, and what each model asks for
A Bambu Studio or OrcaSlicer 3MF names the filaments its plates use, but
reading that means shelling out to Python, so it can't be done per page load.
A background pass — in the same loop as thumbnails and fingerprints — reads it
once per model into models.filaments, which turns "what can I print now" into
a comparison of two lists.

Adds a Filament page for the spools on hand: material, colour, brand and grams
left, edited in place. Matching is on material only; a project's exact colours
would make almost nothing printable, and a different colour still prints.

Measured on the dev library: 10 models read with no errors, the two Bambu
projects resolving to four PLA colours each, and no plate images written
because the reader skips --images and queues behind anything interactive.

Not done yet: nothing in the library view uses this — no "printable now" badge
or filter — and the Filament page itself has not been seen rendered, because
the local preview browser has no session.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 11:18:54 +10:00
..
importers Don't retry MakerWorld's anti-bot refusal 2026-09-16 12:53:36 +10:00
ai.js Sturdier AI replies: format example, more retries, and errors that show the reply 2026-09-15 20:26:42 +10:00
aiRuns.js Name every model an AI run failed on, and let a finished run retry them 2026-09-16 14:08:08 +10:00
archives.js Browse archives, preview companion files, and view FBX/STEP/3DM/OBJ+MTL 2026-09-15 07:36:47 +10:00
archiveWorker.js Browse archives, preview companion files, and view FBX/STEP/3DM/OBJ+MTL 2026-09-15 07:36:47 +10:00
auth.js Open models in your slicer and drag files out 2026-09-15 09:15:37 +10:00
autotag.js AI tags and descriptions, search by meaning, and automatic tags 2026-09-15 11:12:58 +10:00
collectionWatch.js Let a watch download files as models arrive 2026-09-16 19:18:55 +10:00
converter.js Track the filament you have, and what each model asks for 2026-09-17 11:18:54 +10:00
db.js Stop tagging deadlocking, and retry a transaction that loses one 2026-09-16 14:56:28 +10:00
duplicates.js Add duplicate finder, trash, notes, and library search/filters 2026-09-14 23:06:09 +10:00
embeddingModel.js AI tags and descriptions, search by meaning, and automatic tags 2026-09-15 11:12:58 +10:00
embeddings.js AI tags and descriptions, search by meaning, and automatic tags 2026-09-15 11:12:58 +10:00
filaments.js Track the filament you have, and what each model asks for 2026-09-17 11:18:54 +10:00
fileProcessor.js Browse archives, preview companion files, and view FBX/STEP/3DM/OBJ+MTL 2026-09-15 07:36:47 +10:00
fingerprint.js Track the filament you have, and what each model asks for 2026-09-17 11:18:54 +10:00
flaresolverr.js Give downloads a deadline instead of hanging for ever 2026-09-16 17:50:48 +10:00
handoff.js Open models in your slicer and drag files out 2026-09-15 09:15:37 +10:00
licenses.js Add per-license commercial-use rules (settings + auto-register) 2026-06-23 10:20:28 +10:00
mailer.js Add email/password auth + SMTP password resets 2026-06-22 22:33:11 +10:00
python.js Stream-parse 3MF files so Bambu projects don't exhaust memory 2026-09-15 07:02:00 +10:00
store.js Track the filament you have, and what each model asks for 2026-09-17 11:18:54 +10:00
thumbnails.js Make thumbnails on the server in the background 2026-09-15 07:54:26 +10:00