add: move database drivers to oiseau

This commit is contained in:
trisua 2025-06-08 14:15:42 -04:00
parent 40fce4bc77
commit 81036e3733
57 changed files with 638 additions and 1106 deletions

View file

@ -92,13 +92,20 @@ pub async fn proxy_request(
req.data.insert("format".to_string(), "json".to_string());
req.data.insert(
"api_key".to_string(),
data.0.connections.last_fm_key.as_ref().unwrap().to_string(),
data.0
.0
.connections
.last_fm_key
.as_ref()
.unwrap()
.to_string(),
);
req.data.insert(
"api_sig".to_string(),
LastFmConnection::signature(
req.data.clone(),
data.0
.0
.connections
.last_fm_secret
.as_ref()

View file

@ -17,7 +17,7 @@ pub async fn stripe_webhook(
) -> impl IntoResponse {
let data = &(data.read().await).0;
if data.0.stripe.is_none() {
if data.0.0.stripe.is_none() {
return Json(Error::MiscError("Disabled".to_string()).into());
}
@ -29,7 +29,7 @@ pub async fn stripe_webhook(
let req = match stripe::Webhook::construct_event(
&body,
sig.to_str().unwrap(),
&data.0.stripe.as_ref().unwrap().webhook_signing_secret,
&data.0.0.stripe.as_ref().unwrap().webhook_signing_secret,
) {
Ok(e) => e,
Err(e) => return Json(Error::MiscError(e.to_string()).into()),

View file

@ -58,7 +58,7 @@ pub async fn avatar_request(
return Err((
[("Content-Type", "image/svg+xml")],
Body::from(read_image(PathBufD::current().extend(&[
data.0.dirs.media.as_str(),
data.0.0.dirs.media.as_str(),
"images",
"default-avatar.svg",
]))),
@ -74,7 +74,7 @@ pub async fn avatar_request(
return Err((
[("Content-Type", "image/svg+xml")],
Body::from(read_image(PathBufD::current().extend(&[
data.0.dirs.media.as_str(),
data.0.0.dirs.media.as_str(),
"images",
"default-avatar.svg",
]))),
@ -83,7 +83,7 @@ pub async fn avatar_request(
};
let path = PathBufD::current().extend(&[
data.0.dirs.media.as_str(),
data.0.0.dirs.media.as_str(),
"avatars",
&format!(
"{}.{}",
@ -96,7 +96,7 @@ pub async fn avatar_request(
return Err((
[("Content-Type", "image/svg+xml")],
Body::from(read_image(PathBufD::current().extend(&[
data.0.dirs.media.as_str(),
data.0.0.dirs.media.as_str(),
"images",
"default-avatar.svg",
]))),
@ -126,7 +126,7 @@ pub async fn banner_request(
return Err((
[("Content-Type", "image/svg+xml")],
Body::from(read_image(PathBufD::current().extend(&[
data.0.dirs.media.as_str(),
data.0.0.dirs.media.as_str(),
"images",
"default-banner.svg",
]))),
@ -135,7 +135,7 @@ pub async fn banner_request(
};
let path = PathBufD::current().extend(&[
data.0.dirs.media.as_str(),
data.0.0.dirs.media.as_str(),
"banners",
&format!(
"{}.{}",
@ -148,7 +148,7 @@ pub async fn banner_request(
return Err((
[("Content-Type", "image/svg+xml")],
Body::from(read_image(PathBufD::current().extend(&[
data.0.dirs.media.as_str(),
data.0.0.dirs.media.as_str(),
"images",
"default-banner.svg",
]))),
@ -194,7 +194,7 @@ pub async fn upload_avatar_request(
// mime changed; delete old image
let path = pathd!(
"{}/avatars/{}.{}",
data.0.dirs.media,
data.0.0.dirs.media,
&auth_user.id,
auth_user.settings.avatar_mime.replace("image/", "")
);
@ -206,7 +206,7 @@ pub async fn upload_avatar_request(
let path = pathd!(
"{}/avatars/{}.{}",
data.0.dirs.media,
data.0.0.dirs.media,
&auth_user.id,
mime.replace("image/", "")
);
@ -292,7 +292,7 @@ pub async fn upload_banner_request(
// mime changed; delete old image
let path = pathd!(
"{}/banners/{}.{}",
data.0.dirs.media,
data.0.0.dirs.media,
&auth_user.id,
auth_user.settings.banner_mime.replace("image/", "")
);
@ -304,7 +304,7 @@ pub async fn upload_banner_request(
let path = pathd!(
"{}/banners/{}.{}",
data.0.dirs.media,
data.0.0.dirs.media,
&auth_user.id,
mime.replace("image/", "")
);

View file

@ -46,7 +46,7 @@ pub async fn register_request(
// get real ip
let real_ip = headers
.get(data.0.security.real_ip_header.to_owned())
.get(data.0.0.security.real_ip_header.to_owned())
.unwrap_or(&HeaderValue::from_static(""))
.to_str()
.unwrap_or("")
@ -62,7 +62,7 @@ pub async fn register_request(
}
// check captcha
let client = TurnstileClient::new(data.0.turnstile.secret_key.clone().into());
let client = TurnstileClient::new(data.0.0.turnstile.secret_key.clone().into());
let validated = match client
.siteverify(SiteVerifyRequest {
@ -126,7 +126,7 @@ pub async fn login_request(
// get real ip
let real_ip = headers
.get(data.0.security.real_ip_header.to_owned())
.get(data.0.0.security.real_ip_header.to_owned())
.unwrap_or(&HeaderValue::from_static(""))
.to_str()
.unwrap_or("")

View file

@ -516,7 +516,9 @@ pub async fn subscription_handler(
pub async fn handle_socket(socket: WebSocket, db: DataManager, user_id: String, stream_id: String) {
let (mut sink, mut stream) = socket.split();
let socket_id = tetratto_shared::hash::salt();
db.2.incr("atto.active_connections:users".to_string()).await;
db.0.1
.incr("atto.active_connections:users".to_string())
.await;
// get channel permissions
let channel = format!("{user_id}/{stream_id}");
@ -551,7 +553,7 @@ pub async fn handle_socket(socket: WebSocket, db: DataManager, user_id: String,
let heartbeat_c = heartbeat_uri.clone();
let mut redis_task = tokio::spawn(async move {
// forward messages from redis to the socket
let mut pubsub = dbc.2.client.get_async_pubsub().await.unwrap();
let mut pubsub = dbc.0.1.client.get_async_pubsub().await.unwrap();
pubsub.subscribe(channel_c).await.unwrap();
pubsub.subscribe(heartbeat_c).await.unwrap();
@ -581,7 +583,7 @@ pub async fn handle_socket(socket: WebSocket, db: DataManager, user_id: String,
}
});
let db2c = db.2.clone();
let db2c = db.0.1.clone();
let heartbeat_c = heartbeat_uri.clone();
let heartbeat_task = tokio::spawn(async move {
let mut con = db2c.get_con().await;
@ -608,7 +610,9 @@ pub async fn handle_socket(socket: WebSocket, db: DataManager, user_id: String,
}
heartbeat_task.abort(); // kill
db.2.decr("atto.active_connections:users".to_string()).await;
db.0.1
.decr("atto.active_connections:users".to_string())
.await;
tracing::info!("socket terminate");
}
@ -628,7 +632,7 @@ pub async fn post_to_socket_request(
return Json(Error::NotAllowed.into());
}
let mut con = data.2.get_con().await;
let mut con = data.0.1.get_con().await;
con.publish::<String, String, ()>(
format!("{user_id}/{id}"),
serde_json::to_string(&msg).unwrap(),