github casey/filepack 0.0.10

3 hours ago

Added

  • Add item-title-missing lint (#670 by casey)
  • Add lint for non-square embedded audio cover art (#604 by casey)
  • Add lint for mismatch between video and placeholder dimensions(#600 by casey)
  • Add lint for missing video placeholder images (#594 by casey)
  • Add video placeholder images (#590 by casey)
  • Add lints for missing media items and package creator (#586 by casey)
  • Add more metadata lints (#585 by casey)
  • Add media missing and metadata missing lints (#584 by casey)
  • Skip lints with --allow (#583 by casey)
  • Allow denying individual lints (#582 by casey)
  • Add lints for missing artwork and derived assets (#581 by casey)
  • Extract titles from images (#571 by casey)
  • Extract titles from videos (#570 by casey)
  • Add all lint group (#560 by casey)
  • Overwrite thumbnails with `--force (#558 by casey)
  • Generate thumbnails with filepack create --generate (#555 by casey)
  • Add lint for missing embedded cover art in audio files (#552 by casey)
  • Add filepack delete subcommand (#533 by casey)
  • Add DELETE /api/package/FINGERPRINT (#532 by casey)
  • Add color metadata to images (#521 by casey)
  • Support MP3s in audio packages (#513 by casey)
  • Add /api/packages endpoint (#497 by casey)
  • Add web packages and mounts (#494 by casey)
  • Add chroma subsampling to video tracks (#471 by casey)
  • Add channel count and sample rate to audio tracks (#469 by casey)
  • Add orientation to video tracks (#466 by casey)
  • Add bit depth to video tracks (#457 by casey)
  • Add track size (#455 by casey)
  • Add frame count to video tracks (#453 by casey)
  • Add duration to videos (#451 by casey)
  • Support WebM videos (#441 by casey)
  • Support H.264 videos (#422 by casey)
  • Add video media type (#421 by casey)
  • Add Track::channels (#407 by casey)
  • Add sample bits to Track (#405 by casey)
  • Add disc and track numbers to tracks (#403 by casey)
  • Add directory count and size to totals (#393 by casey)
  • Add total file count to directories (#389 by casey)
  • Add total file size to directories (#386 by casey)
  • Allow ignoring files during create and verify (#354 by casey)
  • Add --redirect DOMAIN to filepack serve (#344 by casey)
  • Include image dimensions in metadata (#341 by casey)
  • Populate metadata with track titles (#338 by casey)
  • Add image media type (#334 by casey)
  • Add audio media (#318 by casey)
  • Add /packages route (#290 by casey)
  • Add package verification and display (#287 by casey)
  • Add /directory (#282 by casey)
  • Add /files (#281 by casey)
  • Allow restricting uploads (#277 by casey)
  • Add package upload and download (#273 by casey)
  • Add filepack server (#259 by casey)
  • Add package.title metadata field (#252 by casey)

Changed

  • Forbid duplicate items (#580 by casey)
  • Forbid RelativePaths over 4096 bytes (#579 by casey)
  • Forbid Text which is empty or has leading or trailing whitespace (#574 by casey)
  • Rename --restrict-uploads to --restrict-writes (#553 by casey)
  • Use text instead of components in package metadata (#546 by casey)
  • Use full paths in metadata instead of filenames (#545 by casey)
  • Add --all flag to filepack delete command (#544 by casey)
  • Add filepack gc command (#543 by casey)
  • Move directory and package verification routes to /api (#531 by casey)
  • Don't require authentication for /api/missing (#523 by casey)
  • Don't use platform-dependent data directories (#507 by casey)
  • Forbid files outside of static in web packages (#500 by casey)
  • Move /missing to /api/missing (#496 by casey)
  • Require web packages to contain index.html (#495 by casey)
  • Rename Package::readme to Package::colophon (#485 by casey)
  • Improve time representation (#449 by casey)
  • Allow videos with no audio track (#431 by casey)
  • Rename Track sample_count to samples (#406 by casey)
  • Forbid extra files in media packages (#355 by casey)
  • Use .filemeta extension for metadata (#353 by casey)
  • Allow filepack upload input to be directory or omitted (#298 by casey)
  • Change upload flags to --file and --package (#293 by casey)
  • Rename metadata.cbor to metadata.filepack (#255 by casey)
  • Encode manifest signatures as CBOR (#254 by casey)
  • Rename manifest files to package (#251 by casey)
  • Embed metadata in manifest archive (#249 by casey)
  • Encode manifest as CBOR (#244 by casey)
  • Encode metadata as CBOR (#243 by casey)

Misc

  • Fix shortcuts popover on mobile Safari (#681 by casey)
  • Display item details side-by-side instead of stacked (#680 by casey)
  • Add popover and fullscreen toggle keyboard shortcuts (#679 by casey)
  • Add keyboard shortcut popover to /item page (#678 by casey)
  • Style /item page info <hgroup> and move to bottom of page (#677 by casey)
  • Autofocus audio and video on /item (#676 by casey)
  • Display artist and album on audio /item pages (#675 by casey)
  • Merge media /item page templates (#674 by casey)
  • Navigate images with p, n, and u, instead of arrow keys (#673 by casey)
  • Use SVG box favicon (#671 by casey)
  • Remove focus outline from video on package /item page (#669 by casey)
  • Check if package root is a directory in create and verify (#668 by casey)
  • Only apply nav link color transition on hover (#667 by casey)
  • Make active nav link stand out more (#666 by casey)
  • Use same spacing between /package thumbnails and top-level sections (#665 by casey)
  • Use em units for no-packages message on / (#664 by casey)
  • Remove backticks from code in no-packages message (#663 by casey)
  • Don't hide status code text shadow overflow (#662 by casey)
  • Use RGB colors (#661 by casey)
  • Suggest uploading packages if there are none (#660 by casey)
  • Highlight current page link in the nav bar (#659 by casey)
  • Link to /packages in nav bar (#658 by casey)
  • Display compression type for images and video (#657 by casey)
  • Allow first two columns of /packages to wrap (#656 by casey)
  • Use items instead of files in /media <dl> (#655 by casey)
  • Use light gray focus color (#654 by casey)
  • Restyle audio item durations on /package (#653 by casey)
  • Justify right side of thumbnails on /package (#652 by casey)
  • Use better fonts in frontend (#651 by casey)
  • Remove extra space around nested <dl>s (#650 by casey)
  • Use regular spacing in server CSS (#649 by casey)
  • Use OKLCH colors (#648 by casey)
  • Make artwork on /package smaller (#647 by casey)
  • Remove side-by side layout /package (#646 by casey)
  • Constrain artwork on /package to be square (#645 by casey)
  • Use --surface color for packages with no artwork (#644 by casey)
  • Display video images on /package (#643 by casey)
  • Use placeholder thumbnails for video item Open Graph images (#642 by casey)
  • Generate video placeholder thumbnails (#641 by casey)
  • Use singular file in /package <dl> (#640 by casey)
  • Disable text size adjustment (#639 by casey)
  • Don't use package fingerprints in headings (#638 by casey)
  • Put artwork and metadata side-by side on /package when possible (#637 by casey)
  • Display image item titles on hover (#636 by casey)
  • Display language names instead of codes on /package (#635 by casey)
  • Add outline around image links on hover (#634 by casey)
  • Deduplicate image border CSS (#633 by casey)
  • Use InfoBuilder to generate /media <dl> (#632 by casey)
  • Omit empty package metadata from /package <dl> (#631 by casey)
  • Add role=list to InfoHtml lists (#630 by casey)
  • Use InfoBuilder to generate /package <dl> (#629 by casey)
  • Suppress Chrome translation popup (#628 by casey)
  • Style error page (#627 by casey)
  • Don't lowercase error page titles (#626 by casey)
  • Use sentence case in server text (#625 by casey)
  • Add borders around <dl>s (#624 by casey)
  • Add hairline between <dl> rows (#623 by casey)
  • Use two-column layout for <dl>s (#622 by casey)
  • Use BBR congestion control on server (#621 by casey)
  • Increase reader stream buffer capacity (#620 by casey)
  • Add publisher metadata field (#619 by casey)
  • Refactor linter initialization (#618 by casey)
  • Move all lints into linter (#617 by casey)
  • Check metadata lints first during package creation (#616 by casey)
  • Reaname index.css to page.css (#615 by casey)
  • De-duplicate thumbnail CSS (#614 by casey)
  • Remove /packages grid view (#613 by casey)
  • Serve HTML error pages (#612 by casey)
  • Justify image package thumbnails (#611 by casey)
  • Draw image grid thumbnail borders flush with image (#610 by casey)
  • Remove underling from ? on 404 page (#609 by casey)
  • Add nav bar (#608 by casey)
  • Rename PackageKey to SortKey (#607 by casey)
  • Display packages on homepage (#606 by casey)
  • Fix install script recipes (#605 by casey)
  • Allow sorting package list by any column (#603 by casey)
  • Don't delete files in clear-server recipe (#602 by casey)
  • Deduplicate lint error printing (#601 by casey)
  • Optimize CI (#595 by casey)
  • Allow navigating to item package using up arrow key on images (#593 by casey)
  • Open Make all YAML media items objects (#591 by casey)
  • Make package title sort case insensitive (#589 by casey)
  • Sort /packages by title (#588 by casey)
  • Display positional item titles instead of falling back to paths (#587 by casey)
  • Uppercase component outside of loop in path lint (#578 by casey)
  • Use ProgressBar wrapper (#577 by casey)
  • Clear progress bars after subcommands finish (#576 by casey)
  • Rotate image before checking thumbnail size (#575 by casey)
  • Use dedicated YAML metadata template types (#573 by casey)
  • Display bytes freed from filepack gc in human-readable units (#572 by casey)
  • Move Audio::title into outer Item struct (#569 by casey)
  • Display progress bar for cover art check (#568 by casey)
  • Use thumbnails for Open Graph images (#567 by casey)
  • Generate PNG thumbnails for PNGs with alpha (#566 by casey)
  • Display metadata population progress bar (#565 by casey)
  • Display thumbnail generation progress bar (#564 by casey)
  • Don't upscale thumbnails (#563 by casey)
  • Don't include thumbnails with a larger file size than the original image (#562 by casey)
  • Use more complementary progress bar characters (#561 by casey)
  • Generate artwork thumbnails (#559 by casey)
  • Add --locked to installation commands (#557 by casey)
  • Use image thumbnails (#556 by casey)
  • Navigate between images with left and right arrow keys (#554 by casey)
  • Remove optional whitespace from static asset content types (#551 by casey)
  • Add --locked to install recipe (#550 by casey)
  • Add Open Graph images to item pages (#548 by casey)
  • Allow unused async on redirect route (#547 by casey)
  • Configure server HTTP settings (#542 by casey)
  • Use server constructor for redirect server (#541 by casey)
  • Use adaptive HTTP/2 flow control window in server (#540 by casey)
  • Make api module private (#539 by casey)
  • Add Test::write_keypair() helper (#538 by casey)
  • Use strongly-typed API routes (#537 by casey)
  • Move status checks inside client method helpers (#536 by casey)
  • Construct URLs in client method helpers (#535 by casey)
  • Add dedicated server client (#534 by casey)
  • Skip IDv1 tags when decoding MP3s (#527 by casey)
  • Rename builder methods to be more uniform (#530 by casey)
  • Use FlacBuilder in tests (#529 by casey)
  • Use Mp3Builder in tests (#528 by casey)
  • Use InfoBuilder in tests (#526 by casey)
  • Require video track color metadata (#525 by casey)
  • Add JPEG and PNG builders (#522 by casey)
  • Calculate audio bitrate (#520 by casey)
  • Refactor audio errors (#519 by casey)
  • Rename {Image,Video}Info to {Image,Video}Metadata (#518 by casey)
  • Refactor video decoders (#517 by casey)
  • Refactor audio decoding (#516 by casey)
  • Add Info builder (#515 by casey)
  • Refactor MP3 decoder (#514 by casey)
  • Remove unnecessary Dedent implementations (#512 by casey)
  • Unindent more test strings (#511 by casey)
  • Indent test strings (#510 by casey)
  • Rename Media item lists to items (#509 by casey)
  • Document media metadata (#508 by casey)
  • Add tests for redb trait implementations (#506 by casey)
  • Don't hash files before upload (#504 by casey)
  • Remove encoding tests for derived implementations (#503 by casey)
  • Write metadata.filemeta after create checks pass (#502 by casey)
  • Simplify RelativePath::from_str() (#501 by casey)
  • Serve web package files from static directory (#499 by casey)
  • Link to mount from /package (#498 by casey)
  • Add Open Graph description and image dimensions (#492 by casey)
  • Display non-media package files on /package (#490 by casey)
  • Use package artwork as og:image on /package (#486 by casey)
  • Use CheckedUrl::check to check CLI URLs (#491 by casey)
  • Require HTTP(S) in CheckedUrls (#489 by casey)
  • Quote unsafe attribute interpolations (#488 by casey)
  • Add charset=utf-8 to text asset content types (#487 by casey)
  • Link to readmes from /package (#483 by casey)
  • Display package metadata on /package (#482 by casey)
  • Improve demo server readme description (#481 by casey)
  • Link to demo server in readme (#480 by casey)
  • Clarify server help text (#479 by casey)
  • Add total duration to video packages (#478 by casey)
  • Move image creation functions into test.rs (#477 by casey)
  • Deduplicate milli display (#476 by casey)
  • Simplify /package format display (#475 by casey)
  • Separate audio format items on /media (#474 by casey)
  • Display video track bitrate and bits per pixel on /media (#473 by casey)
  • Display video track framerate on /media (#472 by casey)
  • Use match statement in Track::info() (#470 by casey)
  • Add package link to /media (#468 by casey)
  • Improve media info page (#467 by casey)
  • Add media info page (#465 by casey)
  • Extract image rotation (#464 by casey)
  • Show more information in /packages list (#462 by casey)
  • Display creator and title on /packages grid (#461 by casey)
  • Add view toggle to /packages (#460 by casey)
  • Add /packages grid view (#459 by casey)
  • Extract bit depth from MP4s (#458 by casey)
  • Rename ArtworkDimensions error to ArtworkAspectRatio (#456 by casey)
  • Refactor Video::info_webm() (#454 by casey)
  • Forbid pre-existing CBOR metadata in filepack create (#452 by casey)
  • Allow #[cbor(validate)] on enums and structs (#450 by casey)
  • Extract video tracks (#448 by casey)
  • Remove resolution from formats (#445 by casey)
  • Forbid leading zeros and signs in ordinals (#447 by casey)
  • Frobid leading zeros and sign in audio tags (#446 by casey)
  • Replace mp4parse with re_mp4 (#443 by casey)
  • Display image resolutions on /package (#442 by casey)
  • Use item in media routes (#440 by casey)
  • Deduplicate media item server functions (#439 by casey)
  • Avoid duplicating media item name in functions (#438 by casey)
  • Display H.264 with a period (#437 by casey)
  • Display track dimensions as shorthand (#436 by casey)
  • Derive Encode and Decode for SortedSet (#435 by casey)
  • Add Validate trait (#432 by casey)
  • Display creator on /packages (#433 by casey)
  • Separate format items with a middle dot (#434 by casey)
  • Represent VideoFormat as list of tracks (#430 by casey)
  • Represent Video as list of tracks (#429 by casey)
  • Rename Track to Audio (#428 by casey)
  • Group statements in Track::populate_flac() (#427 by casey)
  • Deduplicate FlacReader creation (#426 by casey)
  • Deduplicate MediaItemDoesNotExist error checking (#425 by casey)
  • Enable previewing MP4 files (#424 by casey)
  • Make video player full-page (#423 by casey)
  • Add border radius to artwork on /package (#420 by casey)
  • Display hashes in monospace (#419 by casey)
  • Display image format on /package (#418 by casey)
  • Shrink /package artwork to fit page (#417 by casey)
  • Wrap <dd> overflow (#416 by casey)
  • Hide <h1> overflow (#415 by casey)
  • Use index.css in 404.html (#414 by casey)
  • Use color variables in CSS (#413 by casey)
  • Use lighter background color (#412 by casey)
  • Improve track duration display on /package (#411 by casey)
  • Use size as download link text on /directory (#410 by casey)
  • Display audio formats on /package (#409 by casey)
  • Add download links to /directory (#408 by casey)
  • Group tracks by disc on /package (#404 by casey)
  • Use saturating addition when summing track durations (#402 by casey)
  • Verify uploaded directory entry sizes and totals (#401 by casey)
  • Verify directory totals once (#400 by casey)
  • Reuse database transactions (#399 by casey)
  • Display file size and count on /package (#398 by casey)
  • Track directories in filepack download progress bar (#396 by casey)
  • Add #[must_use] to Totals::checked_add() (#397 by casey)
  • Include all totals in filepack size (#395 by casey)
  • Display total directory file size on /directory (#394 by casey)
  • Remove DirectoryTree::totals() (#392 by casey)
  • Update actions/checkout to v7 (#391 by casey)
  • Refactor Archive and Manifest loading functions (#390 by casey)
  • Avoid ArchiveBuilder::directory() panic (#388 by casey)
  • Fix panic if signatures directory references non-existent file (#387 by casey)
  • Add PackageBuilder (#385 by casey)
  • Chain directory builder methods (#384 by casey)
  • Add directory builder methods (#383 by casey)
  • Refactor entry construction and server file reads (#381 by casey)
  • Display track duration (#379 by casey)
  • Display track info (#378 by casey)
  • Add thumbnail borders (#376 by casey)
  • Lazy-load thumbnails (#375 by casey)
  • Display image thumbnails on /package (#374 by casey)
  • Make track anchor link single line (#373 by casey)
  • Use ordinal number in image list (#372 by casey)
  • Add package item pages (#371 by casey)
  • Move server routes into submodule (#370 by casey)
  • Add color-scheme: dark to CSS (#369 by casey)
  • Use Let's Encrypt staging directory in tests (#366 by casey)
  • Display files inline in /directory where possible (#363 by casey)
  • Add sizes and download filenames to /directory (#362 by casey)
  • Update messaging (#361 by casey)
  • Use tracing instead of log (#360 by casey)
  • Use black background on all pages (#359 by casey)
  • Fix ACME event spelling (#358 by casey)
  • Add logging (#357 by casey)
  • Don't decode FLAC audio when populating metadata (#356 by casey)
  • Forbid control codes in metadata strings (#352 by casey)
  • Check readme extension on creation (#351 by casey)
  • Rename Package::nfo to Package::readme (#350 by casey)
  • Remove package.creator_tag (#349 by casey)
  • Fix redirects over HTTPS (#348 by casey)
  • Simplify server domain flags (#347 by casey)
  • Match full standard error in redirect_http_to_https test (#346 by casey)
  • Serve Strict-Transport-Security header on HTTPS responses (#345 by casey)
  • Redirect /package1… to /package/package1… (#343 by casey)
  • Forbid control codes in path components (#342 by casey)
  • Don't check content during filepack verify (#340 by casey)
  • Rewrite readme intro (#339 by casey)
  • Add AGENTS.md (#337 by casey)
  • Decode image media images (#336 by casey)
  • Use one-based indexing for tracks and images (#335 by casey)
  • Add Bech32 HRP checks (#333 by casey)
  • Only upload missing files (#332 by casey)
  • Skip reupload when server already has package (#331 by casey)
  • Add assert_cbor_eq (#330 by casey)
  • Use hex in assert_cbor (#329 by casey)
  • Rename PackageUnverified to PackageRootUnverified (#328 by casey)
  • Use a single transaction in Server::packages() (#327 by casey)
  • Use titles in /packages (#326 by casey)
  • Link to packages from homepage (#325 by casey)
  • Use chained route methods (#324 by casey)
  • Use package title in page title (#323 by casey)
  • Support resource range requests (#322 by casey)
  • Display package title in header (#321 by casey)
  • Remove stale link to DESIGN.md from readme (#320 by casey)
  • Add resource type (#319 by casey)
  • Implement Encode and Decode for Vec<T> (#317 by casey)
  • Add encode and decode support for enum variants with named fields (#316 by casey)
  • Link to artwork on /package (#315 by casey)
  • Convert metadata tests to unit tests (#314 by casey)
  • Only verify signatures in filepack verify (#313 by casey)
  • Verify package metadata in filepack download (#312 by casey)
  • Refactor key and value implementations (#311 by casey)
  • Check metadata in filepack verify (#310 by casey)
  • Return internal server error when package artwork is missing (#309 by casey)
  • Only decode artwork image headers (#308 by casey)
  • Check artwork dimensions (#307 by casey)
  • Update boilerplate to 1.2.0 (#306 by casey)
  • Display artwork on /package (#305 by casey)
  • Serve package artwork (#304 by casey)
  • Poll server while waiting for ready signal (#303 by casey)
  • Verify that metadata-referenced files have been uploaded (#302 by casey)
  • Avoid dependency on aws-lc-rs (#301 by casey)
  • Configure HTTP client (#300 by casey)
  • Implement display for all errors (#299 by casey)
  • Allow artwork with .jpg extension (#297 by casey)
  • Switch to std::assert_matches (#296 by casey)
  • Fix download recipe (#295 by casey)
  • Fix broken clap groups (#294 by casey)
  • Add download progress bar (#292 by casey)
  • Add upload progress bar (#291 by casey)
  • Deduplicate HTML boilerplate (#289 by casey)
  • Use template objects in integration test assertions (#288 by casey)
  • Make serve tests sync (#286 by casey)
  • Make Server sync (#285 by casey)
  • Add trailing slash to directories on /directory (#284 by casey)
  • Use <ul> for /directory (#283 by casey)
  • Set X-Content-Type-Options: nosniff on all responses (#280 by casey)
  • Fix filepack serve --domain help text (#279 by casey)
  • Add homepage to server (#278 by casey)
  • Default to package upload and download (#275 by casey)
  • Add additional upload/download integration tests (#274 by casey)
  • Add HTTPS support to server (#272 by casey)
  • Time out while waiting for server port (#271 by casey)
  • Stream server uploads to disk (#270 by casey)
  • Set download cache headers (#269 by casey)
  • Stream server downloads from disk (#268 by casey)
  • Stream downloads to disk (#267 by casey)
  • Stream uploads from disk (#266 by casey)
  • Short-circuit upload if file already exists (#265 by casey)
  • Write uploads to temporary file (#264 by terror)
  • Rename Url to CheckedUrl (#263 by casey)
  • Encode envelope context as integer (#262 by casey)
  • Forbid incompatible derive attributes (#261 by casey)
  • Use #[n(N)] with enum CBOR derive macros (#260 by casey)
  • Rename message to statement (#258 by casey)
  • Fix references to $XDG_DATA_HOME (#257 by casey)
  • Use application and context types (#256 by casey)
  • Move message signing context into envelope (#253 by casey)
  • Derive encode and decode for enums (#250 by casey)
  • Move test functions into test module (#248 by casey)
  • Add derive macros for Encode and Decode (#247 by casey)
  • Add borrowed Component and owned ComponentBuf (#246 by casey)
  • Borrow decoder input (#245 by casey)
  • Use snake_case instead of kebab-case for serialization (#242 by casey)
  • Use CBOR-based fingerprint serialization (#241 by casey)
  • Expand guide (#240 by casey)
  • Move design overview into readme (#239 by casey)
  • Add future directions section to readme (#238 by casey)
  • Add metadata section to readme (#237 by casey)
  • Add Filepack for SFV Enjoyers to readme (#236 by casey)

Don't miss a new filepack release

NewReleases is sending notifications on new releases.