forked from karx/dircord
Use ellipse
crate for truncation
This commit is contained in:
parent
5fb4e69b6d
commit
8965be4a8b
16
Cargo.lock
generated
16
Cargo.lock
generated
|
@ -210,6 +210,7 @@ name = "dircord"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
"ellipse",
|
||||||
"fancy-regex",
|
"fancy-regex",
|
||||||
"irc",
|
"irc",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
|
@ -222,6 +223,15 @@ dependencies = [
|
||||||
"vergen",
|
"vergen",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ellipse"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1835a82a08e5c9393639e7cf99786a65af71f7fa9df7c91a519f2d52e6fa052d"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-segmentation",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "encoding"
|
name = "encoding"
|
||||||
version = "0.2.33"
|
version = "0.2.33"
|
||||||
|
@ -1617,6 +1627,12 @@ dependencies = [
|
||||||
"tinyvec",
|
"tinyvec",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-segmentation"
|
||||||
|
version = "1.9.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-width"
|
name = "unicode-width"
|
||||||
version = "0.1.9"
|
version = "0.1.9"
|
||||||
|
|
|
@ -14,6 +14,7 @@ lazy_static = "1.4.0"
|
||||||
pulldown-cmark = "0.9.1"
|
pulldown-cmark = "0.9.1"
|
||||||
fancy-regex = "0.10.0"
|
fancy-regex = "0.10.0"
|
||||||
tokio-stream = "0.1.9"
|
tokio-stream = "0.1.9"
|
||||||
|
ellipse = "0.2.0"
|
||||||
|
|
||||||
[dependencies.tokio]
|
[dependencies.tokio]
|
||||||
version = "1.20.0"
|
version = "1.20.0"
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
use crate::{
|
use crate::{
|
||||||
regex, ChannelMappingKey, MembersKey, OptionReplacer, OptionStringKey, SenderKey, UserIdKey,
|
regex, ChannelMappingKey, MembersKey, OptionReplacer, OptionStringKey, SenderKey, UserIdKey,
|
||||||
};
|
};
|
||||||
|
use ellipse::Ellipse;
|
||||||
use fancy_regex::{Captures, Replacer};
|
use fancy_regex::{Captures, Replacer};
|
||||||
use pulldown_cmark::Parser;
|
use pulldown_cmark::Parser;
|
||||||
use serenity::{
|
use serenity::{
|
||||||
|
@ -150,7 +151,7 @@ impl EventHandler for Handler {
|
||||||
{
|
{
|
||||||
if let Ok(mut reply) = channel_id.message(&ctx, message_id).await {
|
if let Ok(mut reply) = channel_id.message(&ctx, message_id).await {
|
||||||
reply.guild_id = guild_id; // lmao
|
reply.guild_id = guild_id; // lmao
|
||||||
let (reply_prefix, reply_content_limit) = create_prefix(&reply, true, &ctx).await;
|
let (reply_prefix, _) = create_prefix(&reply, true, &ctx).await;
|
||||||
|
|
||||||
let mut content = reply.content;
|
let mut content = reply.content;
|
||||||
content = content.replace("\r\n", " "); // just in case
|
content = content.replace("\r\n", " "); // just in case
|
||||||
|
@ -160,11 +161,7 @@ impl EventHandler for Handler {
|
||||||
|
|
||||||
content = discord_to_irc_processing(&content, &**members_lock, &ctx, &roles).await;
|
content = discord_to_irc_processing(&content, &**members_lock, &ctx, &roles).await;
|
||||||
|
|
||||||
let to_send = if content.len() > reply_content_limit {
|
let to_send = (&*content).truncate_ellipse(40); // limit taken from discord
|
||||||
format!("{}...", &content[..reply_content_limit - 3])
|
|
||||||
} else {
|
|
||||||
content
|
|
||||||
};
|
|
||||||
|
|
||||||
sender
|
sender
|
||||||
.send_privmsg(channel, &format!("{}{}", reply_prefix, to_send))
|
.send_privmsg(channel, &format!("{}{}", reply_prefix, to_send))
|
||||||
|
|
Loading…
Reference in a new issue