commit d7ca0ac94f9ac467f54f4e3d7967fbd5e6955f21
parent 14048cf9b242f9e3d33aad8e3cd1300c8a563bee
Author: MTRNord <mtrnord1@gmail.com>
Date: Thu, 7 Jan 2021 19:40:14 +0100
refactor: Bump sdk and tokio
Diffstat:
8 files changed, 37 insertions(+), 27 deletions(-)
diff --git a/README.md b/README.md
@@ -1,3 +1,17 @@
# MRSBFH - Matrix-Rust-SDK-Bot-Framework-Helper
-A toolkit for writing commandbots more efficent in rust for matrix.
+A toolkit for writing commandbots more efficient in rust for matrix.
+
+## How to use
+
+To use it you need to add mrsbfh ust like any regular create:
+
+```
+mrsbfh = {git = "https://github.com/MTRNord/mrsbfh"}
+```
+
+After that there are the possible helpers available that are further described in the docs.
+
+As there was no release yet, you can open them using `cargo doc -p mrsbfh --open` in any crate depending on it or after cloning the repository.
+
+For a minimal example of the bot checkout the crate under the `example-bot` folder which is a minimal version of what is needed.
diff --git a/example-bot/Cargo.toml b/example-bot/Cargo.toml
@@ -6,12 +6,16 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+[dependencies.matrix-sdk]
+git = "https://github.com/matrix-org/matrix-rust-sdk.git"
+rev = "b311a31c9ef942c357ceb16f07586246655191ce"
+
[dependencies]
mrsbfh = {path = "../mrsbfh"}
serde = "1.0"
tracing = "0.1"
tracing-subscriber = "0.2"
tracing-futures = "0.2.4"
-tokio = { version = "0.2", features = ["full"] }
+tokio = { version = "1.0.1", features = ["full"] }
clap = "3.0.0-beta.2"
async-trait = "0.1.41"
\ No newline at end of file
diff --git a/example-bot/src/commands/hello_world.rs b/example-bot/src/commands/hello_world.rs
@@ -1,11 +1,11 @@
+use matrix_sdk::events::{room::message::MessageEventContent, AnyMessageEventContent};
use mrsbfh::commands::command;
use mrsbfh::config::Config;
-use mrsbfh::matrix_sdk::events::{room::message::MessageEventContent, AnyMessageEventContent};
use std::error::Error;
#[command(help = "`!hello_world` - Prints \"hello world\".")]
pub async fn hello_world<C: Config>(
- mut tx: mrsbfh::Sender,
+ tx: mrsbfh::Sender,
_config: C,
_sender: String,
mut _args: Vec<&str>,
diff --git a/example-bot/src/matrix/mod.rs b/example-bot/src/matrix/mod.rs
@@ -1,5 +1,5 @@
use crate::config::Config;
-use mrsbfh::matrix_sdk::{Client, ClientConfig, Session as SDKSession, SyncSettings};
+use matrix_sdk::{Client, ClientConfig, Session as SDKSession, SyncSettings};
use mrsbfh::url::Url;
use mrsbfh::utils::Session;
use std::convert::TryFrom;
@@ -30,8 +30,7 @@ pub async fn setup(config: Config<'_>) -> Result<Client, Box<dyn Error>> {
let session = SDKSession {
access_token: session.access_token,
device_id: session.device_id.into(),
- user_id: mrsbfh::matrix_sdk::identifiers::UserId::try_from(session.user_id.as_str())
- .unwrap(),
+ user_id: matrix_sdk::identifiers::UserId::try_from(session.user_id.as_str()).unwrap(),
};
if let Err(e) = client.restore_login(session).await {
diff --git a/example-bot/src/matrix/sync.rs b/example-bot/src/matrix/sync.rs
@@ -1,13 +1,13 @@
use crate::commands::match_command;
use crate::config::Config;
-use mrsbfh::matrix_sdk::{
+use matrix_sdk::async_trait;
+use matrix_sdk::{
events::{
room::member::MemberEventContent, room::message::MessageEventContent, StrippedStateEvent,
SyncMessageEvent,
},
Client, EventEmitter, SyncRoom,
};
-use mrsbfh::matrix_sdk_common_macros::async_trait;
use tokio::sync::mpsc;
use tracing::*;
diff --git a/mrsbfh-macros/src/lib.rs b/mrsbfh-macros/src/lib.rs
@@ -141,8 +141,8 @@ pub fn command_generate(args: TokenStream, input: TokenStream) -> TokenStream {
let owned_html = html.to_owned();
mrsbfh::tokio::spawn(async move {
- let content = mrsbfh::matrix_sdk::events::AnyMessageEventContent::RoomMessage(
- mrsbfh::matrix_sdk::events::room::message::MessageEventContent::notice_html(
+ let content = matrix_sdk::events::AnyMessageEventContent::RoomMessage(
+ matrix_sdk::events::room::message::MessageEventContent::notice_html(
HELP_MARKDOWN,
owned_html,
),
@@ -223,7 +223,7 @@ pub fn autojoin(_: TokenStream, input: TokenStream) -> TokenStream {
for item in items {
if let syn::ImplItem::Method(method) = item {
- if method.sig.ident.to_string() == "on_stripped_state_member" {
+ if method.sig.ident == "on_stripped_state_member" {
let original = method.block.clone();
let new_block = syn::parse_quote! {
{
@@ -234,7 +234,7 @@ pub fn autojoin(_: TokenStream, input: TokenStream) -> TokenStream {
warn!("Got invite that isn't for us");
return;
}
- if let mrsbfh::matrix_sdk::SyncRoom::Invited(room) = room {
+ if let matrix_sdk::SyncRoom::Invited(room) = room {
let room_id = {
let room = room.read().await;
room.room_id.clone()
@@ -254,7 +254,7 @@ pub fn autojoin(_: TokenStream, input: TokenStream) -> TokenStream {
room_id, err, delay
);
- tokio::time::delay_for(tokio::time::Duration::from_secs(delay)).await;
+ tokio::time::sleep(tokio::time::Duration::from_secs(delay)).await;
delay *= 2;
if delay > 3600 {
@@ -304,16 +304,16 @@ pub fn commands(_: TokenStream, input: TokenStream) -> TokenStream {
for item in items {
if let syn::ImplItem::Method(method) = item {
- if method.sig.ident.to_string() == "on_room_message" {
+ if method.sig.ident == "on_room_message" {
let original = method.block.clone();
let new_block = syn::parse_quote! {
{
#original
// Command matching logic
- if let mrsbfh::matrix_sdk::SyncRoom::Joined(room) = room {
- let msg_body = if let mrsbfh::matrix_sdk::events::SyncMessageEvent {
- content: mrsbfh::matrix_sdk::events::room::message::MessageEventContent::Text(mrsbfh::matrix_sdk::events::room::message::TextMessageEventContent { body: msg_body, .. }),
+ if let matrix_sdk::SyncRoom::Joined(room) = room {
+ let msg_body = if let matrix_sdk::events::SyncMessageEvent {
+ content: matrix_sdk::events::room::message::MessageEventContent::Text(matrix_sdk::events::room::message::TextMessageEventContent { body: msg_body, .. }),
..
} = event
{
diff --git a/mrsbfh/Cargo.toml b/mrsbfh/Cargo.toml
@@ -8,12 +8,7 @@ edition = "2018"
[dependencies.matrix-sdk]
git = "https://github.com/matrix-org/matrix-rust-sdk.git"
-#rev = "d4327d4cfcc0aa2dfb3d0c59cc55bc03634b5977"
-branch = "fix-signatures"
-[dependencies.matrix-sdk-common-macros]
-git = "https://github.com/matrix-org/matrix-rust-sdk.git"
-#rev = "d4327d4cfcc0aa2dfb3d0c59cc55bc03634b5977"
-branch = "fix-signatures"
+rev = "b311a31c9ef942c357ceb16f07586246655191ce"
[dependencies]
url = "2.1.1"
@@ -22,7 +17,7 @@ url = "2.1.1"
mrsbfh-macros = {path = "../mrsbfh-macros"}
const-concat = {git = "https://github.com/Vurich/const-concat", rev = "f836e77a4ecadf6a11994340fdcbbdadcdc4906d"}
-tokio = { version = "0.2", features = ["full"] }
+tokio = { version = "1.0.1", features = ["full"] }
tracing = "0.1"
serde = "1.0"
diff --git a/mrsbfh/src/lib.rs b/mrsbfh/src/lib.rs
@@ -5,8 +5,6 @@ pub mod utils;
pub type Sender = tokio::sync::mpsc::Sender<matrix_sdk::events::AnyMessageEventContent>;
pub use const_concat;
-pub use matrix_sdk;
-pub use matrix_sdk_common_macros;
pub use pulldown_cmark;
pub use serde_yaml;
pub use tokio;