Last active
April 2, 2020 03:49
-
-
Save defp/9c65084a051644b55631290bb4f8ab30 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# getQuantumultNodes | |
# https://github.com/geekdada/surgio/blob/cef5c3f2cc672b562942b12cb210418f97ce1225/lib/utils/index.ts#L812 | |
str = File.read!("./dist/quan_subscribe.conf") | |
# str内容示例 surgio生成 | |
# {{ getQuantumultNodes(nodeList, provider) | base64 }} | |
# dm1lc3M6Ly84SitIcmZDZmg3QklTeUJoY0hBdVpuTnpMbkoxYmlCMmJXVnpjeUE5SUhadFpYTnpMR0Z3Y0M1bVlYTXVjblZ1TERFd01EQXNibTl1WlN3aU1UVmhObVl5TVRVNE55MDBNV1ZtTFdJME5UZ3RNbVJsWXpRNE5EazFaRGd4SWl3eU16TXNaM0p2ZFhBOVlXeHBlWFZ1WDNadFpYTnpMRzkyWlhJdGRHeHpQV1poYkhObExHTmxjblJwWm1sallYUmxQVEVzYjJKbWN6MTBZM0FzYjJKbWN5MXdZWFJvUFNJdklpeHZZbVp6TFdobFlXUmxjajBpYUc5emREcGhjSEF1Wm1GekxuSjFibHRTY2wxYlRtNWRkWE5sY2kxaFoyVnVkRHBOYjNwcGJHeGhMelV1TUNBb2FWQm9iMjVsT3lCRFVGVWdhVkJvYjI1bElFOVRJREV5WHpOZk1TQnNhV3RsSUUxaFl5QlBVeUJZS1NCQmNIQnNaVmRsWWt0cGRDODJNRFV1TVM0eE5TQW9TMGhVVFV3c0lHeHBhMlVnUjJWamEyOHBJRTF2WW1sc1pTOHhOVVV4TkRnaQpodHRwOi8vOEorSHNQQ2ZoN2ZwbjZubG03MGdTMVFnZURBdU5DQTlJR2gwZEhBc0lIVndjM1J5WldGdExYQnliM2g1TFdGa1pISmxjM005ZEdWemRDNWhjSEF1WTI5dExDQjFjSE4wY21WaGJTMXdjbTk0ZVMxd2IzSjBQVEV4TVN3Z2RYQnpkSEpsWVcwdGNISnZlSGt0WVhWMGFEMTBjblZsTENCMWNITjBjbVZoYlMxd2NtOTRlUzExYzJWeWJtRnRaVDFvWld4c2IzZHZjbXhrTENCMWNITjBjbVZoYlMxd2NtOTRlUzF3WVhOemQyOXlaRDF3WVhOemQyOXlaQ3dnYjNabGNpMTBiSE05ZEhKMVpTd2dZMlZ5ZEdsbWFXTmhkR1U5TVE9PQpodHRwOi8vOEorSHIvQ2ZoN1htbDZYbW5Ld2dRVmRUSUhnd0xqUWdQU0JvZEhSd0xDQjFjSE4wY21WaGJTMXdjbTk0ZVMxaFpHUnlaWE56UFhSbGMzUXVZWEJ3TG1OdmJTd2dkWEJ6ZEhKbFlXMHRjSEp2ZUhrdGNHOXlkRDB4TVRFc0lIVndjM1J5WldGdExYQnliM2g1TFdGMWRHZzlkSEoxWlN3Z2RYQnpkSEpsWVcwdGNISnZlSGt0ZFhObGNtNWhiV1U5YUdWc2JHOTNiM0pzWkN3Z2RYQnpkSEpsWVcwdGNISnZlSGt0Y0dGemMzZHZjbVE5Y0dGemMzZHZjbVFzSUc5MlpYSXRkR3h6UFhSeWRXVXNJR05sY25ScFptbGpZWFJsUFRFPQpodHRwOi8vOEorUHMrKzRqK0tBamZDZmpJamxqN0RtdWI0Z1FWQlVSeUI0TUM0MElEMGdhSFIwY0N3Z2RYQnpkSEpsWVcwdGNISnZlSGt0WVdSa2NtVnpjejEwWlhOMExtRndjQzVqYjIwc0lIVndjM1J5WldGdExYQnliM2g1TFhCdmNuUTlNVEV4TENCMWNITjBjbVZoYlMxd2NtOTRlUzFoZFhSb1BYUnlkV1VzSUhWd2MzUnlaV0Z0TFhCeWIzaDVMWFZ6WlhKdVlXMWxQV2hsYkd4dmQyOXliR1FzSUhWd2MzUnlaV0Z0TFhCeWIzaDVMWEJoYzNOM2IzSmtQWEJoYzNOM2IzSmtMQ0J2ZG1WeUxYUnNjejEwY25WbExDQmpaWEowYVdacFkyRjBaVDB4Cmh0dHA6Ly84SitQcysrNGorS0FqZkNmaklqbGo3RG11YjRnUVZCVVJ6SWdlREF1TkNBOUlHaDBkSEFzSUhWd2MzUnlaV0Z0TFhCeWIzaDVMV0ZrWkhKbGMzTTlkR1Z6ZEM1aGNIQXVZMjl0TENCMWNITjBjbVZoYlMxd2NtOTRlUzF3YjNKMFBURXhNU3dnZFhCemRISmxZVzB0Y0hKdmVIa3RZWFYwYUQxMGNuVmxMQ0IxY0hOMGNtVmhiUzF3Y205NGVTMTFjMlZ5Ym1GdFpUMW9aV3hzYjNkdmNteGtMQ0IxY0hOMGNtVmhiUzF3Y205NGVTMXdZWE56ZDI5eVpEMXdZWE56ZDI5eVpDd2diM1psY2kxMGJITTlkSEoxWlN3Z1kyVnlkR2xtYVdOaGRHVTlNUT09Cmh0dHA6Ly84SitIcmZDZmg3RHBwcG5tdUs4Z1NFdENUaUI0TUM0MElEMGdhSFIwY0N3Z2RYQnpkSEpsWVcwdGNISnZlSGt0WVdSa2NtVnpjejEwWlhOMExtRndjQzVqYjIwc0lIVndjM1J5WldGdExYQnliM2g1TFhCdmNuUTlNVEV4TENCMWNITjBjbVZoYlMxd2NtOTRlUzFoZFhSb1BYUnlkV1VzSUhWd2MzUnlaV0Z0TFhCeWIzaDVMWFZ6WlhKdVlXMWxQV2hsYkd4dmQyOXliR1FzSUhWd2MzUnlaV0Z0TFhCeWIzaDVMWEJoYzNOM2IzSmtQWEJoYzNOM2IzSmtMQ0J2ZG1WeUxYUnNjejEwY25WbExDQmpaWEowYVdacFkyRjBaVDB4Cmh0dHA6Ly84SitIcmZDZmg3RHBwcG5tdUs4Z1NFdENUaklnZURBdU5DQTlJR2gwZEhBc0lIVndjM1J5WldGdExYQnliM2g1TFdGa1pISmxjM005ZEdWemRDNWhjSEF1WTI5dExDQjFjSE4wY21WaGJTMXdjbTk0ZVMxd2IzSjBQVEV4TVN3Z2RYQnpkSEpsWVcwdGNISnZlSGt0WVhWMGFEMTBjblZsTENCMWNITjBjbVZoYlMxd2NtOTRlUzExYzJWeWJtRnRaVDFvWld4c2IzZHZjbXhrTENCMWNITjBjbVZoYlMxd2NtOTRlUzF3WVhOemQyOXlaRDF3WVhOemQyOXlaQ3dnYjNabGNpMTBiSE05ZEhKMVpTd2dZMlZ5ZEdsbWFXTmhkR1U5TVE9PQ== | |
{:ok, text} = Base.decode64 str | |
all_nodes = String.split(text, "\n") | |
Enum.map(all_nodes, fn node -> IO.puts(node) end) | |
# 示例输出 | |
# vmess://8J+HrfCfh7BISyBhcHAuZnNzLnJ1biB2bWVzcyA9IHZtZXNzLGFwcC5mYXMucnVuLDEwMDAsbm9uZSwiMTVhNmYyMTU4Ny00MWVmLWI0NTgtMmRlYzQ4NDk1ZDgxIiwyMzMsZ3JvdXA9YWxpeXVuX3ZtZXNzLG92ZXItdGxzPWZhbHNlLGNlcnRpZmljYXRlPTEsb2Jmcz10Y3Asb2Jmcy1wYXRoPSIvIixvYmZzLWhlYWRlcj0iaG9zdDphcHAuZmFzLnJ1bltScl1bTm5ddXNlci1hZ2VudDpNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDEyXzNfMSBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIE1vYmlsZS8xNUUxNDgi | |
# http://8J+HsPCfh7fpn6nlm70gS1QgeDAuNCA9IGh0dHAsIHVwc3RyZWFtLXByb3h5LWFkZHJlc3M9dGVzdC5hcHAuY29tLCB1cHN0cmVhbS1wcm94eS1wb3J0PTExMSwgdXBzdHJlYW0tcHJveHktYXV0aD10cnVlLCB1cHN0cmVhbS1wcm94eS11c2VybmFtZT1oZWxsb3dvcmxkLCB1cHN0cmVhbS1wcm94eS1wYXNzd29yZD1wYXNzd29yZCwgb3Zlci10bHM9dHJ1ZSwgY2VydGlmaWNhdGU9MQ== | |
# http://8J+Hr/Cfh7Xml6XmnKwgQVdTIHgwLjQgPSBodHRwLCB1cHN0cmVhbS1wcm94eS1hZGRyZXNzPXRlc3QuYXBwLmNvbSwgdXBzdHJlYW0tcHJveHktcG9ydD0xMTEsIHVwc3RyZWFtLXByb3h5LWF1dGg9dHJ1ZSwgdXBzdHJlYW0tcHJveHktdXNlcm5hbWU9aGVsbG93b3JsZCwgdXBzdHJlYW0tcHJveHktcGFzc3dvcmQ9cGFzc3dvcmQsIG92ZXItdGxzPXRydWUsIGNlcnRpZmljYXRlPTE= | |
# http://8J+Ps++5j+KAjfCfjIjlj7Dmub4gQVBURyB4MC40ID0gaHR0cCwgdXBzdHJlYW0tcHJveHktYWRkcmVzcz10ZXN0LmFwcC5jb20sIHVwc3RyZWFtLXByb3h5LXBvcnQ9MTExLCB1cHN0cmVhbS1wcm94eS1hdXRoPXRydWUsIHVwc3RyZWFtLXByb3h5LXVzZXJuYW1lPWhlbGxvd29ybGQsIHVwc3RyZWFtLXByb3h5LXBhc3N3b3JkPXBhc3N3b3JkLCBvdmVyLXRscz10cnVlLCBjZXJ0aWZpY2F0ZT0x | |
# http://8J+Ps++4j+KAjfCfjIjlj7Dmub4gQVBURzIgeDAuNCA9IGh0dHAsIHVwc3RyZWFtLXByb3h5LWFkZHJlc3M9dGVzdC5hcHAuY29tLCB1cHN0cmVhbS1wcm94eS1wb3J0PTExMSwgdXBzdHJlYW0tcHJveHktYXV0aD10cnVlLCB1cHN0cmVhbS1wcm94eS11c2VybmFtZT1oZWxsb3dvcmxkLCB1cHN0cmVhbS1wcm94eS1wYXNzd29yZD1wYXNzd29yZCwgb3Zlci10bHM9dHJ1ZSwgY2VydGlmaWNhdGU9MQ== | |
# http://8J+HrfCfh7DpppnmuK8gSEtCTiB4MC40ID0gaHR0cCwgdXBzdHJlYW0tcHJveHktYWRkcmVzcz10ZXN0LmFwcC5jb20sIHVwc3RyZWFtLXByb3h5LXBvcnQ9MTExLCB1cHN0cmVhbS1wcm94eS1hdXRoPXRydWUsIHVwc3RyZWFtLXByb3h5LXVzZXJuYW1lPWhlbGxvd29ybGQsIHVwc3RyZWFtLXByb3h5LXBhc3N3b3JkPXBhc3N3b3JkLCBvdmVyLXRscz10cnVlLCBjZXJ0aWZpY2F0ZT0x | |
# http://8J+HrfCfh7DpppnmuK8gSEtCTjIgeDAuNCA9IGh0dHAsIHVwc3RyZWFtLXByb3h5LWFkZHJlc3M9dGVzdC5hcHAuY29tLCB1cHN0cmVhbS1wcm94eS1wb3J0PTExMSwgdXBzdHJlYW0tcHJveHktYXV0aD10cnVlLCB1cHN0cmVhbS1wcm94eS11c2VybmFtZT1oZWxsb3dvcmxkLCB1cHN0cmVhbS1wcm94eS1wYXNzd29yZD1wYXNzd29yZCwgb3Zlci10bHM9dHJ1ZSwgY2VydGlmaWNhdGU9MQ== | |
Enum.map(all_nodes, fn node -> | |
case node do | |
"vmess://" <> vmess_str -> | |
IO.puts "vmess 协议: " <> inspect(Base.decode64(vmess_str, padding: false)) | |
"http://" <> http_str -> | |
IO.puts "http协议: " <> inspect(Base.decode64(http_str, padding: false)) | |
end | |
end ) | |
示例输出 | |
# vmess 协议: {:ok, "🇭🇰HK app.fss.run vmess = vmess,app.fas.run,1000,none,\"15a6f21587-41ef-b458-2dec48495d81\",233,group=aliyun_vmess,over-tls=false,certificate=1,obfs=tcp,obfs-path=\"/\",obfs-header=\"host:app.fas.run[Rr][Nn]user-agent:Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148\""} | |
# http协议: {:ok, "🇰🇷韩国 KT x0.4 = http, upstream-proxy-address=test.app.com, upstream-proxy-port=111, upstream-proxy-auth=true, upstream-proxy-username=helloworld, upstream-proxy-password=password, over-tls=true, certificate=1"} | |
# http协议: {:ok, "🇯🇵日本 AWS x0.4 = http, upstream-proxy-address=test.app.com, upstream-proxy-port=111, upstream-proxy-auth=true, upstream-proxy-username=helloworld, upstream-proxy-password=password, over-tls=true, certificate=1"} | |
# http协议: {:ok, "🏳️🌈台湾 APTG x0.4 = http, upstream-proxy-address=test.app.com, upstream-proxy-port=111, upstream-proxy-auth=true, upstream-proxy-username=helloworld, upstream-proxy-password=password, over-tls=true, certificate=1"} | |
# http协议: {:ok, "🏳️🌈台湾 APTG2 x0.4 = http, upstream-proxy-address=test.app.com, upstream-proxy-port=111, upstream-proxy-auth=true, upstream-proxy-username=helloworld, upstream-proxy-password=password, over-tls=true, certificate=1"} | |
# http协议: {:ok, "🇭🇰香港 HKBN x0.4 = http, upstream-proxy-address=test.app.com, upstream-proxy-port=111, upstream-proxy-auth=true, upstream-proxy-username=helloworld, upstream-proxy-password=password, over-tls=true, certificate=1"} | |
# http协议: {:ok, "🇭🇰香港 HKBN2 x0.4 = http, upstream-proxy-address=test.app.com, upstream-proxy-port=111, upstream-proxy-auth=true, upstream-proxy-username=helloworld, upstream-proxy-password=password, over-tls=true, certificate=1"} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment