mirror of
https://github.com/house-of-vanity/v2-uri-parser.git
synced 2025-12-16 06:57:52 +00:00
Add remarks to raw data
This commit is contained in:
@@ -186,6 +186,7 @@ pub struct Config {
|
|||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub struct RawData {
|
pub struct RawData {
|
||||||
|
pub remarks: String,
|
||||||
pub security: Option<String>,
|
pub security: Option<String>,
|
||||||
pub vnext_security: Option<String>,
|
pub vnext_security: Option<String>,
|
||||||
pub sni: Option<String>,
|
pub sni: Option<String>,
|
||||||
|
|||||||
@@ -6,14 +6,14 @@ use http::Uri;
|
|||||||
pub fn get_data(uri: &str) -> RawData {
|
pub fn get_data(uri: &str) -> RawData {
|
||||||
let data = uri.split_once("vless://").unwrap().1;
|
let data = uri.split_once("vless://").unwrap().1;
|
||||||
let query_and_name = uri.split_once("?").unwrap().1;
|
let query_and_name = uri.split_once("?").unwrap().1;
|
||||||
let raw_query = query_and_name
|
let (raw_query, name) = query_and_name
|
||||||
.split_once("#")
|
.split_once("#")
|
||||||
.unwrap_or((query_and_name, ""))
|
.unwrap_or((query_and_name, ""));
|
||||||
.0;
|
|
||||||
let parsed_address = parse_vless_address(data.split_once("?").unwrap().0);
|
let parsed_address = parse_vless_address(data.split_once("?").unwrap().0);
|
||||||
let query: Vec<(&str, &str)> = querystring::querify(raw_query);
|
let query: Vec<(&str, &str)> = querystring::querify(raw_query);
|
||||||
|
|
||||||
return RawData {
|
return RawData {
|
||||||
|
remarks: String::from(name),
|
||||||
uuid: Some(parsed_address.uuid),
|
uuid: Some(parsed_address.uuid),
|
||||||
port: Some(parsed_address.port),
|
port: Some(parsed_address.port),
|
||||||
address: Some(parsed_address.address),
|
address: Some(parsed_address.address),
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ fn get_raw_data_from_base64(decoded_base64: &Vec<u8>) -> RawData {
|
|||||||
let json = serde_json::from_str::<Value>(json_str).unwrap();
|
let json = serde_json::from_str::<Value>(json_str).unwrap();
|
||||||
|
|
||||||
return RawData {
|
return RawData {
|
||||||
|
remarks: get_str_field(&json, "id").unwrap_or(String::from("")),
|
||||||
uuid: get_str_field(&json, "id"),
|
uuid: get_str_field(&json, "id"),
|
||||||
port: get_str_field(&json, "port")
|
port: get_str_field(&json, "port")
|
||||||
.and_then(|s| Some(s.parse::<u16>().expect("port is not a number"))),
|
.and_then(|s| Some(s.parse::<u16>().expect("port is not a number"))),
|
||||||
@@ -65,14 +66,14 @@ fn get_raw_data_from_uri(uri: &str) -> RawData {
|
|||||||
let data = uri.split_once("vmess://").unwrap().1;
|
let data = uri.split_once("vmess://").unwrap().1;
|
||||||
let query_and_name = uri.split_once("?").unwrap().1;
|
let query_and_name = uri.split_once("?").unwrap().1;
|
||||||
|
|
||||||
let raw_query = query_and_name
|
let (raw_query, name) = query_and_name
|
||||||
.split_once("#")
|
.split_once("#")
|
||||||
.unwrap_or((query_and_name, ""))
|
.unwrap_or((query_and_name, ""));
|
||||||
.0;
|
|
||||||
let parsed_address = parse_vmess_address(data.split_once("?").unwrap().0);
|
let parsed_address = parse_vmess_address(data.split_once("?").unwrap().0);
|
||||||
let query: Vec<(&str, &str)> = querystring::querify(raw_query);
|
let query: Vec<(&str, &str)> = querystring::querify(raw_query);
|
||||||
|
|
||||||
return RawData {
|
return RawData {
|
||||||
|
remarks: String::from(name),
|
||||||
uuid: Some(parsed_address.uuid),
|
uuid: Some(parsed_address.uuid),
|
||||||
port: Some(parsed_address.port),
|
port: Some(parsed_address.port),
|
||||||
address: Some(parsed_address.address),
|
address: Some(parsed_address.address),
|
||||||
|
|||||||
Reference in New Issue
Block a user