fmt
Some checks failed
CI / Check / Test (push) Failing after 6m32s

This commit is contained in:
2026-06-03 01:38:25 +02:00
parent 430fbb21ea
commit 6668ba511c
11 changed files with 55 additions and 44 deletions

View File

@@ -5,7 +5,7 @@ use domain::{
errors::DomainError,
events::DomainEvent,
ports::{
EventHandler, EventPublisher, ObjectStorage, MetadataClient, MovieRepository,
EventHandler, EventPublisher, MetadataClient, MovieRepository, ObjectStorage,
PosterFetcherClient,
},
value_objects::{ExternalMetadataId, MovieId, PosterPath},

View File

@@ -8,8 +8,8 @@ use domain::{
events::DomainEvent,
models::{CastMember, CrewMember, Genre, Keyword, MovieProfile},
ports::{
EventHandler, ObjectStorage, MovieEnrichmentClient, MovieProfileRepository, MovieRepository,
PersonCommand, SearchCommand,
EventHandler, MovieEnrichmentClient, MovieProfileRepository, MovieRepository,
ObjectStorage, PersonCommand, SearchCommand,
},
value_objects::MovieId,
};

View File

@@ -56,10 +56,12 @@ impl WrapUpVideoRenderer for FfmpegWrapUpRenderer {
)?);
}
if !report.top_actors.is_empty() {
slide_pngs.push(
self.slide_renderer
.render_actors(report, &assets.cast_images, width, height)?,
);
slide_pngs.push(self.slide_renderer.render_actors(
report,
&assets.cast_images,
width,
height,
)?);
}
if !report.top_genres.is_empty() {
slide_pngs.push(self.slide_renderer.render_genres(report, width, height)?);
@@ -71,10 +73,11 @@ impl WrapUpVideoRenderer for FfmpegWrapUpRenderer {
height,
)?);
if !assets.poster_images.is_empty() {
slide_pngs.push(
self.slide_renderer
.render_mosaic(&assets.poster_images, width, height)?,
);
slide_pngs.push(self.slide_renderer.render_mosaic(
&assets.poster_images,
width,
height,
)?);
} else {
tracing::warn!("no poster images resolved, skipping mosaic slide");
}

View File

@@ -1,13 +1,13 @@
use std::sync::Arc;
use domain::ports::{
AuthService, DiaryExporter, DiaryRepository, DocumentParser, EventPublisher, ObjectStorage,
AuthService, DiaryExporter, DiaryRepository, DocumentParser, EventPublisher,
ImportProfileRepository, ImportSessionRepository, MetadataClient, MovieProfileRepository,
MovieRepository, PasswordHasher, PersonCommand, PersonQuery, PosterFetcherClient,
RemoteWatchlistRepository, ReviewRepository, SearchCommand, SearchPort, SocialQueryPort,
StatsRepository, UserProfileFieldsRepository, UserRepository, WatchEventRepository,
WatchlistRepository, WebhookTokenRepository, WrapUpRepository, WrapUpStatsQuery,
WrapUpVideoRenderer,
MovieRepository, ObjectStorage, PasswordHasher, PersonCommand, PersonQuery,
PosterFetcherClient, RemoteWatchlistRepository, ReviewRepository, SearchCommand, SearchPort,
SocialQueryPort, StatsRepository, UserProfileFieldsRepository, UserRepository,
WatchEventRepository, WatchlistRepository, WebhookTokenRepository, WrapUpRepository,
WrapUpStatsQuery, WrapUpVideoRenderer,
};
use crate::config::AppConfig;

View File

@@ -6,12 +6,12 @@ use domain::testing::{
};
use domain::{
ports::{
AuthService, DiaryExporter, DiaryRepository, DocumentParser, EventPublisher, ObjectStorage,
AuthService, DiaryExporter, DiaryRepository, DocumentParser, EventPublisher,
ImportProfileRepository, ImportSessionRepository, MetadataClient, MovieProfileRepository,
MovieRepository, PasswordHasher, PersonCommand, PersonQuery, PosterFetcherClient,
ReviewRepository, SearchCommand, SearchPort, StatsRepository, UserProfileFieldsRepository,
UserRepository, WatchEventRepository, WatchlistRepository, WebhookTokenRepository,
WrapUpRepository, WrapUpStatsQuery,
MovieRepository, ObjectStorage, PasswordHasher, PersonCommand, PersonQuery,
PosterFetcherClient, ReviewRepository, SearchCommand, SearchPort, StatsRepository,
UserProfileFieldsRepository, UserRepository, WatchEventRepository, WatchlistRepository,
WebhookTokenRepository, WrapUpRepository, WrapUpStatsQuery,
},
testing::{
FakeAuthService, FakeMetadataClient, FakePasswordHasher, InMemoryMovieRepository,

View File

@@ -47,7 +47,9 @@ pub async fn execute(
if let Some(ref renderer) = ctx.services.video_renderer {
let asset_storage = WrapUpStorage::new(ctx.services.object_storage.clone());
let poster_images = asset_storage.resolve_poster_images(&report.poster_paths).await;
let poster_images = asset_storage
.resolve_poster_images(&report.poster_paths)
.await;
let cast_images = asset_storage
.resolve_cast_images(&report.top_cast_profile_paths)
.await;

View File

@@ -27,10 +27,7 @@ impl WrapUpStorage {
format!("cast{profile_path}")
}
pub async fn resolve_cast_images(
&self,
profile_paths: &[String],
) -> Vec<(String, Vec<u8>)> {
pub async fn resolve_cast_images(&self, profile_paths: &[String]) -> Vec<(String, Vec<u8>)> {
let mut images = Vec::new();
for path in profile_paths.iter().take(20) {
let key = Self::cast_image_key(path);
@@ -39,14 +36,15 @@ impl WrapUpStorage {
Err(e) => tracing::debug!("cast fetch skipped for {key}: {e}"),
}
}
tracing::info!("resolved {}/{} cast images", images.len(), profile_paths.len());
tracing::info!(
"resolved {}/{} cast images",
images.len(),
profile_paths.len()
);
images
}
pub async fn resolve_poster_images(
&self,
paths: &[String],
) -> Vec<(String, Vec<u8>)> {
pub async fn resolve_poster_images(&self, paths: &[String]) -> Vec<(String, Vec<u8>)> {
let mut images = Vec::new();
for path in paths.iter().take(20) {
match self.inner.get(path).await {

View File

@@ -20,9 +20,9 @@ use crate::{
},
ports::{
AuthService, DiaryExporter, DiaryRepository, DocumentParser, EventPublisher, FeedSortBy,
FollowingFilter, GeneratedToken, ObjectStorage, ImportProfileRepository,
ImportSessionRepository, MetadataClient, MetadataSearchCriteria, MovieProfileRepository,
MovieRepository, PasswordHasher, PersonCommand, PersonQuery, PosterFetcherClient,
FollowingFilter, GeneratedToken, ImportProfileRepository, ImportSessionRepository,
MetadataClient, MetadataSearchCriteria, MovieProfileRepository, MovieRepository,
ObjectStorage, PasswordHasher, PersonCommand, PersonQuery, PosterFetcherClient,
ReviewRepository, SearchCommand, SearchPort, StatsRepository, UserProfileFieldsRepository,
UserRepository, WatchlistRepository, WrapUpRepository,
},
@@ -1099,7 +1099,11 @@ impl WrapUpRepository for InMemoryWrapUpRepository {
}
}
async fn set_complete(&self, id: &WrapUpId, report: &crate::models::wrapup::WrapUpReport) -> Result<(), DomainError> {
async fn set_complete(
&self,
id: &WrapUpId,
report: &crate::models::wrapup::WrapUpReport,
) -> Result<(), DomainError> {
let mut store = self.store.lock().unwrap();
if let Some(rec) = store.iter_mut().find(|r| r.id == *id) {
rec.status = crate::models::wrapup::WrapUpStatus::Ready;
@@ -1189,7 +1193,11 @@ impl WrapUpRepository for PanicWrapUpRepository {
) -> Result<(), DomainError> {
panic!("PanicWrapUpRepository called")
}
async fn set_complete(&self, _: &WrapUpId, _: &crate::models::wrapup::WrapUpReport) -> Result<(), DomainError> {
async fn set_complete(
&self,
_: &WrapUpId,
_: &crate::models::wrapup::WrapUpReport,
) -> Result<(), DomainError> {
panic!("PanicWrapUpRepository called")
}
async fn get_by_id(

View File

@@ -2,7 +2,7 @@ use std::sync::Arc;
use anyhow::Context;
use domain::ports::{
AuthService, ObjectStorage, LocalApContentQuery, MetadataClient, PasswordHasher,
AuthService, LocalApContentQuery, MetadataClient, ObjectStorage, PasswordHasher,
PosterFetcherClient, UserProfileFieldsRepository, WatchEventRepository, WebhookTokenRepository,
};

View File

@@ -19,10 +19,10 @@ use domain::{
collections::{PageParams, Paginated},
},
ports::{
AuthService, DiaryRepository, EventPublisher, GeneratedToken, ObjectStorage, MetadataClient,
MovieRepository, PasswordHasher, PersonCommand, PersonQuery, PosterFetcherClient,
ReviewRepository, SearchCommand, SearchPort, StatsRepository, UserRepository,
WatchlistRepository,
AuthService, DiaryRepository, EventPublisher, GeneratedToken, MetadataClient,
MovieRepository, ObjectStorage, PasswordHasher, PersonCommand, PersonQuery,
PosterFetcherClient, ReviewRepository, SearchCommand, SearchPort, StatsRepository,
UserRepository, WatchlistRepository,
},
value_objects::{
Email, ExternalMetadataId, MovieId, MovieTitle, PasswordHash, PosterUrl, ReleaseYear,

View File

@@ -18,8 +18,8 @@ use domain::{
SearchQuery, SearchResults, User,
},
ports::{
AuthService, EventPublisher, GeneratedToken, ObjectStorage, MetadataClient,
MetadataSearchCriteria, PasswordHasher, PersonCommand, PersonQuery, PosterFetcherClient,
AuthService, EventPublisher, GeneratedToken, MetadataClient, MetadataSearchCriteria,
ObjectStorage, PasswordHasher, PersonCommand, PersonQuery, PosterFetcherClient,
SearchCommand, SearchPort, UserRepository,
},
value_objects::{Email, ExternalMetadataId, PasswordHash, PosterUrl, UserId},