Skip to content

Commit 3f2b01a

Browse files
committed
Add Surge proxy list subscription format
1 parent b18622a commit 3f2b01a

5 files changed

Lines changed: 336 additions & 15 deletions

File tree

YtFlowApp/CoreProxy.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ namespace winrt::YtFlowApp::implementation
7676
return proxyName;
7777
}
7878
PluginDecodeResult Sip002Decoder::DecodeProtocol(ParsedUri const &uri, ProxyPlugin &plugin,
79-
std::string_view tcpNext, std::string_view udpNext)
79+
std::string_view tcpNext, std::string_view udpNext) const
8080
{
8181
plugin.plugin = std::string(SS_PLUGIN_NAME);
8282
std::string userinfo;
@@ -164,7 +164,7 @@ namespace winrt::YtFlowApp::implementation
164164
return PluginDecodeResult::Success;
165165
}
166166
PluginDecodeResult Sip002Decoder::DecodeObfs(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
167-
std::string_view)
167+
std::string_view) const
168168
{
169169
std::string empty{};
170170
auto const &param = uri.GetQueryValue("plugin").value_or(std::ref(empty)).get();
@@ -289,7 +289,7 @@ namespace winrt::YtFlowApp::implementation
289289
return proxyName;
290290
}
291291
PluginDecodeResult TrojanDecoder::DecodeProtocol(ParsedUri const &uri, ProxyPlugin &plugin,
292-
std::string_view tcpNext, std::string_view)
292+
std::string_view tcpNext, std::string_view) const
293293
{
294294
plugin.plugin = std::string(TROJAN_PLUGIN_NAME);
295295
std::string userinfo(UriUnescape(std::string(uri.userInfo)));
@@ -335,7 +335,7 @@ namespace winrt::YtFlowApp::implementation
335335
return alpns;
336336
}
337337
PluginDecodeResult TrojanDecoder::DecodeTls(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
338-
std::string_view)
338+
std::string_view) const
339339
{
340340
nlohmann::json tlsParam{{"next", tcpNext}};
341341
auto const allowInsecureParam = uri.GetQueryValue("allowInsecure"), peerParam = uri.GetQueryValue("peer"),
@@ -377,7 +377,7 @@ namespace winrt::YtFlowApp::implementation
377377
return proxyName;
378378
}
379379
PluginDecodeResult Socks5Decoder::DecodeProtocol(ParsedUri const &uri, ProxyPlugin &plugin,
380-
std::string_view tcpNext, std::string_view udpNext)
380+
std::string_view tcpNext, std::string_view udpNext) const
381381
{
382382
plugin.plugin = std::string(SOCKS5_PLUGIN_NAME);
383383
nlohmann::json userDoc = nullptr, passDoc = nullptr;
@@ -430,7 +430,7 @@ namespace winrt::YtFlowApp::implementation
430430
return proxyName;
431431
}
432432
PluginDecodeResult HttpDecoder::DecodeProtocol(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
433-
std::string_view)
433+
std::string_view) const
434434
{
435435
plugin.plugin = std::string(HTTP_PROXY_PLUGIN_NAME);
436436
nlohmann::json userDoc = nlohmann::json::binary_t(std::vector<uint8_t>()),

YtFlowApp/CoreProxyImpl.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,10 @@ namespace winrt::YtFlowApp::implementation
9090

9191
std::string DecodeName(ParsedUri const &uri);
9292
PluginDecodeResult DecodeProtocol(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
93-
std::string_view udpNext);
93+
std::string_view udpNext) const;
9494
PluginDecodeResult DecodeRedir(ParsedUri const &uri, std::string &host, uint16_t &port);
9595
PluginDecodeResult DecodeObfs(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
96-
std::string_view udpNext);
96+
std::string_view udpNext) const;
9797
PluginDecodeResult DecodeTls(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
9898
std::string_view udpNext);
9999
PluginDecodeResult DecodeUdp(ParsedUri const &uri);
@@ -120,19 +120,19 @@ namespace winrt::YtFlowApp::implementation
120120
{
121121
std::string DecodeName(ParsedUri const &uri);
122122
PluginDecodeResult DecodeProtocol(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
123-
std::string_view udpNext);
123+
std::string_view udpNext) const;
124124
PluginDecodeResult DecodeRedir(ParsedUri const &uri, std::string &host, uint16_t &port);
125125
PluginDecodeResult DecodeObfs(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
126126
std::string_view udpNext); // TODO: obfs
127127
PluginDecodeResult DecodeTls(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
128-
std::string_view udpNext);
128+
std::string_view udpNext) const;
129129
PluginDecodeResult DecodeUdp(ParsedUri const &uri);
130130
};
131131
struct Socks5Decoder
132132
{
133133
std::string DecodeName(ParsedUri const &uri);
134134
PluginDecodeResult DecodeProtocol(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
135-
std::string_view udpNext);
135+
std::string_view udpNext) const;
136136
PluginDecodeResult DecodeRedir(ParsedUri const &uri, std::string &host, uint16_t &port);
137137
PluginDecodeResult DecodeObfs(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
138138
std::string_view udpNext); // TODO: obfs
@@ -144,7 +144,7 @@ namespace winrt::YtFlowApp::implementation
144144
{
145145
std::string DecodeName(ParsedUri const &uri);
146146
PluginDecodeResult DecodeProtocol(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
147-
std::string_view udpNext);
147+
std::string_view udpNext) const;
148148
PluginDecodeResult DecodeRedir(ParsedUri const &uri, std::string &host, uint16_t &port);
149149
PluginDecodeResult DecodeObfs(ParsedUri const &uri, ProxyPlugin &plugin, std::string_view tcpNext,
150150
std::string_view udpNext); // TODO: obfs

0 commit comments

Comments
 (0)