Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. #![feature(async_await)]
  2.  
  3. use std::{convert::TryFrom, env, process::exit};
  4.  
  5. use ruma_client::{self, api::r0, Client};
  6. use ruma_events::{
  7. room::message::{MessageEventContent, MessageType, TextMessageEventContent},
  8. EventType,
  9. };
  10. use ruma_identifiers::RoomAliasId;
  11. use url::Url;
  12.  
  13. async fn bot(
  14. username: String,
  15. password: String,
  16. homeserver_url: Url,
  17. room: String,
  18. ) {
  19. let client = Client::https(homeserver_url, None).unwrap();
  20.  
  21. client.log_in(username, password, None).await;
  22. let response = r0::alias::get_alias::call(client, r0::alias::get_alias::Request {
  23. room_alias: RoomAliasId::try_from(&*room).unwrap(),
  24. }).await;
  25.  
  26. let room_id = response.room_id;
  27.  
  28. r0::membership::join_room_by_id::call(client.clone(), r0::membership::join_room_by_id::Request {
  29. room_id: room_id.clone(),
  30. third_party_signed: None, }).await;
  31. r0::send::send_message_event::call(client, r0::send::send_message_event::Request {
  32. room_id: room_id,
  33. event_type: EventType::RoomMessage,
  34. txn_id: "1".to_owned(),
  35. data: MessageEventContent::Text(TextMessageEventContent {
  36. body: "Hello World!".to_owned(),
  37. msgtype: MessageType::Text,
  38. }),
  39. })
  40. }
  41.  
  42. fn main() {
  43. tokio::run(
  44. bot(
  45. "<snip>".to_owned(),
  46. "<snip>".to_owned(),
  47. "https://matrix.org".parse().unwrap(),
  48. "<snip>".to_owned(),
  49. )
  50. .map_err(|e| {
  51. dbg!(e);
  52. }),
  53. );
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement