diff options
author | metamuffin <metamuffin@disroot.org> | 2025-04-23 12:00:09 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-04-23 12:00:09 +0200 |
commit | 81b7026e10cb4aa131e61920449cd52a54897952 (patch) | |
tree | 56fe08bcd4183e8ec1e933b339c9cbd2a2062b62 /import/src/lib.rs | |
parent | d1ef44b1289ad0de08c757b3216eb226da7450d9 (diff) | |
download | jellything-81b7026e10cb4aa131e61920449cd52a54897952.tar jellything-81b7026e10cb4aa131e61920449cd52a54897952.tar.bz2 jellything-81b7026e10cb4aa131e61920449cd52a54897952.tar.zst |
more work on acoustid and import existing musicbrainz tags
Diffstat (limited to 'import/src/lib.rs')
-rw-r--r-- | import/src/lib.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/import/src/lib.rs b/import/src/lib.rs index 8b7dc8f..4ee4a6e 100644 --- a/import/src/lib.rs +++ b/import/src/lib.rs @@ -3,6 +3,8 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2025 metamuffin <metamuffin.org> */ +#![feature(duration_constants)] +use acoustid::AcoustID; use anyhow::{anyhow, bail, Context, Result}; use infojson::YVideo; use jellybase::{ @@ -48,6 +50,7 @@ static RE_EPISODE_FILENAME: LazyLock<Regex> = struct Apis { trakt: Option<Trakt>, tmdb: Option<Tmdb>, + acoustid: Option<AcoustID>, } pub fn is_importing() -> bool { @@ -73,6 +76,7 @@ fn import(db: &Database, incremental: bool) -> Result<()> { let apis = Apis { trakt: SECRETS.api.trakt.as_ref().map(|key| Trakt::new(key)), tmdb: SECRETS.api.tmdb.as_ref().map(|key| Tmdb::new(key)), + acoustid: SECRETS.api.acoustid.as_ref().map(|key| AcoustID::new(key)), }; let rthandle = Handle::current(); @@ -365,6 +369,33 @@ fn import_media_file( } } + for (key, value) in &tags { + match key.as_str() { + "MUSICBRAINZ_TRACKID" => node + .external_ids + .insert("musicbrainz:track".to_string(), value.to_owned()), + "MUSICBRAINZ_ARTISTID" => node + .external_ids + .insert("musicbrainz:artist".to_string(), value.to_owned()), + "MUSICBRAINZ_ALBUMID" => node + .external_ids + .insert("musicbrainz:album".to_string(), value.to_owned()), + "MUSICBRAINZ_ALBUMARTISTID" => node + .external_ids + .insert("musicbrainz:albumarists".to_string(), value.to_owned()), + "MUSICBRAINZ_RELEASEGROUPID" => node + .external_ids + .insert("musicbrainz:releasegroup".to_string(), value.to_owned()), + "ISRC" => node + .external_ids + .insert("isrc".to_string(), value.to_owned()), + "BARCODE" => node + .external_ids + .insert("barcode".to_string(), value.to_owned()), + _ => None, + }; + } + let tracks = tracks .entries .into_iter() |