aboutsummaryrefslogtreecommitdiff
path: root/import/src/musicbrainz.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-04-25 12:30:30 +0200
committermetamuffin <metamuffin@disroot.org>2025-04-25 12:30:30 +0200
commited5c3771f40a5107990fdbeafc3b22b88e9347be (patch)
tree51d544aba73a28133f106c26d9ece262a3ff7301 /import/src/musicbrainz.rs
parentd3ab2847600eabeb102b969860e6e154cd24d954 (diff)
downloadjellything-ed5c3771f40a5107990fdbeafc3b22b88e9347be.tar
jellything-ed5c3771f40a5107990fdbeafc3b22b88e9347be.tar.bz2
jellything-ed5c3771f40a5107990fdbeafc3b22b88e9347be.tar.zst
add wikidata api bindings (untested)
Diffstat (limited to 'import/src/musicbrainz.rs')
-rw-r--r--import/src/musicbrainz.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/import/src/musicbrainz.rs b/import/src/musicbrainz.rs
index 2d3d532..51573db 100644
--- a/import/src/musicbrainz.rs
+++ b/import/src/musicbrainz.rs
@@ -8,6 +8,7 @@ use crate::USER_AGENT;
use anyhow::Result;
use bincode::{Decode, Encode};
use jellybase::cache::async_cache_memory;
+use log::info;
use reqwest::{
header::{HeaderMap, HeaderName, HeaderValue},
Client, ClientBuilder,
@@ -19,6 +20,19 @@ use tokio::{
time::{sleep_until, Instant},
};
+pub mod reltypes {
+ pub const MUSIC_VIDEO: &str = "ce3de655-7451-44d1-9224-87eb948c205d";
+ pub const INSTRUMENTAL: &str = "9fc01a58-7801-4bd2-b07d-61cc7ffacf90";
+ pub const VOCAL: &str = "0fdbe3c6-7700-4a31-ae54-b53f06ae1cfa";
+ pub const RECORDING: &str = "a01ee869-80a8-45ef-9447-c59e91aa7926";
+ pub const PROGRAMMING: &str = "36c50022-44e0-488d-994b-33f11d20301e";
+ pub const PRODUCER: &str = "5c0ceac3-feb4-41f0-868d-dc06f6e27fc0";
+ pub const ARTIST: &str = "5c0ceac3-feb4-41f0-868d-dc06f6e27fc0";
+ pub const PHONOGRAPHIC_COPYRIGHT: &str = "7fd5fbc0-fbf4-4d04-be23-417d50a4dc30";
+ pub const MIX: &str = "3e3102e1-1896-4f50-b5b2-dd9824e46efe";
+ pub const INSTRUMENT: &str = "59054b12-01ac-43ee-a618-285fd397e461";
+}
+
pub struct MusicBrainz {
client: Client,
rate_limit: Arc<Semaphore>,
@@ -150,6 +164,7 @@ impl MusicBrainz {
async_cache_memory("api-musicbrainz-recording", id.clone(), || async move {
let _permit = self.rate_limit.clone().acquire_owned().await?;
let permit_drop_ts = Instant::now() + Duration::from_secs(10);
+ info!("recording lookup: {id}");
let inc = [
"isrcs",