daydream

A small matrix web client written in rust
git clone git://archive.git.mtrnord.blog/daydream-mx/daydream.git
Log | Files | Refs | README | LICENSE

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 }