#domain #privacy #changer #deserialize-json

domain_changer

Rust 库,帮助您将链接的域名更改为另一个域名

5 个版本

0.1.4 2022年4月14日
0.1.3 2022年3月24日
0.1.2 2022年3月24日
0.1.1 2022年3月22日
0.1.0 2022年3月20日

#1046 in 编码

AGPL-3.0-only

30KB
218 代码行

domain_changer

Wagmi

Rust report

domain_changer 是一个 Rust 库,帮助您将链接的域名更改为另一个域名,该库有助于保护隐私。它可以将不关心隐私的网站域名更改为关心隐私的网站。

示例

解析字符串

解析字符串并将旧网址转换为新的网址

注意:您可以随意更改域名

use domain_changer::parse_string;
use domain_changer::types::Config;

let text: String = "Wellcome to my youtube channel: https://www.youtube.com/channel/UCeRbJsc8cl7xBwT3jIxaAdg And my twitter is: twitter.com/Awiteb".to_string();
let config: Config = Config::default();
assert_eq!(parse_string(&config, text),
           "Wellcome to my youtube channel: https://piped.kavin.rocks/channel/UCeRbJsc8cl7xBwT3jIxaAdg And my twitter is: https://nitter.net/Awiteb".to_string()
);

提取域名

您可以从字符串中提取域名(只需将域名添加到配置中即可)

use domain_changer::extract_old_domains;
use domain_changer::types::{Config, Domain};

let config: Config = Config::default();
let text: String = String::from(
    "Hi i hate youtube.com and https://twitter.com what about you?"
);
assert_eq!(
    extract_old_domains(&config, text),
    vec![
        &Domain::try_from(("https://youtube.com/", "https://piped.kavin.rocks/")).unwrap(),
        &Domain::try_from(("https://twitter.com/", "https://nitter.net/")).unwrap()
    ]
);

序列化和反序列化(json 功能)

在 Domain 结构和 Config 中将 json 序列化和反序列化

注意:需要 json 功能

Domain

use domain_changer::types::{Domain, ToFromJson};

let domain: Domain = Domain::try_from(("https://twitter.com/", "https://nitter.net/")).unwrap();
assert_eq!(domain.to_json().unwrap(), "{\"old\":\"https://twitter.com/\",\"new\":\"https://nitter.net/\"}");
assert_eq!(Domain::from_json("{\"old\":\"https://twitter.com/\",\"new\":\"https://nitter.net/\"}").unwrap(), domain);
assert!(Domain::from_json("{\"old\":\"twitter.com/\",\"new\":\"nitter.net/\"}").is_err());

Config

use domain_changer::types::{Config, Domain, ToFromJson};

let config: Config = Config::new(vec![Domain::try_from(("https://twitter.com/", "https://nitter.net/")).unwrap()]);
assert_eq!(
    config.to_json().unwrap(),
    "{\"domains\":[{\"old\":\"https://twitter.com/\",\"new\":\"https://nitter.net/\"}]}".to_string()
);

assert_eq!(
    Config::from_json("{\"domains\":[{\"old\":\"https://twitter.com/\",\"new\":\"https://nitter.net/\"}]}").unwrap(),
    config
);

捐赠

货币 地址
Binance BNB BEP20 0xD89c146B03B72191be91064D313610981dCAF6d4
USD Coin USDC BEP20 0xD89c146B03B72191be91064D313610981dCAF6d4
Bitcoin BTC bc1q0ltmqmsc4qs740ssyf9k9jq99nwxtqu8aupmdj
Bitcoin Cash BCH qrpm6zyte3d4z2u9r24l04m3havc2wd9vgqlz8sjgr

贡献者

许可证

GNU Affero 通用公共许可证 是一种免费、版权保留的许可证,专门用于软件和其他类型的工作,旨在确保网络服务器软件与社区的协作。

依赖项

~1–1.6MB
~54K SLoC