fix(app,api): kick reasons, blocked counts and locale fallbacks (#3334)

This commit is contained in:
Hampus authored and GitHub committed 2026-10-09 01:40:08 +02:00
1 parent a5c1362f4a
commit 4db13b0375
157 files changed
+3080 -1995

No files matched your search

+5 -20
View File
@@ -73,14 +73,10 @@ fn normalize_author(
}
fn normalize_provider(mut provider: EmbedProvider) -> Option<EmbedProvider> {
let name = truncate(
provider.name.as_deref().unwrap_or_default(),
PROVIDER_NAME_MAX,
);
if name.is_empty() {
provider.name = truncate(&provider.name, PROVIDER_NAME_MAX);
if provider.name.is_empty() {
return None;
}
provider.name = Some(name);
Some(provider)
}
@@ -167,17 +163,6 @@ mod tests {
assert!(result[0].footer.is_none());
}
#[test]
fn provider_without_name_is_removed() {
let mut e = MessageEmbed::new("rich");
e.provider = Some(EmbedProvider {
name: None,
url: Some("https://example.com".to_owned()),
});
let result = normalize_embeds(vec![e], &test_proxy());
assert!(result[0].provider.is_none());
}
#[test]
fn fields_limited_to_max() {
let mut e = MessageEmbed::new("rich");
@@ -216,7 +201,7 @@ mod tests {
fn provider_with_empty_name_string_is_removed() {
let mut e = MessageEmbed::new("rich");
e.provider = Some(EmbedProvider {
name: Some("".to_owned()),
name: String::new(),
url: Some("https://example.com".to_owned()),
});
let result = normalize_embeds(vec![e], &test_proxy());
@@ -228,12 +213,12 @@ mod tests {
let mut e = MessageEmbed::new("rich");
let long = "X".repeat(500);
e.provider = Some(EmbedProvider {
name: Some(long),
name: long,
url: None,
});
let result = normalize_embeds(vec![e], &test_proxy());
let p = result[0].provider.as_ref().unwrap();
assert!(p.name.as_ref().unwrap().chars().count() <= PROVIDER_NAME_MAX);
assert!(p.name.chars().count() <= PROVIDER_NAME_MAX);
}
#[test]
@@ -359,7 +359,7 @@ fn set_author_and_provider(
}
if let Some(name) = site_name {
embed.provider = Some(EmbedProvider {
name: Some(text_limits::truncate(name, text_limits::PROVIDER_NAME_MAX)),
name: text_limits::truncate(name, text_limits::PROVIDER_NAME_MAX),
url: Some(provider_url.to_owned()),
});
}
+1 -1
View File
@@ -66,7 +66,7 @@ impl Resolver for KlipyResolver {
let mut embed = MessageEmbed::new("gifv");
embed.url = Some(ctx.original_url.to_string());
embed.provider = Some(EmbedProvider {
name: Some("KLIPY".to_owned()),
name: "KLIPY".to_owned(),
url: Some("https://klipy.com".to_owned()),
});
if let Some(ref thumbnail) = formats.thumbnail {
+2 -2
View File
@@ -103,7 +103,7 @@ fn tenor_embed(
let mut embed = MessageEmbed::new("gifv");
embed.url = Some(source_url.to_string());
embed.provider = Some(EmbedProvider {
name: Some("Tenor".to_owned()),
name: "Tenor".to_owned(),
url: Some("https://tenor.com".to_owned()),
});
embed.thumbnail = thumbnail;
@@ -396,7 +396,7 @@ mod tests {
embed
.provider
.as_ref()
.and_then(|provider| provider.name.as_deref()),
.map(|provider| provider.name.as_str()),
Some("Tenor")
);
}
+1 -1
View File
@@ -132,7 +132,7 @@ impl Resolver for YouTubeResolver {
}
embed.provider = Some(EmbedProvider {
name: Some("YouTube".to_owned()),
name: "YouTube".to_owned(),
url: Some("https://www.youtube.com".to_owned()),
});
+13 -2
View File
@@ -129,8 +129,7 @@ pub struct EmbedAuthor {
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EmbedProvider {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
@@ -217,4 +216,16 @@ mod tests {
UnfurlRequest::Invalidate { .. } => panic!("expected unfurl request"),
}
}
#[test]
fn provider_always_serializes_its_name() {
let provider = EmbedProvider {
name: "Tenor".to_owned(),
url: None,
};
assert_eq!(
serde_json::to_value(&provider).unwrap(),
serde_json::json!({"name": "Tenor"})
);
}
}