commit c7a2f067fa4e16ed54518317db2a3d7b2feb17f4
parent 9a449df236582d521eb6d79ce2abc708e8f038cb
Author: Marcel <mtrnord1@gmail.com>
Date: Fri, 3 Jul 2020 10:22:51 +0200
Use sender server as download server
Took 16 minutes
Diffstat:
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/main.rs b/src/main.rs
@@ -10,6 +10,8 @@ use matrix_sdk::{
self,
events::collections::all::RoomEvent,
events::room::{
+ ThumbnailInfo,
+ ImageInfo,
member::MemberEventContent,
message::{MessageEvent, MessageEventContent, NoticeMessageEventContent, RelatesTo},
},
@@ -90,7 +92,7 @@ impl CommandBot {
}
async fn handle_media(&self, mxc_url: String, raw_filename: String) -> String {
- let download_url = get_media_download_url(self.client.homeserver(), mxc_url);
+ let download_url = get_media_download_url(mxc_url);
let response = reqwest::get(&download_url).await.unwrap();
@@ -119,13 +121,14 @@ impl EventEmitter for CommandBot {
) {
if let SyncRoom::Invited(room) = room {
let room_id = room.read().await.room_id.clone();
- let resp = self.client.join_room_by_id(&room_id).await.unwrap();
+ self.client.join_room_by_id(&room_id).await.unwrap();
}
}
async fn on_room_message(&self, room: SyncRoom, event: &MessageEvent) {
if let SyncRoom::Joined(room) = room {
if let MessageEventContent::Text(text_event) = event.clone().content {
-
+ let test = serde_json::from_str::<ImageInfo>(r#"{"mimetype":"image/jpeg", "w":4998, "h":3333,"size":6467842}"#);
+ println!("{:?}", test);
let msg_body = text_event.body.clone();
// TODO fix e2ee relates_to with something like https://github.com/matrix-org/matrix-rust-sdk/blob/master/matrix_sdk_base/src/client.rs#L93 inside of receive_joined_timeline_event
@@ -165,6 +168,8 @@ impl EventEmitter for CommandBot {
})
.await;
+ println!("event: {:?}", resp);
+
match resp {
Ok(mut resp) => {
println!("{:?}", resp.event.deserialize());
diff --git a/src/utils.rs b/src/utils.rs
@@ -1,14 +1,16 @@
use serde::{Deserialize, Serialize};
use url::Url;
-pub fn get_media_download_url(homeserver: &Url, mxc_url: String) -> String {
+pub fn get_media_download_url(mxc_url: String) -> String {
let url_parts_raw = mxc_url.replace("mxc://", "");
let url_parts: Vec<&str> = url_parts_raw.split('/').collect();
let server_name = (*url_parts.first().unwrap()).to_string();
let media_id = (*url_parts.last().unwrap()).to_string();
let new_path = format!("_matrix/media/r0/download/{}/{}", server_name, media_id,);
- let mut new_url = homeserver.clone();
+ // FIX this madness
+ let mut new_url = Url::parse(format!("https://matrix.{}", server_name).as_str()).unwrap();
new_url.set_path(new_path.as_str());
+ println!("{}", new_url);
new_url.to_string()
}