commit 61c4f35e80fa48035300e5509e5d4f9d4c194e1a
parent 69949e69ec0f6852b4f1f2b1927ca80539b71125
Author: Marcel <mtrnord1@gmail.com>
Date: Mon, 17 Feb 2020 19:02:41 +0100
Make password argument work
Took 7 minutes
Diffstat:
2 files changed, 43 insertions(+), 18 deletions(-)
diff --git a/src/config.rs b/src/config.rs
@@ -17,7 +17,6 @@ pub struct Homeserver {
pub password: Option<String>,
}
-
pub fn load_config(config_file: String) -> Result<Config, serde_yaml::Error> {
let f = File::open(config_file).expect("Unable to open config file");
let br = BufReader::new(f);
diff --git a/src/main.rs b/src/main.rs
@@ -3,36 +3,62 @@ use std::convert::TryFrom;
use clap::Clap;
use futures_util::future::join_all;
use futures_util::stream::TryStreamExt as _;
+use ruma_client::api::r0::membership::invite_user;
+use ruma_client::api::r0::membership::join_room_by_id;
+use ruma_client::api::r0::message::create_message_event;
+use ruma_client::api::r0::sync::sync_events::IncomingResponse;
+use ruma_client::identifiers::UserId;
use ruma_client::{
self,
events::{
- EventType,
room::message::{MessageEventContent, NoticeMessageEventContent},
+ EventType,
},
HttpsClient, Session,
};
-use ruma_client::api::r0::membership::invite_user;
-use ruma_client::api::r0::membership::join_room_by_id;
-use ruma_client::api::r0::message::create_message_event;
-use ruma_client::api::r0::sync::sync_events::IncomingResponse;
-use ruma_client::identifiers::UserId;
use url::Url;
+
use crate::config::{load_config, Config, Homeserver};
mod config;
-async fn do_stuff(
- config: &Config,
- server: &Homeserver,
-) -> Result<(), ruma_client::Error> {
- let session = Session {
- device_id: "Ruma Bot".to_string(),
- access_token: server.access_token.as_ref().expect("missing access_token").to_owned(),
- user_id: UserId::try_from(server.mxid.as_str()).unwrap(),
- };
+async fn do_stuff(config: &Config, server: &Homeserver) -> Result<(), ruma_client::Error> {
+ let session: Session;
+ let mut client: HttpsClient = HttpsClient::https(
+ Url::parse(server.address.as_str()).expect("unable to parse url"),
+ None,
+ );
+ if server.access_token.is_some() {
+ session = Session {
+ device_id: "Ruma Bot".to_string(),
+ access_token: server
+ .access_token
+ .as_ref()
+ .expect("missing access_token")
+ .to_owned(),
+ user_id: UserId::try_from(server.mxid.as_str()).unwrap(),
+ };
- let client = HttpsClient::https(Url::parse(server.address.as_str()).expect("unable to parse url"), Some(session));
- //client.log_in(username, password, None, None).await?;
+ client = HttpsClient::https(
+ Url::parse(server.address.as_str()).expect("unable to parse url"),
+ Some(session),
+ );
+ } else if server.password.is_some() {
+ client
+ .log_in(
+ server.mxid.clone(),
+ server
+ .password
+ .as_ref()
+ .expect("failed to read password")
+ .to_owned(),
+ None,
+ None,
+ )
+ .await?;
+ } else {
+ println!("Please provide either a password or an access_token!");
+ }
let mut sync_stream = Box::pin(client.sync(None, None, false));
let message = config.message.clone();