mod parsing_core;
mod parsing_params;
#[cfg(test)]
mod tests;
use linkify::{LinkFinder, LinkKind};
use parsing_core::Parser;
use std::collections::HashSet;
use url::Url;
pub fn clean_urls_from_any_text(input: &str) -> Option<Vec<String>> {
let parser = Parser::new();
let cleaned_urls = parser.parse_any_text(input);
if cleaned_urls.is_none() {
return None;
}
cleaned_urls.map(|urls| {
urls.into_iter()
.map(|(cleaned_url, _)| cleaned_url)
.collect()
})
}
pub fn clean_urls_and_get_removed_part(input: &str) -> Option<Vec<(String, String)>> {
let parser = Parser::new();
let cleaned_urls = parser.parse_any_text(input);
cleaned_urls
}
pub fn replace_urls_in_place(input: &mut String) -> Option<&mut String> {
let parser = Parser::new();
let changes = parser.sanitize_in_place(input);
if changes.is_some() {
Some(input)
} else {
None
}
}
pub fn clone_and_sanitize_text(input: &str) -> Option<String> {
let mut cloned_input = String::from(input);
let parser = Parser::new();
let changes = parser.sanitize_in_place(&mut cloned_input);
if changes.is_some() {
Some(cloned_input)
} else {
None
}
}