Handle auction links.
This commit is contained in:
@@ -1633,6 +1633,21 @@ bool ResolveUniqueGift(
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ResolveGiftAuction(
|
||||
Window::SessionController *controller,
|
||||
const Match &match,
|
||||
const QVariant &context) {
|
||||
if (!controller) {
|
||||
return false;
|
||||
}
|
||||
const auto slug = match->captured(1);
|
||||
if (slug.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
controller->showStarGiftAuction(slug);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ResolveConferenceCall(
|
||||
Window::SessionController *controller,
|
||||
const Match &match,
|
||||
@@ -1770,6 +1785,10 @@ const std::vector<LocalUrlHandler> &LocalUrlHandlers() {
|
||||
u"^nft/?\\?slug=([a-zA-Z0-9\\.\\_\\-]+)(&|$)"_q,
|
||||
ResolveUniqueGift
|
||||
},
|
||||
{
|
||||
u"^stargift_auction/?\\?slug=([a-zA-Z0-9\\.\\_\\-]+)(&|$)"_q,
|
||||
ResolveGiftAuction
|
||||
},
|
||||
{
|
||||
u"^call/?\\?slug=([a-zA-Z0-9\\.\\_\\-]+)(&|$)"_q,
|
||||
ResolveConferenceCall
|
||||
@@ -1942,6 +1961,9 @@ QString TryConvertUrlToLocal(QString url) {
|
||||
} else if (const auto nftMatch = regex_match(u"^nft/([a-zA-Z0-9\\.\\_\\-]+)(\\?|$)"_q, query, matchOptions)) {
|
||||
const auto slug = nftMatch->captured(1);
|
||||
return u"tg://nft?slug="_q + slug;
|
||||
} else if (const auto auctionMatch = regex_match(u"^auction/([a-zA-Z0-9\\.\\_\\-]+)(\\?|$)"_q, query, matchOptions)) {
|
||||
const auto slug = auctionMatch->captured(1);
|
||||
return u"tg://stargift_auction?slug="_q + slug;
|
||||
} else if (const auto callMatch = regex_match(u"^call/([a-zA-Z0-9\\.\\_\\-]+)(\\?|$)"_q, query, matchOptions)) {
|
||||
const auto slug = callMatch->captured(1);
|
||||
return u"tg://call?slug="_q + slug;
|
||||
|
||||
Reference in New Issue
Block a user