mrsbfh.meta

Issues/PRs archive for MTRNord/mrsbfh
git clone git://archive.git.mtrnord.blog/MTRNord/mrsbfh.meta.git
Log | Files | Refs

2.diff (9871B)


      1 diff --git a/example-bot/Cargo.toml b/example-bot/Cargo.toml
      2 index 6fb9533..ffbc3df 100644
      3 --- a/example-bot/Cargo.toml
      4 +++ b/example-bot/Cargo.toml
      5 @@ -1,13 +1,14 @@
      6 +cargo-features = ["edition2021"]
      7  [package]
      8  name = "example-bot"
      9  version = "0.1.0"
     10  authors = ["MTRNord <mtrnord1@gmail.com>"]
     11 -edition = "2018"
     12 +edition = "2021"
     13  
     14  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
     15  
     16  [dependencies.matrix-sdk]
     17 -version = "0.2"
     18 +version = "0.3"
     19  
     20  [dependencies]
     21  mrsbfh = {path = "../mrsbfh"}
     22 @@ -15,8 +16,9 @@ serde = "1.0"
     23  tracing = "0.1"
     24  tracing-subscriber = "0.2"
     25  tracing-futures = "0.2.4"
     26 -tokio = { version = "0.2", features = ["full"] }
     27 -clap = "3.0.0-beta.2"
     28 +tokio = { version = "1", features = ["full"] }
     29 +clap = "=3.0.0-beta.2"
     30 +clap_derive = "=3.0.0-beta.2"
     31  async-trait = "0.1.41"
     32  thiserror = "1.0"
     33  regex = "1.4.3"
     34 diff --git a/example-bot/src/matrix/mod.rs b/example-bot/src/matrix/mod.rs
     35 index 4e2caa7..61c8e18 100644
     36 --- a/example-bot/src/matrix/mod.rs
     37 +++ b/example-bot/src/matrix/mod.rs
     38 @@ -51,7 +51,7 @@ pub async fn setup(config: Config<'_>) -> Result<Client, Box<dyn Error>> {
     39              Ok(login_response) => {
     40                  info!("Session: {:#?}", login_response);
     41                  let session = Session {
     42 -                    homeserver: client.homeserver().to_string(),
     43 +                    homeserver: client.homeserver().await.to_string(),
     44                      user_id: login_response.user_id.to_string(),
     45                      access_token: login_response.access_token,
     46                      device_id: login_response.device_id.into(),
     47 @@ -73,7 +73,7 @@ pub async fn start_sync(
     48      config: Config<'static>,
     49  ) -> Result<(), Box<dyn Error>> {
     50      client
     51 -        .add_event_emitter(Box::new(sync::Bot::new(client.clone(), config.clone())))
     52 +        .set_event_handler(Box::new(sync::Bot::new(client.clone(), config.clone())))
     53          .await;
     54  
     55      info!("Starting full Sync...");
     56 diff --git a/example-bot/src/matrix/sync.rs b/example-bot/src/matrix/sync.rs
     57 index 2ee388a..e10c999 100644
     58 --- a/example-bot/src/matrix/sync.rs
     59 +++ b/example-bot/src/matrix/sync.rs
     60 @@ -6,7 +6,7 @@ use matrix_sdk::{
     61          room::member::MemberEventContent, room::message::MessageEventContent, StrippedStateEvent,
     62          SyncMessageEvent,
     63      },
     64 -    Client, EventEmitter, SyncRoom,
     65 +    Client, EventHandler, room::Room,
     66  };
     67  use tokio::sync::mpsc;
     68  use tracing::*;
     69 @@ -29,14 +29,14 @@ impl Bot {
     70  #[mrsbfh::commands::commands]
     71  #[mrsbfh::utils::autojoin]
     72  #[async_trait]
     73 -impl EventEmitter for Bot {
     74 -    async fn on_room_message(&self, room: SyncRoom, event: &SyncMessageEvent<MessageEventContent>) {
     75 +impl EventHandler for Bot {
     76 +    async fn on_room_message(&self, room: Room, event: &SyncMessageEvent<MessageEventContent>) {
     77          println!("message example")
     78      }
     79  
     80      async fn on_stripped_state_member(
     81          &self,
     82 -        room: SyncRoom,
     83 +        room: Room,
     84          room_member: &StrippedStateEvent<MemberEventContent>,
     85          _: Option<MemberEventContent>,
     86      ) {
     87 diff --git a/mrsbfh-macros/Cargo.toml b/mrsbfh-macros/Cargo.toml
     88 index 2b94b30..cfd0e22 100644
     89 --- a/mrsbfh-macros/Cargo.toml
     90 +++ b/mrsbfh-macros/Cargo.toml
     91 @@ -1,8 +1,9 @@
     92 +cargo-features = ["edition2021"]
     93  [package]
     94  name = "mrsbfh-macros"
     95  version = "0.1.0"
     96  authors = ["MTRNord <mtrnord1@gmail.com>"]
     97 -edition = "2018"
     98 +edition = "2021"
     99  
    100  [lib]
    101  proc-macro = true
    102 diff --git a/mrsbfh-macros/src/lib.rs b/mrsbfh-macros/src/lib.rs
    103 index 58732b8..8597ff5 100644
    104 --- a/mrsbfh-macros/src/lib.rs
    105 +++ b/mrsbfh-macros/src/lib.rs
    106 @@ -103,10 +103,9 @@ pub fn command_generate(args: TokenStream, input: TokenStream) -> TokenStream {
    107      });
    108      let mut help_format_string = String::from("{}");
    109      input.variants.iter().for_each(|_| {
    110 -        help_format_string = format!("{}{}", help_format_string,"{}");
    111 +        help_format_string = format!("{}{}", help_format_string, "{}");
    112      });
    113  
    114 -
    115      let bot_name = match get_arg(
    116          input.span(),
    117          args.clone(),
    118 @@ -230,47 +229,41 @@ pub fn autojoin(_: TokenStream, input: TokenStream) -> TokenStream {
    119              if method.sig.ident == "on_stripped_state_member" {
    120                  let original = method.block.clone();
    121                  let new_block = syn::parse_quote! {
    122 -                    {
    123 -                        #original
    124 +                        {
    125 +                            #original
    126  
    127 -                        // Autojoin logic
    128 -                        if room_member.state_key != self.client.user_id().await.unwrap() {
    129 -                            warn!("Got invite that isn't for us");
    130 -                            return;
    131 -                        }
    132 -                        if let matrix_sdk::SyncRoom::Invited(room) = room {
    133 -                            let room_id = {
    134 -                                let room = room.read().await;
    135 -                                room.room_id.clone()
    136 -                            };
    137 -                            let client = self.client.clone();
    138 -
    139 -                            tokio::spawn(async move {
    140 -                                info!("Autojoining room {}", room_id);
    141 +                            // Autojoin logic
    142 +                            if room_member.state_key != self.client.user_id().await.unwrap() {
    143 +                                warn!("Got invite that isn't for us");
    144 +                                return;
    145 +                            }
    146 +                            if let matrix_sdk::room::Room::Invited(room) = room {
    147 +                                info!("Autojoining room {}", room.room_id());
    148                                  let mut delay = 2;
    149  
    150 -                                while let Err(err) = client.join_room_by_id(&room_id).await {
    151 +                                while let Err(err) = room.accept_invitation().await {
    152                                      // retry autojoin due to synapse sending invites, before the
    153                                      // invited user can join for more information see
    154                                      // https://github.com/matrix-org/synapse/issues/4345
    155                                      error!(
    156                                          "Failed to join room {} ({:?}), retrying in {}s",
    157 -                                        room_id, err, delay
    158 +                                        room.room_id(),
    159 +                                        err,
    160 +                                        delay
    161                                      );
    162  
    163 -                                    tokio::time::delay_for(tokio::time::Duration::from_secs(delay)).await;
    164 +                                    tokio::time::sleep(tokio::time::Duration::from_secs(delay)).await;
    165                                      delay *= 2;
    166  
    167                                      if delay > 3600 {
    168 -                                        error!("Can't join room {} ({:?})", room_id, err);
    169 +                                        error!("Can't join room {} ({:?})", room.room_id(), err);
    170                                          break;
    171                                      }
    172                                  }
    173 -                                info!("Successfully joined room {}", room_id);
    174 -                            });
    175 +                                info!("Successfully joined room {}", room.room_id());
    176 +                            }
    177                          }
    178 -                    }
    179 -                };
    180 +                    };
    181                  method.block = new_block;
    182              }
    183          }
    184 @@ -315,9 +308,12 @@ pub fn commands(_: TokenStream, input: TokenStream) -> TokenStream {
    185                          #original
    186  
    187                          // Command matching logic
    188 -                        if let matrix_sdk::SyncRoom::Joined(room) = room {
    189 +                        if let matrix_sdk::room::Room::Joined(room) = room {
    190                              let msg_body = if let matrix_sdk::events::SyncMessageEvent {
    191 -                                content: matrix_sdk::events::room::message::MessageEventContent::Text(matrix_sdk::events::room::message::TextMessageEventContent { body: msg_body, .. }),
    192 +                                content: matrix_sdk::events::room::message::MessageEventContent {
    193 +                                    msgtype: matrix_sdk::events::room::message::MessageType::Text(matrix_sdk::events::room::message::TextMessageEventContent { body: msg_body, .. }),
    194 +                                    ..
    195 +                                },
    196                                  ..
    197                              } = event
    198                              {
    199 @@ -332,7 +328,7 @@ pub fn commands(_: TokenStream, input: TokenStream) -> TokenStream {
    200                              let sender = event.sender.clone().to_string();
    201  
    202                              let (tx, mut rx) = mpsc::channel(100);
    203 -                            let room_id = room.read().await.clone().room_id;
    204 +                            let room_id = room.room_id();
    205  
    206                              let cloned_config = self.config.clone();
    207                              let cloned_client = self.client.clone();
    208 diff --git a/mrsbfh/Cargo.toml b/mrsbfh/Cargo.toml
    209 index 3ba15e5..f64056c 100644
    210 --- a/mrsbfh/Cargo.toml
    211 +++ b/mrsbfh/Cargo.toml
    212 @@ -1,13 +1,14 @@
    213 +cargo-features = ["edition2021"]
    214  [package]
    215  name = "mrsbfh"
    216  version = "0.1.0"
    217  authors = ["MTRNord <mtrnord1@gmail.com>"]
    218 -edition = "2018"
    219 +edition = "2021"
    220  
    221  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
    222  
    223  [dependencies.matrix-sdk]
    224 -version = "0.2"
    225 +version = "0.3"
    226  
    227  [dependencies]
    228  url = "2.2.1"
    229 @@ -17,7 +18,7 @@ thiserror = "1.0"
    230  # Command macros
    231  mrsbfh-macros = {path = "../mrsbfh-macros", optional = true}
    232  
    233 -tokio = { version = "0.2", features = ["full"] }
    234 +tokio = { version = "1", features = ["full"] }
    235  tracing = "0.1"
    236  
    237  serde = "1.0"