Validate emoji tags
This commit is contained in:
parent
143879caf9
commit
4d29c83365
2 changed files with 30 additions and 2 deletions
|
@ -16,7 +16,7 @@ use crate::activitypub::{
|
||||||
},
|
},
|
||||||
identifiers::parse_local_actor_id,
|
identifiers::parse_local_actor_id,
|
||||||
receiver::{parse_array, parse_property_value, HandlerError},
|
receiver::{parse_array, parse_property_value, HandlerError},
|
||||||
types::{Attachment, Link, LinkTag, Object, Tag},
|
types::{Attachment, EmojiTag, Link, LinkTag, Object, Tag},
|
||||||
vocabulary::*,
|
vocabulary::*,
|
||||||
};
|
};
|
||||||
use crate::config::{Config, Instance};
|
use crate::config::{Config, Instance};
|
||||||
|
@ -336,7 +336,13 @@ pub async fn handle_note(
|
||||||
links.push(linked.id);
|
links.push(linked.id);
|
||||||
};
|
};
|
||||||
} else if tag_type == EMOJI {
|
} else if tag_type == EMOJI {
|
||||||
log::info!("found emoji tag: {}", tag_value);
|
let _tag: EmojiTag = match serde_json::from_value(tag_value.clone()) {
|
||||||
|
Ok(tag) => tag,
|
||||||
|
Err(_) => {
|
||||||
|
log::warn!("invalid emoji tag");
|
||||||
|
continue;
|
||||||
|
},
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
log::warn!(
|
log::warn!(
|
||||||
"skipping tag of type {}",
|
"skipping tag of type {}",
|
||||||
|
|
|
@ -54,6 +54,28 @@ pub struct LinkTag {
|
||||||
pub name: Option<String>,
|
pub name: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
#[derive(Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
struct EmojiImage {
|
||||||
|
#[serde(rename = "type")]
|
||||||
|
object_type: String,
|
||||||
|
url: String,
|
||||||
|
media_type: Option<String>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
#[derive(Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct EmojiTag {
|
||||||
|
#[serde(rename = "type")]
|
||||||
|
tag_type: String,
|
||||||
|
icon: EmojiImage,
|
||||||
|
id: String,
|
||||||
|
name: String,
|
||||||
|
updated: DateTime<Utc>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
#[cfg_attr(test, derive(Default))]
|
#[cfg_attr(test, derive(Default))]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
|
|
Loading…
Reference in a new issue