add: move database drivers to oiseau
This commit is contained in:
parent
40fce4bc77
commit
81036e3733
57 changed files with 638 additions and 1106 deletions
|
@ -120,7 +120,7 @@ macro_rules! get_lang {
|
|||
macro_rules! user_banned {
|
||||
($user:expr, $other_user:ident, $data:ident, $jar:ident) => {
|
||||
let lang = get_lang!($jar, $data.0);
|
||||
let mut context = initial_context(&$data.0.0, lang, &$user).await;
|
||||
let mut context = initial_context(&$data.0.0.0, lang, &$user).await;
|
||||
context.insert("profile", &$other_user);
|
||||
|
||||
return Ok(Html(
|
||||
|
@ -168,7 +168,7 @@ macro_rules! check_user_blocked_or_private {
|
|||
&& !ua.permissions.check(FinePermission::MANAGE_USERS)
|
||||
{
|
||||
let lang = get_lang!($jar, $data.0);
|
||||
let mut context = initial_context(&$data.0.0, lang, &$user).await;
|
||||
let mut context = initial_context(&$data.0.0.0, lang, &$user).await;
|
||||
|
||||
context.insert("profile", &$other_user);
|
||||
context.insert(
|
||||
|
@ -198,7 +198,7 @@ macro_rules! check_user_blocked_or_private {
|
|||
.is_err()
|
||||
{
|
||||
let lang = get_lang!($jar, $data.0);
|
||||
let mut context = initial_context(&$data.0.0, lang, &$user).await;
|
||||
let mut context = initial_context(&$data.0.0.0, lang, &$user).await;
|
||||
|
||||
context.insert("profile", &$other_user);
|
||||
context.insert(
|
||||
|
@ -232,7 +232,7 @@ macro_rules! check_user_blocked_or_private {
|
|||
}
|
||||
} else {
|
||||
let lang = get_lang!($jar, $data.0);
|
||||
let mut context = initial_context(&$data.0.0, lang, &$user).await;
|
||||
let mut context = initial_context(&$data.0.0.0, lang, &$user).await;
|
||||
|
||||
context.insert("profile", &$other_user);
|
||||
context.insert("follow_requested", &false);
|
||||
|
|
|
@ -194,7 +194,8 @@ media_theme_pref();
|
|||
.replaceAll(" months ago", "m")
|
||||
.replaceAll(" month ago", "m")
|
||||
.replaceAll(" years ago", "y")
|
||||
.replaceAll(" year ago", "y") || "";
|
||||
.replaceAll(" year ago", "y")
|
||||
.replaceAll("Yesterday", "1d") || "";
|
||||
|
||||
element.innerText =
|
||||
pretty === undefined ? then.toLocaleDateString() : pretty;
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()),
|
||||
|
|
|
@ -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/", "")
|
||||
);
|
||||
|
|
|
@ -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("")
|
||||
|
|
|
@ -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(),
|
||||
|
|
|
@ -190,7 +190,7 @@ pub async fn handle_socket(socket: WebSocket, db: DataManager, community_id: Str
|
|||
let channel_id_c = channel_id.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(user.id).await.unwrap();
|
||||
pubsub.subscribe(channel_id_c).await.unwrap();
|
||||
|
@ -239,7 +239,7 @@ pub async fn handle_socket(socket: WebSocket, db: DataManager, community_id: Str
|
|||
}
|
||||
});
|
||||
|
||||
let db2c = db.2.clone();
|
||||
let db2c = db.0.1.clone();
|
||||
let heartbeat_task = tokio::spawn(async move {
|
||||
let mut con = db2c.get_con().await;
|
||||
let mut heartbeat = tokio::time::interval(Duration::from_secs(10));
|
||||
|
@ -259,7 +259,9 @@ pub async fn handle_socket(socket: WebSocket, db: DataManager, community_id: Str
|
|||
}
|
||||
});
|
||||
|
||||
db.2.incr("atto.active_connections:chats".to_string()).await;
|
||||
db.0.1
|
||||
.incr("atto.active_connections:chats".to_string())
|
||||
.await;
|
||||
|
||||
tokio::select! {
|
||||
_ = (&mut recv_task) => redis_task.abort(),
|
||||
|
@ -267,7 +269,9 @@ pub async fn handle_socket(socket: WebSocket, db: DataManager, community_id: Str
|
|||
}
|
||||
|
||||
heartbeat_task.abort(); // kill
|
||||
db.2.decr("atto.active_connections:chats".to_string()).await;
|
||||
db.0.1
|
||||
.decr("atto.active_connections:chats".to_string())
|
||||
.await;
|
||||
tracing::info!("socket terminate");
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ pub async fn get_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",
|
||||
]))),
|
||||
|
@ -47,7 +47,7 @@ pub async fn get_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",
|
||||
]))),
|
||||
|
@ -59,13 +59,13 @@ pub async fn get_request(
|
|||
.get_upload_by_id(emoji.0.unwrap().upload_id)
|
||||
.await
|
||||
.unwrap();
|
||||
let path = upload.path(&data.0);
|
||||
let path = upload.path(&data.0.0);
|
||||
|
||||
if !exists(&path).unwrap() {
|
||||
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",
|
||||
]))),
|
||||
|
@ -140,12 +140,12 @@ pub async fn create_request(
|
|||
{
|
||||
Ok(_) => {
|
||||
if is_animated {
|
||||
if let Err(e) = upload.write(&data.0, &img.0) {
|
||||
if let Err(e) = upload.write(&data.0.0, &img.0) {
|
||||
return Json(Error::MiscError(e.to_string()).into());
|
||||
}
|
||||
} else {
|
||||
if let Err(e) =
|
||||
save_webp_buffer(&upload.path(&data.0).to_string(), img.0.to_vec(), None)
|
||||
save_webp_buffer(&upload.path(&data.0.0).to_string(), img.0.to_vec(), None)
|
||||
{
|
||||
return Json(Error::MiscError(e.to_string()).into());
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ pub async fn create_request(
|
|||
})
|
||||
}
|
||||
Err(e) => {
|
||||
if let Err(e) = upload.remove(&data.0) {
|
||||
if let Err(e) = upload.remove(&data.0.0) {
|
||||
return Json(e.into());
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ pub async fn avatar_request(
|
|||
return (
|
||||
[("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",
|
||||
]))),
|
||||
|
@ -34,7 +34,7 @@ pub async fn avatar_request(
|
|||
};
|
||||
|
||||
let path = PathBufD::current().extend(&[
|
||||
data.0.dirs.media.as_str(),
|
||||
data.0.0.dirs.media.as_str(),
|
||||
"community_avatars",
|
||||
&format!("{}.avif", &community.id),
|
||||
]);
|
||||
|
@ -43,7 +43,7 @@ pub async fn avatar_request(
|
|||
return (
|
||||
[("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",
|
||||
]))),
|
||||
|
@ -70,7 +70,7 @@ pub async fn banner_request(
|
|||
return (
|
||||
[("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",
|
||||
]))),
|
||||
|
@ -79,7 +79,7 @@ pub async fn banner_request(
|
|||
};
|
||||
|
||||
let path = PathBufD::current().extend(&[
|
||||
data.0.dirs.media.as_str(),
|
||||
data.0.0.dirs.media.as_str(),
|
||||
"community_banners",
|
||||
&format!("{}.avif", &community.id),
|
||||
]);
|
||||
|
@ -88,7 +88,7 @@ pub async fn banner_request(
|
|||
return (
|
||||
[("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",
|
||||
]))),
|
||||
|
@ -130,7 +130,7 @@ pub async fn upload_avatar_request(
|
|||
|
||||
let path = pathd!(
|
||||
"{}/community_avatars/{}.avif",
|
||||
data.0.dirs.media,
|
||||
data.0.0.dirs.media,
|
||||
&community.id
|
||||
);
|
||||
|
||||
|
@ -185,7 +185,7 @@ pub async fn upload_banner_request(
|
|||
|
||||
let path = pathd!(
|
||||
"{}/community_banners/{}.avif",
|
||||
data.0.dirs.media,
|
||||
data.0.0.dirs.media,
|
||||
&community.id
|
||||
);
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ pub async fn create_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("")
|
||||
|
@ -159,7 +159,7 @@ pub async fn create_request(
|
|||
};
|
||||
|
||||
if let Err(e) =
|
||||
save_webp_buffer(&upload.path(&data.0).to_string(), image.to_vec(), None)
|
||||
save_webp_buffer(&upload.path(&data.0.0).to_string(), image.to_vec(), None)
|
||||
{
|
||||
return Json(Error::MiscError(e.to_string()).into());
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ pub async fn create_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("")
|
||||
|
|
|
@ -13,13 +13,13 @@ pub async fn get_request(
|
|||
let data = &(data.read().await).0;
|
||||
|
||||
let upload = data.get_upload_by_id(id).await.unwrap();
|
||||
let path = upload.path(&data.0);
|
||||
let path = upload.path(&data.0.0);
|
||||
|
||||
if !exists(&path).unwrap() {
|
||||
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",
|
||||
]))),
|
||||
|
|
|
@ -22,7 +22,7 @@ pub async fn proxy_request(
|
|||
) -> impl IntoResponse {
|
||||
let data = &(data.read().await);
|
||||
let http = &data.2;
|
||||
let data = &data.0;
|
||||
let data = &data.0.0;
|
||||
|
||||
let image_url = &props.url;
|
||||
|
||||
|
@ -148,7 +148,7 @@ pub async fn ip_test_request(
|
|||
) -> impl IntoResponse {
|
||||
let data = &(data.read().await).0;
|
||||
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("")
|
||||
|
|
|
@ -19,7 +19,7 @@ pub async fn login_request(jar: CookieJar, Extension(data): Extension<State>) ->
|
|||
// }
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let context = initial_context(&data.0.0, lang, &user).await;
|
||||
let context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
Html(data.1.render("auth/login.html", &context).unwrap())
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ pub async fn register_request(
|
|||
// }
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let context = initial_context(&data.0.0, lang, &user).await;
|
||||
let context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
Html(data.1.render("auth/register.html", &context).unwrap())
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ pub async fn connection_callback_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("connection_type", &service);
|
||||
Html(data.1.render("auth/connection.html", &context).unwrap())
|
||||
|
|
|
@ -102,7 +102,7 @@ pub async fn app_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user.clone())).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user.clone())).await;
|
||||
|
||||
context.insert("selected_community", &selected_community);
|
||||
context.insert("selected_channel", &selected_channel);
|
||||
|
@ -208,7 +208,7 @@ pub async fn stream_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("messages", &messages);
|
||||
context.insert("message", &message);
|
||||
|
@ -269,7 +269,7 @@ pub async fn message_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("can_manage_messages", &can_manage_messages);
|
||||
context.insert("message", &message);
|
||||
|
@ -338,7 +338,7 @@ pub async fn channels_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("channels", &channels);
|
||||
context.insert("page", &props.page);
|
||||
|
|
|
@ -188,7 +188,7 @@ pub async fn list_request(jar: CookieJar, Extension(data): Extension<State>) ->
|
|||
}
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("list", &communities);
|
||||
context.insert("popular_list", &popular_list);
|
||||
|
@ -225,7 +225,7 @@ pub async fn search_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("list", &communities);
|
||||
context.insert("page", &req.page);
|
||||
|
@ -270,7 +270,7 @@ pub async fn create_post_request(
|
|||
|
||||
let mut communities: Vec<Community> = Vec::new();
|
||||
for membership in memberships {
|
||||
if membership.community == data.0.0.town_square {
|
||||
if membership.community == data.0.0.0.town_square {
|
||||
// we already pulled the town square
|
||||
continue;
|
||||
}
|
||||
|
@ -319,7 +319,7 @@ pub async fn create_post_request(
|
|||
|
||||
// ...
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("draft", &draft);
|
||||
context.insert("drafts", &drafts);
|
||||
|
@ -416,7 +416,7 @@ pub async fn feed_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
let (
|
||||
is_owner,
|
||||
|
@ -506,7 +506,7 @@ pub async fn questions_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
let (
|
||||
is_owner,
|
||||
|
@ -600,7 +600,7 @@ pub async fn settings_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("community", &community);
|
||||
|
||||
|
@ -745,7 +745,7 @@ pub async fn post_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
let (
|
||||
is_owner,
|
||||
|
@ -873,7 +873,7 @@ pub async fn reposts_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
let (
|
||||
is_owner,
|
||||
|
@ -1018,7 +1018,7 @@ pub async fn likes_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
let (
|
||||
is_owner,
|
||||
|
@ -1115,7 +1115,7 @@ pub async fn members_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
let (
|
||||
is_owner,
|
||||
|
@ -1212,7 +1212,7 @@ pub async fn question_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
let (
|
||||
is_owner,
|
||||
|
|
|
@ -53,7 +53,7 @@ pub async fn index_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &None).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &None).await;
|
||||
|
||||
context.insert("list", &list);
|
||||
context.insert("page", &req.page);
|
||||
|
@ -81,7 +81,7 @@ pub async fn index_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("list", &list);
|
||||
context.insert("page", &req.page);
|
||||
|
@ -117,7 +117,7 @@ pub async fn popular_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
context.insert("list", &list);
|
||||
context.insert("page", &req.page);
|
||||
|
@ -159,7 +159,7 @@ pub async fn following_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("list", &list);
|
||||
context.insert("page", &req.page);
|
||||
|
@ -197,7 +197,7 @@ pub async fn all_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
context.insert("list", &list);
|
||||
context.insert("page", &req.page);
|
||||
|
@ -233,7 +233,7 @@ pub async fn index_questions_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("list", &list);
|
||||
context.insert("page", &req.page);
|
||||
|
@ -273,7 +273,7 @@ pub async fn popular_questions_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("list", &list);
|
||||
context.insert("page", &req.page);
|
||||
|
@ -315,7 +315,7 @@ pub async fn following_questions_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("list", &list);
|
||||
context.insert("page", &req.page);
|
||||
|
@ -346,7 +346,7 @@ pub async fn all_questions_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
context.insert("list", &list);
|
||||
context.insert("page", &req.page);
|
||||
|
@ -400,7 +400,7 @@ pub async fn notifications_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("page", &props.page);
|
||||
context.insert("profile", &profile);
|
||||
|
@ -490,7 +490,7 @@ pub async fn requests_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("page", &props.page);
|
||||
context.insert("profile", &profile);
|
||||
|
@ -516,7 +516,7 @@ pub async fn markdown_document_request(
|
|||
));
|
||||
}
|
||||
|
||||
let path = PathBufD::current().extend(&[&data.0.0.dirs.docs, &name]);
|
||||
let path = PathBufD::current().extend(&[&data.0.0.0.dirs.docs, &name]);
|
||||
let file = match read_to_string(&path) {
|
||||
Ok(f) => f,
|
||||
Err(e) => {
|
||||
|
@ -527,7 +527,7 @@ pub async fn markdown_document_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
context.insert("file", &file);
|
||||
context.insert("file_name", &name);
|
||||
|
||||
|
@ -616,7 +616,7 @@ pub async fn search_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("list", &list);
|
||||
context.insert("profile", &profile);
|
||||
|
|
|
@ -123,7 +123,7 @@ pub async fn render_error(
|
|||
user: &Option<User>,
|
||||
) -> String {
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, user).await;
|
||||
context.insert("error_text", &e.to_string());
|
||||
data.1.render("misc/error.html", &context).unwrap()
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ pub async fn audit_log_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
context.insert("items", &items);
|
||||
context.insert("page", &req.page);
|
||||
|
||||
|
@ -76,7 +76,7 @@ pub async fn reports_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
context.insert("items", &items);
|
||||
context.insert("page", &req.page);
|
||||
|
||||
|
@ -107,7 +107,7 @@ pub async fn file_report_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
context.insert("asset", &req.asset);
|
||||
context.insert("asset_type", &req.asset_type);
|
||||
|
||||
|
@ -145,7 +145,7 @@ pub async fn ip_bans_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
context.insert("items", &items);
|
||||
context.insert("page", &req.page);
|
||||
|
||||
|
@ -195,7 +195,7 @@ pub async fn manage_profile_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("profile", &profile);
|
||||
context.insert("associations", &associations);
|
||||
|
@ -242,7 +242,7 @@ pub async fn manage_profile_warnings_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("profile", &profile);
|
||||
context.insert("items", &list);
|
||||
|
@ -271,13 +271,14 @@ pub async fn stats_request(jar: CookieJar, Extension(data): Extension<State>) ->
|
|||
}
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert(
|
||||
"active_users_chats",
|
||||
&data
|
||||
.0
|
||||
.2
|
||||
.0
|
||||
.1
|
||||
.get("atto.active_connections:chats".to_string())
|
||||
.await
|
||||
.unwrap_or("0".to_string())
|
||||
|
@ -288,7 +289,8 @@ pub async fn stats_request(jar: CookieJar, Extension(data): Extension<State>) ->
|
|||
"active_users",
|
||||
&data
|
||||
.0
|
||||
.2
|
||||
.0
|
||||
.1
|
||||
.get("atto.active_connections:users".to_string())
|
||||
.await
|
||||
.unwrap_or("0".to_string())
|
||||
|
|
|
@ -90,7 +90,7 @@ pub async fn settings_request(
|
|||
let tokens = profile.tokens.clone();
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("profile", &profile);
|
||||
context.insert("page", &req.page);
|
||||
|
@ -223,7 +223,7 @@ pub async fn posts_request(
|
|||
// check for warning
|
||||
if props.warning {
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
context.insert("profile", &other_user);
|
||||
context.insert("warning_hash", &hash(other_user.settings.warning.clone()));
|
||||
|
@ -311,7 +311,7 @@ pub async fn posts_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
let is_self = if let Some(ref ua) = user {
|
||||
ua.id == other_user.id
|
||||
|
@ -416,7 +416,7 @@ pub async fn replies_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
let is_self = if let Some(ref ua) = user {
|
||||
ua.id == other_user.id
|
||||
|
@ -521,7 +521,7 @@ pub async fn media_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
let is_self = if let Some(ref ua) = user {
|
||||
ua.id == other_user.id
|
||||
|
@ -628,7 +628,7 @@ pub async fn outbox_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user.clone())).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user.clone())).await;
|
||||
|
||||
let is_self = user.id == other_user.id;
|
||||
|
||||
|
@ -709,7 +709,7 @@ pub async fn following_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
let is_self = if let Some(ref ua) = user {
|
||||
ua.id == other_user.id
|
||||
|
@ -803,7 +803,7 @@ pub async fn followers_request(
|
|||
|
||||
// init context
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &user).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &user).await;
|
||||
|
||||
let is_self = if let Some(ref ua) = user {
|
||||
ua.id == other_user.id
|
||||
|
|
|
@ -26,7 +26,7 @@ pub async fn list_request(jar: CookieJar, Extension(data): Extension<State>) ->
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("list", &list);
|
||||
|
||||
|
@ -83,7 +83,7 @@ pub async fn posts_request(
|
|||
};
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("page", &req.page);
|
||||
context.insert("stack", &stack);
|
||||
|
@ -144,7 +144,7 @@ pub async fn manage_request(
|
|||
}
|
||||
|
||||
let lang = get_lang!(jar, data.0);
|
||||
let mut context = initial_context(&data.0.0, lang, &Some(user)).await;
|
||||
let mut context = initial_context(&data.0.0.0, lang, &Some(user)).await;
|
||||
|
||||
context.insert("stack", &stack);
|
||||
context.insert("users", &users);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue