untrack

Crates.iountrack
lib.rsuntrack
version0.1.5
sourcesrc
created_at2024-07-23 18:40:27.724899
updated_at2024-07-28 11:43:24.418727
descriptionLibrary to parse and remove tracking tokens from URLs contained in arbitrary text input
homepagehttps://github.com/f321x/untrack-rs
repositoryhttps://github.com/f321x/untrack-rs
max_upload_size
id1313156
size31,750
Felix (f321x)

documentation

README

untrack crate

This crate is intended to remove tracking tokens from URLs contained in any text input. The crate can either substitute the URLs in place or return a Vec of cleaned urls to a given text input.

Usecase

Removing tracking tokens can improve the privacy of the user sharing the link containing the tokens and the consumer opening the shared link.

Supported tracking tokens

The crate currently supports Twitter, X, YouTube, Instagram, Substack and Spotify tracking tokens. The exact tokens can be found in src/parsing_params.rs.

Example usage

fn clean_urls_from_any_text(input: &String) -> Option<Vec>

let input = 
String::from("Twitter link: https://twitter.com/user/status/123?utm_source=test&s=1234");

let expected = vec!["https://twitter.com/user/status/123".to_string()];

assert_eq!(clean_urls_from_any_text(&input), Some(expected));

fn replace_urls_in_place(input: &mut String) -> Option<&mut String>

let mut input = String::from("Multiple URLs: https://twitter.com/user/status/123?s=12 and https://www.youtube.com/watch?v=abc&feature=share");

let result = replace_urls_in_place(&mut input);

assert!(result.is_some());

assert_eq!(input, "Multiple URLs: https://twitter.com/user/status/123 and https://www.youtube.com/watch?v=abc");
Commit count: 0

cargo fmt