From 4b4f9abe2f01f0e965afd73751e9cbee091a0bad Mon Sep 17 00:00:00 2001 From: VC Date: Wed, 2 Oct 2024 10:44:43 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B:=20=E2=80=A6=20was=20apposed=20to?= =?UTF-8?q?=20every=20link=20regardless=20of=20their=20length?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/bsky.rs | 16 +++++++++------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8799dc6..710b62a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1283,7 +1283,7 @@ dependencies = [ [[package]] name = "oolatoocs" -version = "3.0.1" +version = "3.0.2" dependencies = [ "atrium-api", "bsky-sdk", diff --git a/Cargo.toml b/Cargo.toml index 7af6a52..68275e8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oolatoocs" -version = "3.0.1" +version = "3.0.2" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src/bsky.rs b/src/bsky.rs index 71e086b..53c780c 100644 --- a/src/bsky.rs +++ b/src/bsky.rs @@ -38,11 +38,13 @@ pub async fn build_post_record( while let Some(found) = re.captures(&rt.text.clone()) { if let Some(group) = found.get(3) { - rt.insert(group.start(), insert_chars); - rt.delete( - group.start() + insert_chars.len(), - group.start() + insert_chars.len() + group.len(), - ); + if !group.is_empty() { + rt.insert(group.start(), insert_chars); + rt.delete( + group.start() + insert_chars.len(), + group.start() + insert_chars.len() + group.len(), + ); + } } if let Some(group) = found.get(1) { rt.delete(group.start(), group.start() + group.len()); @@ -195,8 +197,8 @@ mod tests { #[tokio::test] async fn test_build_post_record() { - let text = "@factornews@piaille.fr Retrouvez-nous ici https://www.nintendojo.fr/articles/editos/le-mod-renovation-de-8bitdo-pour-manette-n64 et là https://www.nintendojo.fr/articles/analyses/vite-vu/vite-vu-morbid-the-lords-of-ire"; - let expected_text = "@factornews@piaille.fr Retrouvez-nous ici www.nintendojo.fr/articles… et là www.nintendojo.fr/articles…"; + let text = "@factornews@piaille.fr Retrouvez-nous ici https://www.nintendojo.fr/articles/editos/le-mod-renovation-de-8bitdo-pour-manette-n64 et là https://www.nintendojo.fr/articles/analyses/vite-vu/vite-vu-morbid-the-lords-of-ire et un lien très court http://vsl.ie/TaMere"; + let expected_text = "@factornews@piaille.fr Retrouvez-nous ici www.nintendojo.fr/articles… et là www.nintendojo.fr/articles… et un lien très court vsl.ie/TaMere"; let bsky_conf = BlueskyConfig { handle: "tamerelol.bsky.social".to_string(),