本人在Mac和Android使用shadowsocks的过程中,遇到一个问题,同事用的window机器,把shadowsocks配置文件gui-config.json发给我以后,我查了一下Mac版竟然没有批量导入功能。查看了一些资料后,决定使用批量生成ssr链接这个方案,绕行完成批量导入。
分享代码供大家参考:
public class Practice extends SourceCode {
public static void main(String[] args) {
String ssr = "%s:%s:origin:%s:plain:%s/?obfsparam=&protoparam=&remarks=%s&group=";
String s = WriteRead.readTextByString(LONG_Path + "0");
JSONArray configs = JSONObject.fromObject(s).getJSONArray("configs");
for (int i = 0; i < configs.size(); i++) {
JSONObject conf = configs.getJSONObject(i);
String server = conf.getString("server");
String server_port = conf.getString("server_port");
String password = conf.getString("password");
String method = conf.getString("method");
String remarks = conf.getString("remarks");
String timeout = conf.getString("timeout");
String format = String.format(ssr, server, server_port, method, base64Encode(password), base64Encode(remarks));
output("ssr://" + base64Encode(format));
}
}
/**
* 对本文进行base64解码,方法默认ISO_8859_1
*
* @param text
* @return
*/
public static String base64Decode(String text) {
try {
return new String(Base64.getDecoder().decode(text));
} catch (Exception e) {
output("base64解码失败!", e);
return EMPTY;
}
}
/**
* 对本文进行base64转码,方法默认了utf8
*
* @param text
* @return
*/
public static String base64Encode(String text) {
return base64Encode(text,UTF_8)
}
/**
* 对本文进行base64转码,编码格式自定义
*
* @param text
* @param charset
* @return
*/
public static String base64Encode(String text, Charset charset) {
try {
return new String(Base64.getEncoder().encode(text.getBytes(charset)));
} catch (Exception e) {
output("base64转码失败!", e);
return EMPTY;
}
}
}
欢迎有兴趣的朋友一起交流:群号:340964272