@@ -470,6 +470,11 @@ static auto proxy_socks(const td::string &server, td::int32 port, const td::stri
470470 server, port, td::td_api::make_object<td::td_api::proxyTypeSocks5>(username, password)));
471471}
472472
473+ static auto proxy_web (const td::string &server, const td::string &path, const td::string &secret) {
474+ return td::td_api::make_object<td::td_api::internalLinkTypeProxy>(td::td_api::make_object<td::td_api::proxy>(
475+ server, 443 , td::td_api::make_object<td::td_api::proxyTypeWeb>(path, secret)));
476+ }
477+
473478static auto public_chat (const td::string &chat_username, const td::string &draft_text = td::string(),
474479 bool open_profile = false, const td::string &unpaid_messages_token = td::string()) {
475480 return td::td_api::make_object<td::td_api::internalLinkTypePublicChat>(chat_username, draft_text, open_profile,
@@ -1470,6 +1475,52 @@ TEST(Link, parse_internal_link_part3) {
14701475 parse_internal_link (" tg:proxy?server=&port=80&secret=1234567890abcdef1234567890ABCDEF" , unsupported_proxy ());
14711476 parse_internal_link (" tg:proxy?server=%FF&port=80&secret=1234567890abcdef1234567890ABCDEF" , unsupported_proxy ());
14721477
1478+ parse_internal_link (" t.me/webproxy?server=proxy.example.com&secret=8561944064fc730cbfa4473562d8ec59" ,
1479+ proxy_web (" proxy.example.com" , " " , " 8561944064fc730cbfa4473562d8ec59" ));
1480+ parse_internal_link (" https://t.me/webproxy?server=proxy.example.com&port=80&secret=8561944064FC730CBFA4473562D8EC59" ,
1481+ proxy_web (" proxy.example.com" , " " , " 8561944064fc730cbfa4473562d8ec59" ));
1482+ parse_internal_link (" t.me/webproxy?server=HTTPS%3A%2F%2FProxy.Example.COM.&secret=dd8561944064fc730cbfa4473562d8ec59" ,
1483+ proxy_web (" proxy.example.com" , " " , " dd8561944064fc730cbfa4473562d8ec59" ));
1484+ parse_internal_link (
1485+ " t.me/webproxy?server=%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80.%D1%80%D1%84&secret="
1486+ " 8561944064fc730cbfa4473562d8ec59" ,
1487+ proxy_web (" xn--e1afmkfd.xn--p1ai" , " " , " 8561944064fc730cbfa4473562d8ec59" ));
1488+ parse_internal_link (
1489+ " t.me/webproxy?server=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80.%D0%A0%D0%A4&secret="
1490+ " 8561944064fc730cbfa4473562d8ec59" ,
1491+ proxy_web (" xn--e1afmkfd.xn--p1ai" , " " , " 8561944064fc730cbfa4473562d8ec59" ));
1492+ parse_internal_link (" t.me/webproxy?server=proxy.example.com%2Fdobry-cola-super-app&secret=cIVhlEBk_HMMv6RHNWLY7Fk" ,
1493+ proxy_web (" proxy.example.com" , " dobry-cola-super-app" , " 8561944064fc730cbfa4473562d8ec59" ));
1494+ parse_internal_link (" t.me/webproxy?server=proxy.example.com%2Fa%2Fb_c&secret=cN2FYZRAZPxzDL-kRzVi2OxZ" ,
1495+ proxy_web (" proxy.example.com" , " a/b_c" , " dd8561944064fc730cbfa4473562d8ec59" ));
1496+ parse_internal_link (" t.me/webproxy?server=proxy.example.com&secret=cIVhlEBk_HMMv6RHNWLY7Fk" ,
1497+ proxy_web (" proxy.example.com" , " " , " 8561944064fc730cbfa4473562d8ec59" ));
1498+ parse_internal_link (" t.me/webproxy?server=proxy.example.com%2Fapp&secret=8561944064fc730cbfa4473562d8ec59" ,
1499+ unsupported_proxy ());
1500+ parse_internal_link (" t.me/webproxy?server=proxy.example.com&secret=7tAAAAAAAAAAAAAAAAAAAAAAAAcuZ29vZ2xlLmNvbQ" ,
1501+ unsupported_proxy ());
1502+ parse_internal_link (" t.me/webproxy?server=proxy.example.com&secret=de8561944064fc730cbfa4473562d8ec59" ,
1503+ unsupported_proxy ());
1504+ parse_internal_link (" t.me/webproxy?server=1.2.3.4&secret=8561944064fc730cbfa4473562d8ec59" , unsupported_proxy ());
1505+ parse_internal_link (" t.me/webproxy?server=proxy.0x7f&secret=8561944064fc730cbfa4473562d8ec59" , unsupported_proxy ());
1506+ parse_internal_link (" t.me/webproxy?server=localhost&secret=8561944064fc730cbfa4473562d8ec59" , unsupported_proxy ());
1507+ parse_internal_link (" t.me/webproxy?server=proxy.example.com%2F-app&secret=cIVhlEBk_HMMv6RHNWLY7Fk" ,
1508+ unsupported_proxy ());
1509+ parse_internal_link (" t.me/webproxy?server=proxy.example.com%2Fa%2F%2Fb&secret=cIVhlEBk_HMMv6RHNWLY7Fk" ,
1510+ unsupported_proxy ());
1511+ parse_internal_link (" t.me/webproxy?server=proxy.example.com%2Fa.b&secret=cIVhlEBk_HMMv6RHNWLY7Fk" ,
1512+ unsupported_proxy ());
1513+ parse_internal_link (" t.me/webproxy?server=proxy.example.com" , unsupported_proxy ());
1514+ parse_internal_link (" t.me/webproxy" , unsupported_proxy ());
1515+
1516+ parse_internal_link (" tg:webproxy?server=proxy.example.com&secret=8561944064fc730cbfa4473562d8ec59" ,
1517+ proxy_web (" proxy.example.com" , " " , " 8561944064fc730cbfa4473562d8ec59" ));
1518+ parse_internal_link (" tg://webproxy?server=proxy.example.com%2Fdobry-cola-super-app&secret=cIVhlEBk_HMMv6RHNWLY7Fk" ,
1519+ proxy_web (" proxy.example.com" , " dobry-cola-super-app" , " 8561944064fc730cbfa4473562d8ec59" ));
1520+ parse_internal_link (" tg:webproxy?server=proxy.example.com%2Fapp&secret=8561944064fc730cbfa4473562d8ec59" ,
1521+ unsupported_proxy ());
1522+ parse_internal_link (" tg:webproxy" , unsupported_proxy ());
1523+
14731524 parse_internal_link (
14741525 " t.me/"
14751526 " sendgrams?startapp=tonconnect-v__2-id__c745acd825f83bf7ef88d671ea69c90fd1c7e71f78b1079ec8ad3c231fed7a65-trace--"
0 commit comments