mirror of
https://github.com/chatmail/core.git
synced 2026-05-20 07:16:31 +03:00
Rename Reaction::from_str to new
This commit is contained in:
@@ -48,7 +48,7 @@ impl Reaction {
|
|||||||
/// reactions is not different from other kinds of spam attacks
|
/// reactions is not different from other kinds of spam attacks
|
||||||
/// such as sending large numbers of large messages, and should be
|
/// such as sending large numbers of large messages, and should be
|
||||||
/// dealt with the same way, e.g. by blocking the user.
|
/// dealt with the same way, e.g. by blocking the user.
|
||||||
pub fn from_str(reaction: &str) -> Self {
|
pub fn new(reaction: &str) -> Self {
|
||||||
let reaction: &str = reaction
|
let reaction: &str = reaction
|
||||||
.split_ascii_whitespace()
|
.split_ascii_whitespace()
|
||||||
.next()
|
.next()
|
||||||
@@ -207,7 +207,7 @@ pub async fn send_reaction(context: &Context, msg_id: MsgId, reaction: &str) ->
|
|||||||
let msg = Message::load_from_db(context, msg_id).await?;
|
let msg = Message::load_from_db(context, msg_id).await?;
|
||||||
let chat_id = msg.chat_id;
|
let chat_id = msg.chat_id;
|
||||||
|
|
||||||
let reaction = Reaction::from_str(reaction);
|
let reaction = Reaction::new(reaction);
|
||||||
let mut reaction_msg = Message::new_text(reaction.as_str().to_string());
|
let mut reaction_msg = Message::new_text(reaction.as_str().to_string());
|
||||||
reaction_msg.set_reaction();
|
reaction_msg.set_reaction();
|
||||||
reaction_msg.in_reply_to = Some(msg.rfc724_mid);
|
reaction_msg.in_reply_to = Some(msg.rfc724_mid);
|
||||||
@@ -277,7 +277,7 @@ pub async fn get_msg_reactions(context: &Context, msg_id: MsgId) -> Result<React
|
|||||||
|row| {
|
|row| {
|
||||||
let contact_id: ContactId = row.get(0)?;
|
let contact_id: ContactId = row.get(0)?;
|
||||||
let reaction: String = row.get(1)?;
|
let reaction: String = row.get(1)?;
|
||||||
Ok((contact_id, Reaction::from_str(reaction.as_str())))
|
Ok((contact_id, Reaction::new(reaction.as_str())))
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
@@ -356,33 +356,32 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_parse_reaction() {
|
fn test_parse_reaction() {
|
||||||
// Check that basic set of emojis from RFC 9078 is supported.
|
// Check that basic set of emojis from RFC 9078 is supported.
|
||||||
assert_eq!(Reaction::from_str("👍").as_str(), "👍");
|
assert_eq!(Reaction::new("👍").as_str(), "👍");
|
||||||
assert_eq!(Reaction::from_str("👎").as_str(), "👎");
|
assert_eq!(Reaction::new("👎").as_str(), "👎");
|
||||||
assert_eq!(Reaction::from_str("😀").as_str(), "😀");
|
assert_eq!(Reaction::new("😀").as_str(), "😀");
|
||||||
assert_eq!(Reaction::from_str("☹").as_str(), "☹");
|
assert_eq!(Reaction::new("☹").as_str(), "☹");
|
||||||
assert_eq!(Reaction::from_str("😢").as_str(), "😢");
|
assert_eq!(Reaction::new("😢").as_str(), "😢");
|
||||||
|
|
||||||
// Empty string can be used to remove all reactions.
|
// Empty string can be used to remove all reactions.
|
||||||
assert!(Reaction::from_str("").is_empty());
|
assert!(Reaction::new("").is_empty());
|
||||||
|
|
||||||
// Short strings can be used as emojis, could be used to add
|
// Short strings can be used as emojis, could be used to add
|
||||||
// support for custom emojis via emoji shortcodes.
|
// support for custom emojis via emoji shortcodes.
|
||||||
assert_eq!(Reaction::from_str(":deltacat:").as_str(), ":deltacat:");
|
assert_eq!(Reaction::new(":deltacat:").as_str(), ":deltacat:");
|
||||||
|
|
||||||
// Check that long strings are not valid emojis.
|
// Check that long strings are not valid emojis.
|
||||||
assert!(
|
assert!(
|
||||||
Reaction::from_str(":foobarbazquuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:")
|
Reaction::new(":foobarbazquuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:").is_empty()
|
||||||
.is_empty()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// Multiple reactions separated by spaces or tabs are not supported.
|
// Multiple reactions separated by spaces or tabs are not supported.
|
||||||
assert_eq!(Reaction::from_str("👍 ❤").as_str(), "👍");
|
assert_eq!(Reaction::new("👍 ❤").as_str(), "👍");
|
||||||
assert_eq!(Reaction::from_str("👍\t❤").as_str(), "👍");
|
assert_eq!(Reaction::new("👍\t❤").as_str(), "👍");
|
||||||
|
|
||||||
assert_eq!(Reaction::from_str("👍\t:foo: ❤").as_str(), "👍");
|
assert_eq!(Reaction::new("👍\t:foo: ❤").as_str(), "👍");
|
||||||
assert_eq!(Reaction::from_str("👍\t:foo: ❤").as_str(), "👍");
|
assert_eq!(Reaction::new("👍\t:foo: ❤").as_str(), "👍");
|
||||||
|
|
||||||
assert_eq!(Reaction::from_str("👍 👍").as_str(), "👍");
|
assert_eq!(Reaction::new("👍 👍").as_str(), "👍");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||||
@@ -578,7 +577,7 @@ Content-Disposition: reaction\n\
|
|||||||
assert_eq!(chat_id, expected_chat_id);
|
assert_eq!(chat_id, expected_chat_id);
|
||||||
assert_eq!(msg_id, expected_msg_id);
|
assert_eq!(msg_id, expected_msg_id);
|
||||||
assert_eq!(contact_id, expected_contact_id);
|
assert_eq!(contact_id, expected_contact_id);
|
||||||
assert_eq!(reaction, Reaction::from_str(expected_reaction));
|
assert_eq!(reaction, Reaction::new(expected_reaction));
|
||||||
}
|
}
|
||||||
_ => panic!("Unexpected event {event:?}."),
|
_ => panic!("Unexpected event {event:?}."),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2151,7 +2151,7 @@ async fn add_parts(
|
|||||||
chat_id,
|
chat_id,
|
||||||
from_id,
|
from_id,
|
||||||
sort_timestamp,
|
sort_timestamp,
|
||||||
Reaction::from_str(reaction_str.as_str()),
|
Reaction::new(reaction_str.as_str()),
|
||||||
is_incoming_fresh,
|
is_incoming_fresh,
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|||||||
Reference in New Issue
Block a user