Skip to content
This repository was archived by the owner on Apr 12, 2025. It is now read-only.

Commit 286225d

Browse files
committed
fix: resolve local media path at transcode level
1 parent fc64bbe commit 286225d

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/routes.rs

+22-1
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ pub fn route() -> Router {
198198
.push(
199199
Router::with_path("/photo/<colon:colon>/transcode")
200200
.hoop(fix_photo_transcode_request)
201-
// .hoop(debug)
201+
.hoop(resolve_local_media_path)
202202
.goal(proxy_request),
203203
)
204204
.push(Router::with_path("<**rest>").goal(proxy_request));
@@ -305,6 +305,27 @@ async fn fix_photo_transcode_request(
305305
}
306306
}
307307

308+
// resolve a local media path to full url
309+
#[handler]
310+
async fn resolve_local_media_path(
311+
req: &mut Request,
312+
_depot: &mut Depot,
313+
res: &mut Response,
314+
) {
315+
let params: PlexContext = req.extract().await.unwrap();
316+
let url = req.query::<String>("url");
317+
if url.is_some() && url.clone().unwrap().contains("/replex/image/hero")
318+
{
319+
let parts: Vec<String> = url.unwrap().split("/").map(|x| x.to_string()).collect();
320+
let plex_client = PlexClient::from_request(req, params.clone());
321+
let uuid = parts[7].clone();
322+
let rurl = plex_client.get_hero_art(uuid).await;
323+
if rurl.is_some() {
324+
add_query_param_salvo(req, "url".to_string(), rurl.unwrap());
325+
}
326+
}
327+
}
328+
308329
#[handler]
309330
async fn disable_related_query(
310331
req: &mut Request,

0 commit comments

Comments
 (0)