https://github.com/HMBSbige/ShadowsocksR-Windows/wiki/SSR-QRcode-scheme
()
| 64 | |
| 65 | // https://github.com/HMBSbige/ShadowsocksR-Windows/wiki/SSR-QRcode-scheme |
| 66 | func (ssr ShadowsocksR) Link() (link string) { |
| 67 | payload := fmt.Sprintf("%s:%d:%s:%s:%s:%s", |
| 68 | ssr.Server, ssr.Port, ssr.Protocol, ssr.Cipher, ssr.Obfs, tool.Base64EncodeString(ssr.Password, true)) |
| 69 | query := url.Values{} |
| 70 | query.Add("obfsparam", tool.Base64EncodeString(ssr.ObfsParam, true)) |
| 71 | query.Add("protoparam", tool.Base64EncodeString(ssr.ProtocolParam, true)) |
| 72 | query.Add("remarks", tool.Base64EncodeString(ssr.Name, true)) |
| 73 | query.Add("group", tool.Base64EncodeString("proxy.tgbot.co", true)) |
| 74 | payload = tool.Base64EncodeString(fmt.Sprintf("%s/?%s", payload, query.Encode()), true) |
| 75 | return fmt.Sprintf("ssr://%s", payload) |
| 76 | } |
| 77 | |
| 78 | func ParseSSRLink(link string) (*ShadowsocksR, error) { |
| 79 | if !strings.HasPrefix(link, "ssr") { |
nothing calls this directly
no test coverage detected