chore: make the code a bit more readable

This commit is contained in:
naskya 2024-06-06 08:01:02 +09:00
parent 9d34117124
commit 370aad5982
No known key found for this signature in database
GPG key ID: 712D413B3A9FED5C

View file

@ -136,9 +136,18 @@ async fn encode_mastodon_payload(
serde_json::to_value(token.token)?, serde_json::to_value(token.token)?,
); );
// Some apps expect notification_id to be an integer, // Some apps expect notification_id to be an integer,
// but doesnt break when the ID doesnt match the rest of API. // but doesnt break when the ID doesnt match the rest of API.
if ["IceCubesApp", "Mammoth", "feather", "MaserApp", "Metatext", "Feditext"].contains(&client.name.as_str()) { if [
"IceCubesApp",
"Mammoth",
"feather",
"MaserApp",
"Metatext",
"Feditext",
]
.contains(&client.name.as_str())
{
let timestamp = object let timestamp = object
.get("notification_id") .get("notification_id")
.and_then(|id| id.as_str()) .and_then(|id| id.as_str())
@ -154,11 +163,14 @@ async fn encode_mastodon_payload(
// Adding space paddings to the end of JSON payload to prevent // Adding space paddings to the end of JSON payload to prevent
// `esm` from adding null bytes payload which many Mastodon clients dont support. // `esm` from adding null bytes payload which many Mastodon clients dont support.
// https://firefish.dev/firefish/firefish/-/merge_requests/10905#note_6733 // https://firefish.dev/firefish/firefish/-/merge_requests/10905#note_6733
// not using {:padding_length$} directly on `res`` because we want the padding to be // not using the padding parameter directly on `res` because we want the padding to be
// calculated based on the UTF-8 byte size of `res` instead of number of characters. // calculated based on the UTF-8 byte size of `res` instead of number of characters.
let padded_length = 126 + (res.len() + 1) / 128 * 128 - res.len(); let pad_length = match res.len() % 128 {
127 => 127,
n => 126 - n,
};
Ok(format!("{}{:padded_length$}", res, "")) Ok(format!("{}{:pad_length$}", res, ""))
} }
async fn handle_web_push_failure( async fn handle_web_push_failure(