diff options
| author | metamuffin <metamuffin@disroot.org> | 2025-11-18 12:08:34 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2025-11-18 12:08:34 +0100 |
| commit | bac47e456085ea153ae6ae1b1e28e41868693c9c (patch) | |
| tree | 062c157d66faa3935c1175433732d30c07d1cd5b /import | |
| parent | f3af9263b0472bcef3207906ce0e4d1d4aa3595b (diff) | |
| download | jellything-bac47e456085ea153ae6ae1b1e28e41868693c9c.tar jellything-bac47e456085ea153ae6ae1b1e28e41868693c9c.tar.bz2 jellything-bac47e456085ea153ae6ae1b1e28e41868693c9c.tar.zst | |
start reworking model
Diffstat (limited to 'import')
| -rw-r--r-- | import/asset_token/src/lib.rs | 5 | ||||
| -rw-r--r-- | import/src/lib.rs | 54 |
2 files changed, 22 insertions, 37 deletions
diff --git a/import/asset_token/src/lib.rs b/import/asset_token/src/lib.rs index 0a120f0..ef1850e 100644 --- a/import/asset_token/src/lib.rs +++ b/import/asset_token/src/lib.rs @@ -6,7 +6,6 @@ use aes_gcm_siv::{aead::Aead, Aes256GcmSiv, KeyInit}; use anyhow::{anyhow, bail, Context}; use base64::Engine; -use bincode::{Decode, Encode}; use jellycache::CachePath; pub use jellycommon as common; use jellycommon::{Asset, LocalTrack}; @@ -46,10 +45,10 @@ static ASSET_KEY: LazyLock<Aes256GcmSiv> = LazyLock::new(|| { } }); -#[derive(Debug, Encode, Decode, Serialize, PartialEq, Eq)] +#[derive(Debug, Serialize, PartialEq, Eq)] pub enum AssetInner { Federated { host: String, asset: Vec<u8> }, - Cache(#[bincode(with_serde)] CachePath), + Cache(CachePath), Assets(PathBuf), Media(PathBuf), LocalTrack(LocalTrack), diff --git a/import/src/lib.rs b/import/src/lib.rs index 1fd8bc7..1a1d5ad 100644 --- a/import/src/lib.rs +++ b/import/src/lib.rs @@ -24,7 +24,7 @@ use infojson::YVideo; use jellycache::{cache_file, cache_memory}; use jellycommon::{ Appearance, Chapter, LocalTrack, MediaInfo, Node, NodeID, NodeKind, ObjectIds, PeopleGroup, - Person, Rating, SourceTrack, SourceTrackKind, TmdbKind, TrackSource, TraktKind, Visibility, + Person, RatingType, SourceTrack, SourceTrackKind, TmdbKind, TrackSource, TraktKind, Visibility, }; use jellyimport_fallback_generator::generate_fallback; use jellyremuxer::{ @@ -291,7 +291,7 @@ fn import_file( merge_option(&mut node.description, data.description); merge_option(&mut node.index, data.index); merge_option(&mut node.release_date, data.release_date); - node.external_ids.extend(data.external_ids); + node.identifiers.extend(data.identifiers); Ok(()) })?; @@ -323,10 +323,10 @@ fn import_file( node.kind = NodeKind::Channel; node.title = Some(clean_uploader_name(&data.title).to_owned()); if let Some(cid) = data.channel_id { - node.external_ids.insert("youtube.channel".to_string(), cid); + node.identifiers.insert("youtube.channel".to_string(), cid); } if let Some(uid) = data.uploader_id { - node.external_ids + node.identifiers .insert("youtube.channelname".to_string(), uid); } if let Some(desc) = data.description { @@ -334,7 +334,7 @@ fn import_file( } if let Some(followers) = data.channel_follower_count { node.ratings - .insert(Rating::YoutubeFollowers, followers as f64); + .insert(RatingType::YoutubeFollowers, followers as f64); } Ok(()) })?; @@ -401,7 +401,8 @@ fn import_media_file( .transpose()?; let mut tags = m - .tags.first() + .tags + .first() .map(|tags| { tags.tags .iter() @@ -508,7 +509,7 @@ fn import_media_file( node.tagline = tags.remove("COMMENT").or(node.tagline.clone()); node.parents.insert(parent); - node.external_ids.extend(eids); + node.identifiers.extend(eids); if let Some(ct) = tags.get("CONTENT_TYPE") { node.kind = match ct.to_lowercase().trim() { @@ -533,9 +534,6 @@ fn import_media_file( SourceTrackKind::Video { width: video.pixel_width, height: video.pixel_height, - display_width: video.display_width, - display_height: video.display_height, - display_unit: video.display_unit, fps: video.frame_rate, } } else if let Some(audio) = &track.audio { @@ -594,20 +592,17 @@ fn import_media_file( } match infojson.extractor.as_str() { "youtube" => { - node.external_ids + node.identifiers .insert("youtube.video".to_string(), infojson.id); node.ratings.insert( - Rating::YoutubeViews, + RatingType::YoutubeViews, infojson.view_count.unwrap_or_default() as f64, ); if let Some(lc) = infojson.like_count { - node.ratings.insert(Rating::YoutubeLikes, lc as f64); + node.ratings.insert(RatingType::YoutubeLikes, lc as f64); } } - "Bandcamp" => drop( - node.external_ids - .insert("bandcamp".to_string(), infojson.id), - ), + "Bandcamp" => drop(node.identifiers.insert("bandcamp".to_string(), infojson.id)), _ => (), } } @@ -686,7 +681,7 @@ fn import_media_file( node.title = Some(episode.title.clone()); node.poster = poster.or(node.poster.clone()); node.description = episode.overview.clone().or(node.description.clone()); - node.ratings.insert(Rating::Trakt, episode.rating); + node.ratings.insert(RatingType::Trakt, episode.rating); Ok(()) })? } @@ -770,11 +765,11 @@ fn apply_musicbrainz_recording( db.update_node_init(node, |node| { node.title = Some(rec.title.clone()); - node.external_ids + node.identifiers .insert("musicbrainz.recording".to_string(), rec.id.to_string()); if let Some(a) = rec.artist_credit.first() { node.subtitle = Some(a.artist.name.clone()); - node.external_ids + node.identifiers .insert("musicbrainz.artist".to_string(), a.artist.id.to_string()); } @@ -850,24 +845,15 @@ fn apply_musicbrainz_recording( .ser(), }; - node.people.entry(group).or_default().push(Appearance { + node.credits.entry(group).or_default().push(Appearance { jobs, characters: vec![], - person: Person { - name: if rel.target_credit.is_empty() { - artist.name.clone() - } else { - rel.target_credit.clone() - }, - headshot: Some(headshot), - ids: ObjectIds::default(), - }, }); } } for isrc in &rec.isrcs { - node.external_ids + node.identifiers .insert("isrc".to_string(), isrc.to_string()); } Ok(()) @@ -944,7 +930,7 @@ fn apply_trakt_tmdb( db.update_node_init(node, |node| { node.title = Some(data.title.clone()); - node.people.extend(people_map); + node.credits.extend(people_map); node.kind = match trakt_kind { TraktKind::Movie => NodeKind::Movie, TraktKind::Show => NodeKind::Show, @@ -960,7 +946,7 @@ fn apply_trakt_tmdb( node.tagline = Some(tagline.clone()) } if let Some(rating) = &data.rating { - node.ratings.insert(Rating::Trakt, *rating); + node.ratings.insert(RatingType::Trakt, *rating); } if let Some(poster) = poster { node.poster = Some(poster); @@ -972,7 +958,7 @@ fn apply_trakt_tmdb( node.title = data.title.clone().or(node.title.clone()); node.tagline = data.tagline.clone().or(node.tagline.clone()); node.description = Some(data.overview.clone()); - node.ratings.insert(Rating::Tmdb, data.vote_average); + node.ratings.insert(RatingType::Tmdb, data.vote_average); if let Some(date) = data.release_date.clone() { if let Ok(date) = tmdb::parse_release_date(&date) { node.release_date = date; |