assets + fmt
Some checks failed
CI / Check / Test (push) Has been cancelled

This commit is contained in:
2026-06-03 01:13:06 +02:00
parent 8cabc6af70
commit e8e83d3f16
17 changed files with 44 additions and 95 deletions

74
Cargo.lock generated
View File

@@ -2727,20 +2727,6 @@ dependencies = [
"icu_properties",
]
[[package]]
name = "image"
version = "0.24.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
dependencies = [
"bytemuck",
"byteorder",
"color_quant",
"jpeg-decoder",
"num-traits",
"png 0.17.16",
]
[[package]]
name = "image"
version = "0.25.10"
@@ -2755,7 +2741,7 @@ dependencies = [
"image-webp",
"moxcms",
"num-traits",
"png 0.18.1",
"png",
"qoi",
"ravif 0.13.0",
"rayon",
@@ -2772,7 +2758,7 @@ dependencies = [
"anyhow",
"async-trait",
"domain",
"image 0.25.10",
"image",
"image-storage",
"object_store",
"ravif 0.11.20",
@@ -2817,7 +2803,7 @@ dependencies = [
"ab_glyph",
"approx",
"getrandom 0.2.17",
"image 0.25.10",
"image",
"itertools 0.12.1",
"nalgebra",
"num",
@@ -3019,12 +3005,6 @@ dependencies = [
"libc",
]
[[package]]
name = "jpeg-decoder"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07"
[[package]]
name = "js-sys"
version = "0.3.99"
@@ -4040,48 +4020,6 @@ dependencies = [
"serde_json",
]
[[package]]
name = "plotters"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747"
dependencies = [
"num-traits",
"plotters-backend",
"plotters-bitmap",
"wasm-bindgen",
"web-sys",
]
[[package]]
name = "plotters-backend"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a"
[[package]]
name = "plotters-bitmap"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72ce181e3f6bf82d6c1dc569103ca7b1bd964c60ba03d7e6cdfbb3e3eb7f7405"
dependencies = [
"image 0.24.9",
"plotters-backend",
]
[[package]]
name = "png"
version = "0.17.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526"
dependencies = [
"bitflags 1.3.2",
"crc32fast",
"fdeflate",
"flate2",
"miniz_oxide",
]
[[package]]
name = "png"
version = "0.18.1"
@@ -6947,7 +6885,7 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c071456adef4aca59bf6a583c46b90ff5eb0b4f758fc347cea81290288f37ce1"
dependencies = [
"image 0.25.10",
"image",
"libwebp-sys",
]
@@ -7556,6 +7494,7 @@ dependencies = [
"tokio",
"tracing",
"tracing-subscriber",
"wrapup-renderer",
]
[[package]]
@@ -7565,9 +7504,8 @@ dependencies = [
"ab_glyph",
"async-trait",
"domain",
"image 0.25.10",
"image",
"imageproc",
"plotters",
"tempfile",
"tokio",
"tracing",

View File

@@ -204,13 +204,12 @@ impl WrapUpRepository for PostgresWrapUpRepository {
&self,
before: chrono::NaiveDateTime,
) -> Result<u64, DomainError> {
let result = sqlx::query(
"DELETE FROM wrap_up_records WHERE status = 'failed' AND created_at < $1",
)
.bind(before)
.execute(&self.pool)
.await
.map_err(map_err)?;
let result =
sqlx::query("DELETE FROM wrap_up_records WHERE status = 'failed' AND created_at < $1")
.bind(before)
.execute(&self.pool)
.await
.map_err(map_err)?;
Ok(result.rows_affected())
}
}

View File

@@ -215,13 +215,12 @@ impl WrapUpRepository for SqliteWrapUpRepository {
before: chrono::NaiveDateTime,
) -> Result<u64, DomainError> {
let before_str = before.format("%Y-%m-%dT%H:%M:%SZ").to_string();
let result = sqlx::query(
"DELETE FROM wrap_up_records WHERE status = 'failed' AND created_at < ?",
)
.bind(&before_str)
.execute(&self.pool)
.await
.map_err(map_err)?;
let result =
sqlx::query("DELETE FROM wrap_up_records WHERE status = 'failed' AND created_at < ?")
.bind(&before_str)
.execute(&self.pool)
.await
.map_err(map_err)?;
Ok(result.rows_affected())
}
}

View File

@@ -35,7 +35,12 @@ impl WrapUpVideoRenderer for FfmpegWrapUpRenderer {
slide_pngs.push(renderer.render_hero(report, width, height)?);
slide_pngs.push(renderer.render_ratings(report, width, height)?);
if !report.top_directors.is_empty() {
slide_pngs.push(renderer.render_directors(report, &assets.cast_images, width, height)?);
slide_pngs.push(renderer.render_directors(
report,
&assets.cast_images,
width,
height,
)?);
}
if !report.top_actors.is_empty() {
slide_pngs.push(renderer.render_actors(report, &assets.cast_images, width, height)?);
@@ -43,7 +48,12 @@ impl WrapUpVideoRenderer for FfmpegWrapUpRenderer {
if !report.top_genres.is_empty() {
slide_pngs.push(renderer.render_genres(report, width, height)?);
}
slide_pngs.push(renderer.render_highlights(report, &assets.poster_images, width, height)?);
slide_pngs.push(renderer.render_highlights(
report,
&assets.poster_images,
width,
height,
)?);
if !assets.poster_images.is_empty() {
slide_pngs.push(renderer.render_mosaic(&assets.poster_images, width, height)?);
} else {

View File

@@ -16,7 +16,11 @@ pub async fn execute(
if let Ok(Some(rec)) = ctx.repos.wrapup_repo.get_by_id(&wrapup_id).await
&& (rec.status == WrapUpStatus::Ready || rec.status == WrapUpStatus::Generating)
{
tracing::debug!("wrapup {} already {:?}, skipping", wrapup_id.value(), rec.status);
tracing::debug!(
"wrapup {} already {:?}, skipping",
wrapup_id.value(),
rec.status
);
return Ok(());
}

View File

@@ -1218,10 +1218,7 @@ impl WrapUpRepository for PanicWrapUpRepository {
async fn delete(&self, _: &WrapUpId) -> Result<(), DomainError> {
panic!("PanicWrapUpRepository called")
}
async fn delete_failed_older_than(
&self,
_: chrono::NaiveDateTime,
) -> Result<u64, DomainError> {
async fn delete_failed_older_than(&self, _: chrono::NaiveDateTime) -> Result<u64, DomainError> {
panic!("PanicWrapUpRepository called")
}
}

View File

@@ -632,10 +632,7 @@ impl domain::ports::WrapUpRepository for Panic {
async fn delete(&self, _: &domain::value_objects::WrapUpId) -> Result<(), DomainError> {
panic!()
}
async fn delete_failed_older_than(
&self,
_: chrono::NaiveDateTime,
) -> Result<u64, DomainError> {
async fn delete_failed_older_than(&self, _: chrono::NaiveDateTime) -> Result<u64, DomainError> {
panic!()
}
}

View File

@@ -106,9 +106,14 @@ async fn main() -> anyhow::Result<()> {
document_parser: Arc::new(ImporterDocumentParser) as Arc<dyn DocumentParser>,
video_renderer: {
let ffmpeg = &app_config.wrapup.ffmpeg_path;
if std::process::Command::new(ffmpeg).arg("-version").output().is_ok() {
if std::process::Command::new(ffmpeg)
.arg("-version")
.output()
.is_ok()
{
tracing::info!("wrapup video renderer enabled (ffmpeg={ffmpeg})");
Some(Arc::new(wrapup_renderer::FfmpegWrapUpRenderer::new()) as Arc<dyn domain::ports::WrapUpVideoRenderer>)
Some(Arc::new(wrapup_renderer::FfmpegWrapUpRenderer::new())
as Arc<dyn domain::ports::WrapUpVideoRenderer>)
} else {
tracing::info!("wrapup video renderer disabled (ffmpeg not found)");
None

BIN
static/wrapups/bg1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 KiB

BIN
static/wrapups/bg10.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

BIN
static/wrapups/bg2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 KiB

BIN
static/wrapups/bg3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

BIN
static/wrapups/bg4.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 KiB

BIN
static/wrapups/bg5.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
static/wrapups/bg6.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 MiB

BIN
static/wrapups/bg8.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
static/wrapups/bg9.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1022 KiB