@@ -1954,7 +1954,7 @@ QString TryConvertUrlToLocal(QString url) {
19541954 return url;
19551955}
19561956
1957- bool InternalPassportLink (const QString &url) {
1957+ bool InternalPassportOrOAuthLink (const QString &url) {
19581958 const auto urlTrimmed = url.trimmed ();
19591959 if (!urlTrimmed.startsWith (u" tg://" _q, Qt::CaseInsensitive)) {
19601960 return false ;
@@ -1967,23 +1967,33 @@ bool InternalPassportLink(const QString &url) {
19671967 u" ^passport/?\\ ?(.+)(#|$)" _q,
19681968 command,
19691969 matchOptions);
1970+ const auto oauthMatch = regex_match (
1971+ u" ^oauth/?\\ ?(.+)(#|$)" _q,
1972+ command,
1973+ matchOptions);
19701974 const auto usernameMatch = regex_match (
19711975 u" ^resolve/?\\ ?(.+)(#|$)" _q,
19721976 command,
19731977 matchOptions);
1974- const auto usernameValue = usernameMatch->hasMatch ()
1975- ? url_parse_params (
1978+ auto usernameValue = QString ();
1979+ if (usernameMatch->hasMatch ()) {
1980+ const auto params = url_parse_params (
19761981 usernameMatch->captured (1 ),
1977- UrlParamNameTransform::ToLower).value (u" domain" _q)
1978- : QString ();
1982+ UrlParamNameTransform::ToLower);
1983+ usernameValue = params.value (u" domain" _q);
1984+ }
19791985 const auto authLegacy = (usernameValue == u" telegrampassport" _q);
1980- return authMatch->hasMatch () || authLegacy;
1986+ const auto oauthLegacy = (usernameValue == u" oauth" _q);
1987+ return authMatch->hasMatch ()
1988+ || oauthMatch->hasMatch ()
1989+ || authLegacy
1990+ || oauthLegacy;
19811991}
19821992
19831993bool StartUrlRequiresActivate (const QString &url) {
19841994 return Core::App ().passcodeLocked ()
19851995 ? true
1986- : !InternalPassportLink (url);
1996+ : !InternalPassportOrOAuthLink (url);
19871997}
19881998
19891999void ResolveAndShowUniqueGift (
0 commit comments