From c6c562beba33131d6fdbc254035e02f4678dd3ea Mon Sep 17 00:00:00 2001 From: Daniel Roseman Date: Thu, 21 May 2020 19:47:05 +0100 Subject: [PATCH] Extract and use meeting password if provided. --- src/main.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index ab0cd43..b731c77 100644 --- a/src/main.rs +++ b/src/main.rs @@ -118,13 +118,21 @@ fn new_client() -> Client { fn extract_zoom_link(txt: String) -> Option { lazy_static! { - static ref RE: Regex = Regex::new(r"(https?://(.*?zoom\.us)/j/([0-9]+))").unwrap(); + static ref RE: Regex = Regex::new(r"(https?://(.*?zoom\.us)/j/([0-9]+)(?:\?pwd=(\w+))?)").unwrap(); } - let n = RE.captures(txt.as_str()).iter().next().map(|c| - format!("zoommtg://{}/join?action=join&confno={}", c.get(2).unwrap().as_str(), c.get(3).unwrap().as_str()) - ); + let n = RE.captures(txt.as_str()).iter().next().map(|c| { + let groups = (c.get(2), c.get(3), c.get(4)); + match groups { + (Some(domain), Some(mtg_id), Some(password)) => + format!("zoommtg://{}/join?action=join&confno={}&pwd={}", domain.as_str(), mtg_id.as_str(), password.as_str()), + (Some(domain), Some(mtg_id), None) => + format!("zoommtg://{}/join?action=join&confno={}", domain.as_str(), mtg_id.as_str()), + _ => format!(""), + } + + }); return n; }