aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-02-05 19:37:50 +0100
committermetamuffin <metamuffin@disroot.org>2025-02-05 19:37:50 +0100
commitfea9d99cef52a8ba258f5c8a11af08ec3304613e (patch)
treeb8b90affc9fea3e549349fb80434d3c4673fedcc
parent1c70f3d967b79cc4d9a8ee645921c53e95b096b1 (diff)
downloadjellything-fea9d99cef52a8ba258f5c8a11af08ec3304613e.tar
jellything-fea9d99cef52a8ba258f5c8a11af08ec3304613e.tar.bz2
jellything-fea9d99cef52a8ba258f5c8a11af08ec3304613e.tar.zst
trakt logging, jellyfin auth casing option
-rw-r--r--import/src/lib.rs20
-rw-r--r--import/src/trakt.rs3
-rw-r--r--server/src/routes/compat/jellyfin/mod.rs11
-rw-r--r--server/src/routes/mod.rs6
-rw-r--r--tool/src/add.rs1
5 files changed, 39 insertions, 2 deletions
diff --git a/import/src/lib.rs b/import/src/lib.rs
index eee7a42..0d8a10a 100644
--- a/import/src/lib.rs
+++ b/import/src/lib.rs
@@ -460,6 +460,7 @@ fn apply_node_flag(
"movie" | "" => TraktKind::Movie,
"show" => TraktKind::Show,
"season" => TraktKind::Season,
+ "episode" => TraktKind::Episode,
_ => bail!("unknown trakt kind"),
};
apply_trakt_tmdb(db, rthandle, apis, node, kind, id)?;
@@ -476,6 +477,25 @@ fn apply_node_flag(
Ok(())
})?;
}
+ if let Some(kind) = flag.strip_prefix("kind-").or(flag.strip_prefix("kind=")) {
+ let kind = match kind {
+ "movie" => NodeKind::Movie,
+ "video" => NodeKind::Video,
+ "music" => NodeKind::Music,
+ "short_form_video" => NodeKind::ShortFormVideo,
+ "collection" => NodeKind::Collection,
+ "channel" => NodeKind::Channel,
+ "show" => NodeKind::Show,
+ "series" => NodeKind::Series,
+ "season" => NodeKind::Season,
+ "episode" => NodeKind::Episode,
+ _ => bail!("unknown node kind"),
+ };
+ db.update_node_init(node, |node| {
+ node.kind = kind;
+ Ok(())
+ })?;
+ }
Ok(())
}
diff --git a/import/src/trakt.rs b/import/src/trakt.rs
index 98532c5..c7a25ad 100644
--- a/import/src/trakt.rs
+++ b/import/src/trakt.rs
@@ -8,6 +8,7 @@ use jellybase::{
cache::async_cache_memory,
common::{Appearance, ObjectIds, PeopleGroup, Person, TraktKind},
};
+use log::info;
use reqwest::{
header::{HeaderMap, HeaderName, HeaderValue},
Client, ClientBuilder,
@@ -76,6 +77,7 @@ impl Trakt {
async_cache_memory(
&["api-trakt-lookup", &format!("{id} {extended}")],
|| async move {
+ info!("trakt lookup {kind:?}:{id:?}");
let url = format!(
"https://api.trakt.tv/{}/{}{}",
kind.plural(),
@@ -98,6 +100,7 @@ impl Trakt {
async_cache_memory(
&["api-trakt-people", &format!("{id} {extended}")],
|| async move {
+ info!("trakt people {kind:?}:{id:?}");
let url = format!(
"https://api.trakt.tv/{}/{}/people{}",
kind.plural(),
diff --git a/server/src/routes/compat/jellyfin/mod.rs b/server/src/routes/compat/jellyfin/mod.rs
index 9c0c6fb..eac2f55 100644
--- a/server/src/routes/compat/jellyfin/mod.rs
+++ b/server/src/routes/compat/jellyfin/mod.rs
@@ -509,6 +509,17 @@ struct AuthData {
username: String,
}
+#[post("/Users/AuthenticateByName", data = "<data>")]
+#[allow(private_interfaces)]
+pub fn r_jellyfin_users_authenticatebyname_case(
+ client_addr: IpAddr,
+ database: &State<Database>,
+ data: Json<AuthData>,
+ jar: &CookieJar,
+) -> MyResult<Json<Value>> {
+ r_jellyfin_users_authenticatebyname(client_addr, database, data, jar)
+}
+
#[post("/Users/authenticatebyname", data = "<data>")]
#[allow(private_interfaces)]
pub fn r_jellyfin_users_authenticatebyname(
diff --git a/server/src/routes/mod.rs b/server/src/routes/mod.rs
index dae4909..371f088 100644
--- a/server/src/routes/mod.rs
+++ b/server/src/routes/mod.rs
@@ -20,8 +20,9 @@ use compat::{
r_jellyfin_sessions_playing_progress, r_jellyfin_shows_nextup, r_jellyfin_socket,
r_jellyfin_system_endpoint, r_jellyfin_system_info, r_jellyfin_system_info_public,
r_jellyfin_system_info_public_case, r_jellyfin_users_authenticatebyname,
- r_jellyfin_users_id, r_jellyfin_users_items, r_jellyfin_users_items_item,
- r_jellyfin_users_public, r_jellyfin_users_views, r_jellyfin_video_stream,
+ r_jellyfin_users_authenticatebyname_case, r_jellyfin_users_id, r_jellyfin_users_items,
+ r_jellyfin_users_items_item, r_jellyfin_users_public, r_jellyfin_users_views,
+ r_jellyfin_video_stream,
},
youtube::{r_youtube_channel, r_youtube_embed, r_youtube_watch},
};
@@ -200,6 +201,7 @@ pub fn build_rocket(database: Database, federation: Federation) -> Rocket<Build>
r_jellyfin_system_info_public,
r_jellyfin_system_info,
r_jellyfin_users_authenticatebyname,
+ r_jellyfin_users_authenticatebyname_case,
r_jellyfin_users_id,
r_jellyfin_users_items_item,
r_jellyfin_users_items,
diff --git a/tool/src/add.rs b/tool/src/add.rs
index 06487c9..a0a3951 100644
--- a/tool/src/add.rs
+++ b/tool/src/add.rs
@@ -72,6 +72,7 @@ pub async fn add(action: Action) -> anyhow::Result<()> {
TraktKind::Movie => "movie",
TraktKind::Show => "show",
TraktKind::Season => "season",
+ TraktKind::Episode => "episode",
_ => unreachable!(),
},
trakt_object.ids.trakt.unwrap()