mirror of
https://github.com/house-of-vanity/v2-uri-parser.git
synced 2025-12-15 22:47:52 +00:00
Add remarks to raw data
This commit is contained in:
@@ -186,6 +186,7 @@ pub struct Config {
|
||||
#[derive(Serialize, Deserialize)]
|
||||
#[allow(non_snake_case)]
|
||||
pub struct RawData {
|
||||
pub remarks: String,
|
||||
pub security: Option<String>,
|
||||
pub vnext_security: Option<String>,
|
||||
pub sni: Option<String>,
|
||||
|
||||
@@ -6,14 +6,14 @@ use http::Uri;
|
||||
pub fn get_data(uri: &str) -> RawData {
|
||||
let data = uri.split_once("vless://").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("#")
|
||||
.unwrap_or((query_and_name, ""))
|
||||
.0;
|
||||
.unwrap_or((query_and_name, ""));
|
||||
let parsed_address = parse_vless_address(data.split_once("?").unwrap().0);
|
||||
let query: Vec<(&str, &str)> = querystring::querify(raw_query);
|
||||
|
||||
return RawData {
|
||||
remarks: String::from(name),
|
||||
uuid: Some(parsed_address.uuid),
|
||||
port: Some(parsed_address.port),
|
||||
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();
|
||||
|
||||
return RawData {
|
||||
remarks: get_str_field(&json, "id").unwrap_or(String::from("")),
|
||||
uuid: get_str_field(&json, "id"),
|
||||
port: get_str_field(&json, "port")
|
||||
.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 query_and_name = uri.split_once("?").unwrap().1;
|
||||
|
||||
let raw_query = query_and_name
|
||||
let (raw_query, name) = query_and_name
|
||||
.split_once("#")
|
||||
.unwrap_or((query_and_name, ""))
|
||||
.0;
|
||||
.unwrap_or((query_and_name, ""));
|
||||
let parsed_address = parse_vmess_address(data.split_once("?").unwrap().0);
|
||||
let query: Vec<(&str, &str)> = querystring::querify(raw_query);
|
||||
|
||||
return RawData {
|
||||
remarks: String::from(name),
|
||||
uuid: Some(parsed_address.uuid),
|
||||
port: Some(parsed_address.port),
|
||||
address: Some(parsed_address.address),
|
||||
|
||||
Reference in New Issue
Block a user