-
Notifications
You must be signed in to change notification settings - Fork 246
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Application Service support tracking #228
Comments
Additional to the membership Bug is that invites only go to the
matrix-rust-sdk/matrix_sdk/src/event_handler/mod.rs Lines 121 to 125 in 3c72304
matrix-rust-sdk/matrix_sdk/src/client.rs Line 651 in ee40d91
This doesnt seem to be an easy fix as currently a) all appservice Events come via the join Part (due to ruma) and b) the Event handler Part where this gets relayed is struct typed. So the joined room struct cant be passed along to make this work from the join Part. Using the following code I wasnt getting any member events whatsoever. async fn on_room_member(&self, room: Room, event: &SyncStateEvent<MemberEventContent>) {
if !&event.state_key.contains("@server_stats:nordgedanken.dev") {
return;
}
info!("Got invite");
if let MembershipState::Invite = event.content.membership {
let client = self.appservice.client(Some("server_stats")).await;
client.join_room_by_id(room.room_id()).await.unwrap();
VoyagerBot::set_direct(client, room.clone(), event).await;
info!("Successfully joined room {}", room.room_id());
};
} I am running on MTRNord@bf59b65 currently |
@MTRNord Also, about |
I think item 4 in "Nice to have" can be checked since the linked PR has been merged |
@agraven Clarified that item's description. The linked PR was only about introducing it on the |
I'm closing this issue since #2509 has removed |
The matrix-sdk-appservice crate should be considered experimental until this issue gets closed
Docs: https://matrix-org.github.io/matrix-rust-sdk/matrix_sdk_appservice/index.html
Todo
Bugs
'@uwu:owo\.tld'
)/_matrix
as root (appservice: Support appservice located on sub path #304)register
not properly working (appservice: Add warp support #254)/
for the fallback routes breaks consumer routes that are added after addingactix_service
(appservice: Add warp support #254)if let Ok(client) = self.appservice.client(None).await {};
in EventHandler doesn't seem to work (appservice: Add warp support #254)Hard
Blocked by waiting for the implementation work around MSC3202. There are workarounds but the added complexity just isn't worth.Ready to be picked up: MSC3202: Encrypted appservices matrix-spec-proposals#3202 (comment)Medium
Appservice::client()
(appservice: Add client_with_config singleton #249)ClientConfig
(appservice: Add client_with_config singleton #249)warp
support (appservice: Add warp support #254)[patch.crates-io] warp = { version = "0.3", git = "https://github.com/johannescpk/warp", rev = "4ead0f", default-features = false, features = ["multipart", "websocket"] }
?
instead ofunwrap
Easy
re-export andusage of ruma appservice api instead of hidden/inlined re-export (related: The SDK should use reexported types directly #152)ruma
from a consumer doesn't completely work since it breaks theEventContent
macroversion
, blocked behind new warp release (after 0.3.1)virtual_users
returning the dashmap.Client
serde_yaml
dependency from matrix-sdk cratetry_into_http_request_with_identy_assertion
->try_into_http_request_with_identity_assertion
:Dclient_with_localpart
toclient_with_identity_assertion
(appservice: Refactor API #231)get_host_and_port_from_registration
intoAppserviceRegistration::get_host_and_port
(appservice: Refactor API #231)InnerAppservice
forArc
-purposes, or singleArc
s for member fields (from feat: appservice #204 (comment))Refactoring
SyncStateEvent::into_full_event
instead ofvalue_with_room_id
http::Request
instead (see appservice: Add warp support #254 (comment))Appservice
toAppService
(appservice: Rename Appservice to AppService #272)localpart
-unwrap inAppservice::client
andAppservice::client_with_config
should be deduplicated and re-use get_cached_client instead, but was hitting some Send + Sync roadblockappservice
in the actix examples probably wants a mutex instead of cloning, or maybe allow&mut self
event handler methodslocalpart
inclient_with_config()
a non-Option, since the main appservice user config can't get overwritten anywayOptional / Nice to have
Constant effort
Other Application Service Implementations
(todo: feature matrix table?)
Bridge projects
Related projects
The text was updated successfully, but these errors were encountered: