aboutsummaryrefslogtreecommitdiff
path: root/import/src/lib.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-04-23 12:00:09 +0200
committermetamuffin <metamuffin@disroot.org>2025-04-23 12:00:09 +0200
commit81b7026e10cb4aa131e61920449cd52a54897952 (patch)
tree56fe08bcd4183e8ec1e933b339c9cbd2a2062b62 /import/src/lib.rs
parentd1ef44b1289ad0de08c757b3216eb226da7450d9 (diff)
downloadjellything-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.rs31
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()