Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![feature(async_await)]
- use std::{convert::TryFrom, env, process::exit};
- use ruma_client::{self, api::r0, Client};
- use ruma_events::{
- room::message::{MessageEventContent, MessageType, TextMessageEventContent},
- EventType,
- };
- use ruma_identifiers::RoomAliasId;
- use url::Url;
- async fn bot(
- username: String,
- password: String,
- homeserver_url: Url,
- room: String,
- ) {
- let client = Client::https(homeserver_url, None).unwrap();
- client.log_in(username, password, None).await;
- let response = r0::alias::get_alias::call(client, r0::alias::get_alias::Request {
- room_alias: RoomAliasId::try_from(&*room).unwrap(),
- }).await;
- let room_id = response.room_id;
- r0::membership::join_room_by_id::call(client.clone(), r0::membership::join_room_by_id::Request {
- room_id: room_id.clone(),
- third_party_signed: None, }).await;
- r0::send::send_message_event::call(client, r0::send::send_message_event::Request {
- room_id: room_id,
- event_type: EventType::RoomMessage,
- txn_id: "1".to_owned(),
- data: MessageEventContent::Text(TextMessageEventContent {
- body: "Hello World!".to_owned(),
- msgtype: MessageType::Text,
- }),
- })
- }
- fn main() {
- tokio::run(
- bot(
- "<snip>".to_owned(),
- "<snip>".to_owned(),
- "https://matrix.org".parse().unwrap(),
- "<snip>".to_owned(),
- )
- .map_err(|e| {
- dbg!(e);
- }),
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement