types.rs (1092B)
1 use url::Url; 2 3 pub fn get_media_download_url(homeserver: &Url, mxc_url: &str) -> Url { 4 let url_parts_raw = mxc_url.replace("mxc://", ""); 5 let url_parts: Vec<&str> = url_parts_raw.split('/').collect(); 6 let server_name = (*url_parts.first().unwrap()).to_string(); 7 let media_id = (*url_parts.last().unwrap()).to_string(); 8 let new_path = format!( 9 "_matrix/media/r0/download/{}/{}/fix.jpg", 10 server_name, media_id, 11 ); 12 let mut new_url = homeserver.clone(); 13 new_url.set_path(new_path.as_str()); 14 new_url 15 } 16 17 pub fn get_video_media_download_url(homeserver: &Url, mxc_url: String) -> Url { 18 let url_parts_raw = mxc_url.replace("mxc://", ""); 19 let url_parts: Vec<&str> = url_parts_raw.split('/').collect(); 20 let server_name = (*url_parts.first().unwrap()).to_string(); 21 let media_id = (*url_parts.last().unwrap()).to_string(); 22 let new_path = format!( 23 "_matrix/media/r0/download/{}/{}/fix.mp4", 24 server_name, media_id, 25 ); 26 let mut new_url = homeserver.clone(); 27 new_url.set_path(new_path.as_str()); 28 new_url 29 }