ShadowSocksShareEntity.fromString constructor
ShadowSocksShareEntity.fromString(
- String link
Implementation
factory ShadowSocksShareEntity.fromString(String link) {
final uri = parseAndValidate(link, const [scheme]);
final options = ShadowSocksOptions.fromJson(
QueryUtilities.fromQuery(uri.query),
);
final splitted = Base64Util.decode(uri.userInfo).split(':');
final method = $EncryptionMethodEnum.decode(
splitted[0],
EncryptionMethod.none,
);
final is2022 = splitted.length == 3;
return ShadowSocksShareEntity(
address: uri.host,
port: uri.port,
options: options,
method: method,
password: is2022 ? splitted[1] : null,
clientPassword: splitted[is2022 ? 2 : 1],
remark: remarkFromFragment(uri.fragment, scheme, uri.port),
);
}