diff options
| author | SavagePeanut <sourcehut@lazytapir.com> | 2023-09-08 11:50:13 -0500 |
|---|---|---|
| committer | SavagePeanut <sourcehut@lazytapir.com> | 2023-09-08 11:51:54 -0500 |
| commit | 7c73544dac2c1d5b21e201469a0c9c6d0a654f0b (patch) | |
| tree | 2b8c584327689c4d8e7ddc17edda3cafb5b4b384 /src | |
| parent | 35884c910a190237abfbab40a536b2d14f826f92 (diff) | |
fix telegram styles
Diffstat (limited to 'src')
| -rw-r--r-- | src/matrix.rs | 1 | ||||
| -rw-r--r-- | src/telegram.rs | 15 |
2 files changed, 5 insertions, 11 deletions
diff --git a/src/matrix.rs b/src/matrix.rs index 963e569..47fa984 100644 --- a/src/matrix.rs +++ b/src/matrix.rs @@ -60,7 +60,6 @@ pub fn format_for_matrix(body: String) -> PyResult<String> { } else { replace_newlines_to - offset.abs() as usize }; - println!("chars {:?}", chars.clone().into_iter().collect::<String>()); } let substring = chars[..replace_newlines_to].into_iter().collect::<String>(); let text = [substring.replace('\n', "<br>"), chars[replace_newlines_to..].into_iter().collect::<String>()].concat(); diff --git a/src/telegram.rs b/src/telegram.rs index b215885..481adec 100644 --- a/src/telegram.rs +++ b/src/telegram.rs @@ -1,5 +1,3 @@ -use std::cmp::Ordering; - use pyo3::prelude::*; use crate::parser::parse_with_limits; @@ -32,7 +30,7 @@ pub fn format_for_telegram(body: String) -> PyResult<(String, Vec<(String, usize } } - // is_start (*<--- start, end -->*), index of all_indexes, format, index of tag, language of codeblock + // is_start (*<-- start, end -->*), index of all_indexes, format, index of tag, language of codeblock let mut message_entities: Vec<(bool, usize, String, usize, String)> = Vec::with_capacity(styles.len() * 2); let mut all_indexes: Vec<Vec<usize>> = Vec::with_capacity(styles.len()); for (keyword, start, remove_start, end, remove_end) in &styles { @@ -53,7 +51,7 @@ pub fn format_for_telegram(body: String) -> PyResult<(String, Vec<(String, usize message_entities.push((false, all_indexes.len() - 1, "".to_string(), *start, "".to_string())); } } - message_entities.sort_by(sort_message_entities); + message_entities.sort_by(|a, b| a.3.cmp(&b.3)); remove_tags.sort_by(|a, b| b.0.cmp(&a.0)); @@ -79,24 +77,21 @@ pub fn format_for_telegram(body: String) -> PyResult<(String, Vec<(String, usize formatted_text, message_entities.into_iter() .filter(|(is_start, _, _, _, _)| { *is_start } ) - .map(|(_, index, format, _, language)| { (format, utf16_lengths[all_indexes[index][0]], utf16_lengths[all_indexes[index][2] - 1] - utf16_lengths[all_indexes[index][0]], language) }) + .map(|(_, index, format, _, language)| { (format, utf16_lengths[all_indexes[index][0]], utf16_lengths[all_indexes[index][2]] - utf16_lengths[all_indexes[index][0]], language) }) .collect() )) } -fn sort_message_entities(first: &(bool, usize, String, usize, String), second: &(bool, usize, String, usize, String)) -> Ordering { - return first.3.cmp(&second.3); -} - fn utf8_to_utf16_length(utf8_str: &str) -> Vec<usize> { let mut utf16_lengths = Vec::with_capacity(utf8_str.len()); let mut length = 0; + utf16_lengths.push(0); for byte in utf8_str.as_bytes() { if (byte & 0xc0) != 0x80 { length += if *byte >= 0xf0 { 2 } else { 1 }; + utf16_lengths.push(length); } - utf16_lengths.push(length); } utf16_lengths } |
