Fix bug with & in movie names; update catalog

This commit is contained in:
2026-09-08 20:52:08 -07:00
parent 5e49f653f1
commit d2a867fa19
15 changed files with 66 additions and 54 deletions
Generated
+28 -22
View File
@@ -183,7 +183,7 @@ dependencies = [
"arrow-schema", "arrow-schema",
"arrow-select", "arrow-select",
"atoi", "atoi",
"base64", "base64 0.22.1",
"chrono", "chrono",
"half", "half",
"lexical-core", "lexical-core",
@@ -350,6 +350,12 @@ version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
name = "base64"
version = "0.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5"
[[package]] [[package]]
name = "bigdecimal" name = "bigdecimal"
version = "0.4.10" version = "0.4.10"
@@ -865,7 +871,7 @@ checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d"
[[package]] [[package]]
name = "flix" name = "flix"
version = "0.1.0" version = "0.1.1"
dependencies = [ dependencies = [
"flix-db", "flix-db",
"flix-fs", "flix-fs",
@@ -875,7 +881,7 @@ dependencies = [
[[package]] [[package]]
name = "flix-cli" name = "flix-cli"
version = "0.1.0" version = "0.1.1"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"chrono", "chrono",
@@ -891,7 +897,7 @@ dependencies = [
[[package]] [[package]]
name = "flix-db" name = "flix-db"
version = "0.1.0" version = "0.1.1"
dependencies = [ dependencies = [
"chrono", "chrono",
"flix-model", "flix-model",
@@ -904,7 +910,7 @@ dependencies = [
[[package]] [[package]]
name = "flix-fs" name = "flix-fs"
version = "0.1.0" version = "0.1.1"
dependencies = [ dependencies = [
"async-stream", "async-stream",
"either", "either",
@@ -918,7 +924,7 @@ dependencies = [
[[package]] [[package]]
name = "flix-model" name = "flix-model"
version = "0.1.0" version = "0.1.1"
dependencies = [ dependencies = [
"itertools 0.15.0", "itertools 0.15.0",
"seamantic", "seamantic",
@@ -928,7 +934,7 @@ dependencies = [
[[package]] [[package]]
name = "flix-mux" name = "flix-mux"
version = "0.1.0" version = "0.1.1"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"clap", "clap",
@@ -941,7 +947,7 @@ dependencies = [
[[package]] [[package]]
name = "flix-tmdb" name = "flix-tmdb"
version = "0.1.0" version = "0.1.1"
dependencies = [ dependencies = [
"bytes", "bytes",
"chrono", "chrono",
@@ -1268,9 +1274,9 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
[[package]] [[package]]
name = "hybrid-array" name = "hybrid-array"
version = "0.4.14" version = "0.4.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "707114b52a152fa7bdb290cd7cd5912d9467273b6d74e21b8d81aca1f8533f6b" checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17"
dependencies = [ dependencies = [
"typenum", "typenum",
] ]
@@ -1316,7 +1322,7 @@ version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0"
dependencies = [ dependencies = [
"base64", "base64 0.22.1",
"bytes", "bytes",
"futures-channel", "futures-channel",
"futures-util", "futures-util",
@@ -2240,11 +2246,11 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
[[package]] [[package]]
name = "reqwest" name = "reqwest"
version = "0.13.4" version = "0.13.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" checksum = "16a1cfa75cc186dd73d5818e510e042e40927bccc9c236b061cea97e1eb08029"
dependencies = [ dependencies = [
"base64", "base64 0.23.1",
"bytes", "bytes",
"futures-core", "futures-core",
"http", "http",
@@ -2857,7 +2863,7 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05b44e85bf579a8eeb4ceaa77a3a523baf2bf0e9bac7e40f405d537b5d2d5ccb" checksum = "05b44e85bf579a8eeb4ceaa77a3a523baf2bf0e9bac7e40f405d537b5d2d5ccb"
dependencies = [ dependencies = [
"base64", "base64 0.22.1",
"bytes", "bytes",
"cfg-if", "cfg-if",
"chrono", "chrono",
@@ -2966,7 +2972,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87a2bdd6e83f6b3ea525ca9fee568030508b58355a43d0b2c1674d5f79dcd65e" checksum = "87a2bdd6e83f6b3ea525ca9fee568030508b58355a43d0b2c1674d5f79dcd65e"
dependencies = [ dependencies = [
"atoi", "atoi",
"base64", "base64 0.22.1",
"bitflags", "bitflags",
"byteorder", "byteorder",
"chrono", "chrono",
@@ -3466,9 +3472,9 @@ dependencies = [
[[package]] [[package]]
name = "url-macro" name = "url-macro"
version = "0.2.4" version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a77b65c7a7ab8283571978ef99afd537e1485bb48a3e5341de9bbedb9ca5c57d" checksum = "eef11d8fb2f916e16b8ee3e71226505a754c457510c443170b3f0e1d8b58507f"
dependencies = [ dependencies = [
"url", "url",
] ]
@@ -3866,18 +3872,18 @@ dependencies = [
[[package]] [[package]]
name = "zerocopy" name = "zerocopy"
version = "0.8.56" version = "0.8.57"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb" checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873"
dependencies = [ dependencies = [
"zerocopy-derive", "zerocopy-derive",
] ]
[[package]] [[package]]
name = "zerocopy-derive" name = "zerocopy-derive"
version = "0.8.56" version = "0.8.57"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1" checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
+7 -7
View File
@@ -9,13 +9,13 @@ license-file = "LICENSE.md"
publish = false publish = false
[workspace.dependencies] [workspace.dependencies]
flix = { path = "crates/flix", version = "=0.1.0", default-features = false } flix = { path = "crates/flix", version = "=0.1.1", default-features = false }
flix-cli = { path = "crates/cli", version = "=0.1.0", default-features = false } flix-cli = { path = "crates/cli", version = "=0.1.1", default-features = false }
flix-db = { path = "crates/db", version = "=0.1.0", default-features = false } flix-db = { path = "crates/db", version = "=0.1.1", default-features = false }
flix-fs = { path = "crates/fs", version = "=0.1.0", default-features = false } flix-fs = { path = "crates/fs", version = "=0.1.1", default-features = false }
flix-model = { path = "crates/model", version = "=0.1.0", default-features = false } flix-model = { path = "crates/model", version = "=0.1.1", default-features = false }
flix-mux = { path = "crates/cli-mux", version = "=0.1.0", default-features = false } flix-mux = { path = "crates/cli-mux", version = "=0.1.1", default-features = false }
flix-tmdb = { path = "crates/tmdb", version = "=0.1.0", default-features = false } flix-tmdb = { path = "crates/tmdb", version = "=0.1.1", default-features = false }
anyhow = { version = "^1.0.87", default-features = false } anyhow = { version = "^1.0.87", default-features = false }
async-stream = { version = "^0.3.5", default-features = false } async-stream = { version = "^0.3.5", default-features = false }
+2 -3
View File
@@ -46,16 +46,15 @@ run flix add tmdb movie 49538 # X-Men: First Class (2011)
run flix add tmdb movie 127585 # X-Men: Days of Future Past (2014) run flix add tmdb movie 127585 # X-Men: Days of Future Past (2014)
run flix add tmdb movie 246655 # X-Men: Apocalypse (2016) run flix add tmdb movie 246655 # X-Men: Apocalypse (2016)
run flix add tmdb movie 320288 # Dark Phoenix (2019) run flix add tmdb movie 320288 # Dark Phoenix (2019)
run flix add tmdb collection 1645434 # X-Anthology
run flix add tmdb movie 26623 # Generation X (1996)
run flix add tmdb movie 340102 # The New Mutants (2020)
run flix add tmdb collection 558216 # Venom Collection run flix add tmdb collection 558216 # Venom Collection
run flix add tmdb movie 335983 # Venom (2018) run flix add tmdb movie 335983 # Venom (2018)
run flix add tmdb movie 580489 # Venom: Let There Be Carnage (2021) run flix add tmdb movie 580489 # Venom: Let There Be Carnage (2021)
run flix add tmdb movie 912649 # Venom: The Last Dance (2024) run flix add tmdb movie 912649 # Venom: The Last Dance (2024)
run flix add tmdb movie 26623 # Generation X (1996)
run flix add tmdb movie 1927 # Hulk (2003) run flix add tmdb movie 1927 # Hulk (2003)
run flix add tmdb movie 340102 # The New Mutants (2020)
run flix add tmdb movie 634492 # Madame Web (2024) run flix add tmdb movie 634492 # Madame Web (2024)
run flix add \ run flix add \
+14 -13
View File
@@ -1,16 +1,7 @@
run flix add flix collection \ run flix add \
"Barbie Animated Collection" \ --title "Barbie Collection" \
"Collection of the animated films based on Mattel's Barbie." --overview "Collection of the animated films based on Mattel's Barbie." \
tmdb collection 1698073
run flix add tmdb collection 411859 # Barbie Fairytopia Collection
run flix add tmdb movie 13284 # Barbie: Fairytopia (2005)
run flix add tmdb movie 13285 # Barbie Fairytopia: Mermaidia (2006)
run flix add tmdb movie 16962 # Barbie Fairytopia: Magic of the Rainbow (2007)
run flix add tmdb collection 447622 # Barbie Mariposa Collection
run flix add tmdb movie 18198 # Barbie Mariposa (2008)
run flix add tmdb movie 196254 # Barbie Mariposa & the Fairy Princess (2013)
run flix add tmdb movie 15167 # Barbie in the Nutcracker (2001) run flix add tmdb movie 15167 # Barbie in the Nutcracker (2001)
run flix add tmdb movie 15015 # Barbie as Rapunzel (2002) run flix add tmdb movie 15015 # Barbie as Rapunzel (2002)
run flix add tmdb movie 15016 # Barbie of Swan Lake (2003) run flix add tmdb movie 15016 # Barbie of Swan Lake (2003)
@@ -22,4 +13,14 @@ run flix add tmdb movie 13004 # Barbie and the Diamond Castle
run flix add tmdb movie 13459 # Barbie in 'A Christmas Carol' (2008) run flix add tmdb movie 13459 # Barbie in 'A Christmas Carol' (2008)
run flix add tmdb movie 23566 # Barbie and the Three Musketeers (2009) run flix add tmdb movie 23566 # Barbie and the Three Musketeers (2009)
run flix add tmdb movie 16418 # Barbie Presents: Thumbelina (2009) run flix add tmdb movie 16418 # Barbie Presents: Thumbelina (2009)
run flix add tmdb collection 411859 # Barbie Fairytopia Collection
run flix add tmdb movie 13284 # Barbie: Fairytopia (2005)
run flix add tmdb movie 13285 # Barbie Fairytopia: Mermaidia (2006)
run flix add tmdb movie 16962 # Barbie Fairytopia: Magic of the Rainbow (2007)
run flix add tmdb collection 447622 # Barbie Mariposa Collection
run flix add tmdb movie 18198 # Barbie Mariposa (2008)
run flix add tmdb movie 196254 # Barbie Mariposa & the Fairy Princess (2013)
run flix add tmdb movie 21705 # The Barbie Diaries (2006) run flix add tmdb movie 21705 # The Barbie Diaries (2006)
+1
View File
@@ -46,6 +46,7 @@ run flix add tmdb show 63247 # Westworld (2016)
run flix add tmdb show 71912 # The Witcher (2019) run flix add tmdb show 71912 # The Witcher (2019)
# Fixups # Fixups
run flix add tmdb season 15260 0 # Adventure Time Specials
run flix add flix episode \ run flix add flix episode \
"brooklyn-nine-nine-2013" 8 10 \ "brooklyn-nine-nine-2013" 8 10 \
"The Last Day (Part 2)" \ "The Last Day (Part 2)" \
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "flix-mux" name = "flix-mux"
version = "0.1.0" version = "0.1.1"
description = "CLI for bulk media muxing" description = "CLI for bulk media muxing"
repository = "https://git.skrundz.dev/quantumshade/flix" repository = "https://git.skrundz.dev/quantumshade/flix"
keywords = ["flix"] keywords = ["flix"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "flix-cli" name = "flix-cli"
version = "0.1.0" version = "0.1.1"
description = "CLI for interacting with a flix database" description = "CLI for interacting with a flix database"
repository = "https://git.skrundz.dev/quantumshade/flix" repository = "https://git.skrundz.dev/quantumshade/flix"
keywords = ["flix"] keywords = ["flix"]
+4
View File
@@ -93,6 +93,9 @@ pub(crate) struct AddOverrides {
/// Override the displayed title. /// Override the displayed title.
#[arg(long)] #[arg(long)]
pub title: Option<String>, pub title: Option<String>,
/// Override the displayed overview.
#[arg(long)]
pub overview: Option<String>,
/// Override the title used to sort. /// Override the title used to sort.
#[arg(long)] #[arg(long)]
pub sort_title: Option<String>, pub sort_title: Option<String>,
@@ -106,6 +109,7 @@ pub(crate) struct AddOverrides {
/// Top level cli commands. /// Top level cli commands.
#[derive(Subcommand)] #[derive(Subcommand)]
#[expect(clippy::large_enum_variant, reason = "not performance critical")]
pub(crate) enum Command { pub(crate) enum Command {
/// Initialize a new database. /// Initialize a new database.
Init, Init,
+2 -1
View File
@@ -52,6 +52,7 @@ pub(crate) async fn add(
.with_context(|| format!("collections().get_details({})", id.into_raw()))?; .with_context(|| format!("collections().get_details({})", id.into_raw()))?;
let title = overrides.title.unwrap_or(collection.title); let title = overrides.title.unwrap_or(collection.title);
let overview = overrides.overview.unwrap_or(collection.overview);
let sort_title = overrides let sort_title = overrides
.sort_title .sort_title
@@ -81,7 +82,7 @@ pub(crate) async fn add(
let flix = entity::info::collections::ActiveModel { let flix = entity::info::collections::ActiveModel {
id: NotSet, id: NotSet,
title: Set(title), title: Set(title),
overview: Set(collection.overview), overview: Set(overview),
sort_title: Set(sort_title), sort_title: Set(sort_title),
fs_slug: Set(fs_slug), fs_slug: Set(fs_slug),
web_slug: Set(web_slug), web_slug: Set(web_slug),
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "flix-db" name = "flix-db"
version = "0.1.0" version = "0.1.1"
description = "Types for storing persistent data about media" description = "Types for storing persistent data about media"
repository = "https://git.skrundz.dev/quantumshade/flix" repository = "https://git.skrundz.dev/quantumshade/flix"
keywords = ["flix"] keywords = ["flix"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "flix" name = "flix"
version = "0.1.0" version = "0.1.1"
description = "Mechanisms for interacting with flix media" description = "Mechanisms for interacting with flix media"
repository = "https://git.skrundz.dev/quantumshade/flix" repository = "https://git.skrundz.dev/quantumshade/flix"
keywords = ["flix"] keywords = ["flix"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "flix-fs" name = "flix-fs"
version = "0.1.0" version = "0.1.1"
description = "Filesystem scanner for flix media" description = "Filesystem scanner for flix media"
repository = "https://git.skrundz.dev/quantumshade/flix" repository = "https://git.skrundz.dev/quantumshade/flix"
keywords = ["flix"] keywords = ["flix"]
+1 -1
View File
@@ -110,7 +110,7 @@ impl Scanner {
#[expect(clippy::panic, reason = "static regex string")] #[expect(clippy::panic, reason = "static regex string")]
let media_folder_re = MEDIA_FOLDER_REGEX.get_or_init(|| { let media_folder_re = MEDIA_FOLDER_REGEX.get_or_init(|| {
Regex::new(r"^[[[:alnum:]]' -]+ \([[:digit:]]+\)( \[[[:digit:]]+\])?$") Regex::new(r"^[[[:alnum:]]' &-]+ \([[:digit:]]+\)( \[[[:digit:]]+\])?$")
.unwrap_or_else(|err| panic!("regex is invalid: {err}")) .unwrap_or_else(|err| panic!("regex is invalid: {err}"))
}); });
#[expect(clippy::panic, reason = "static regex string")] #[expect(clippy::panic, reason = "static regex string")]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "flix-model" name = "flix-model"
version = "0.1.0" version = "0.1.1"
description = "Core types for flix data" description = "Core types for flix data"
repository = "https://git.skrundz.dev/quantumshade/flix" repository = "https://git.skrundz.dev/quantumshade/flix"
keywords = ["flix"] keywords = ["flix"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "flix-tmdb" name = "flix-tmdb"
version = "0.1.0" version = "0.1.1"
description = "Clients and models for fetching data from TMDB" description = "Clients and models for fetching data from TMDB"
repository = "https://git.skrundz.dev/quantumshade/flix" repository = "https://git.skrundz.dev/quantumshade/flix"
keywords = ["flix"] keywords = ["flix"]