1
0
Fork 0
mirror of https://gitlab.com/famedly/conduit.git synced 2025-06-27 16:35:59 +00:00
This commit is contained in:
avdb13 2024-07-06 22:38:25 +02:00
parent 5e28b9158f
commit f6e9cadfae

View file

@ -1,10 +1,9 @@
mod data;
pub use data::{Data, SigningKeys};
use hmac::digest::typenum::Pow;
use ruma::{
serde::Base64, MilliSecondsSinceUnixEpoch, OwnedDeviceId, OwnedEventId, OwnedRoomAliasId,
OwnedRoomId, OwnedRoomOrAliasId, OwnedServerName, OwnedUserId, RoomAliasId, RoomId,
OwnedRoomId, OwnedRoomOrAliasId, OwnedServerName, OwnedUserId, RoomAliasId,
};
use crate::api::{client_server::get_alias_helper, server_server::DestinationResponse};
@ -25,7 +24,6 @@ use std::{
future::{self, Future},
iter,
net::{IpAddr, SocketAddr},
ops::Deref,
path::PathBuf,
str::FromStr,
sync::{
@ -511,29 +509,27 @@ impl Service {
pub async fn default_rooms(&self) -> Result<BTreeSet<OwnedRoomId>> {
let server_name = &self.config.server_name;
let fallback = || {
format!("#{s}:{server_name}")
.parse()
.map_err(|_| Error::bad_config("Invalid opaque identifier."))
};
let f = |s| match OwnedRoomOrAliasId::from_str(s).map(OwnedRoomId::try_from) {
let f = |s| async move {
match OwnedRoomOrAliasId::from_str(s).map(OwnedRoomId::try_from) {
Ok(Ok(room_id)) => room_id
.server_name()
.ok_or_else(|| Error::bad_config("Invalid room ID due to missing server name."))
.map(|_| room_id),
result => get_alias_helper(result.map(Result::unwrap_err).or_else(fallback)?)
.map(|_| room_id.clone()),
result => get_alias_helper(result.map(Result::unwrap_err).or_else(|_| {
format!("#{s}:{server_name}")
.parse()
.map_err(|_| Error::bad_config("Invalid opaque identifier."))
})?)
.await
.map(|response| response.room_id),
}
};
self.config
.default_rooms
.rooms
.iter()
.map(String::as_str)
.map(|s| f)
.collect::<Result<_>>()
let rooms = self.config.default_rooms.rooms.iter().map(String::as_str);
futures_util::future::try_join_all(rooms.map(f))
.await
.map(Vec::into_iter)
.map(BTreeSet::from_iter)
}
pub fn shutdown(&self) {