mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-17 04:55:42 +09:00
fix(app,api): kick reasons, blocked counts and locale fallbacks (#3334)
This commit is contained in:
1 parent
a5c1362f4a
commit
4db13b0375
157 files changed
+3080
-1995
No files matched your search
@@ -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()),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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")
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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()),
|
||||
});
|
||||
|
||||
|
||||
@@ -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"})
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user