Add internalLinkTypeStickerSet.expect_custom_emoji.
This commit is contained in:
parent
14989932b7
commit
bb9108ca32
|
@ -4501,8 +4501,10 @@ internalLinkTypeRestorePurchases = InternalLinkType;
|
||||||
//@description The link is a link to application settings
|
//@description The link is a link to application settings
|
||||||
internalLinkTypeSettings = InternalLinkType;
|
internalLinkTypeSettings = InternalLinkType;
|
||||||
|
|
||||||
//@description The link is a link to a sticker set. Call searchStickerSet with the given sticker set name to process the link and show the sticker set @sticker_set_name Name of the sticker set
|
//@description The link is a link to a sticker set. Call searchStickerSet with the given sticker set name to process the link and show the sticker set
|
||||||
internalLinkTypeStickerSet sticker_set_name:string = InternalLinkType;
|
//@sticker_set_name Name of the sticker set
|
||||||
|
//@expect_custom_emoji True, if the sticker set is expected to contain custom emoji
|
||||||
|
internalLinkTypeStickerSet sticker_set_name:string expect_custom_emoji:Bool = InternalLinkType;
|
||||||
|
|
||||||
//@description The link is a link to a theme. TDLib has no theme support yet @theme_name Name of the theme
|
//@description The link is a link to a theme. TDLib has no theme support yet @theme_name Name of the theme
|
||||||
internalLinkTypeTheme theme_name:string = InternalLinkType;
|
internalLinkTypeTheme theme_name:string = InternalLinkType;
|
||||||
|
|
|
@ -493,13 +493,15 @@ class LinkManager::InternalLinkSettings final : public InternalLink {
|
||||||
|
|
||||||
class LinkManager::InternalLinkStickerSet final : public InternalLink {
|
class LinkManager::InternalLinkStickerSet final : public InternalLink {
|
||||||
string sticker_set_name_;
|
string sticker_set_name_;
|
||||||
|
bool expect_custom_emoji_;
|
||||||
|
|
||||||
td_api::object_ptr<td_api::InternalLinkType> get_internal_link_type_object() const final {
|
td_api::object_ptr<td_api::InternalLinkType> get_internal_link_type_object() const final {
|
||||||
return td_api::make_object<td_api::internalLinkTypeStickerSet>(sticker_set_name_);
|
return td_api::make_object<td_api::internalLinkTypeStickerSet>(sticker_set_name_, expect_custom_emoji_);
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit InternalLinkStickerSet(string sticker_set_name) : sticker_set_name_(std::move(sticker_set_name)) {
|
InternalLinkStickerSet(string sticker_set_name, bool expect_custom_emoji)
|
||||||
|
: sticker_set_name_(std::move(sticker_set_name)), expect_custom_emoji_(expect_custom_emoji) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1156,7 +1158,7 @@ unique_ptr<LinkManager::InternalLink> LinkManager::parse_tg_link_query(Slice que
|
||||||
// addstickers?set=<name>
|
// addstickers?set=<name>
|
||||||
// addemoji?set=<name>
|
// addemoji?set=<name>
|
||||||
if (has_arg("set")) {
|
if (has_arg("set")) {
|
||||||
return td::make_unique<InternalLinkStickerSet>(get_arg("set"));
|
return td::make_unique<InternalLinkStickerSet>(get_arg("set"), path[0] == "addemoji");
|
||||||
}
|
}
|
||||||
} else if (path.size() == 1 && path[0] == "setlanguage") {
|
} else if (path.size() == 1 && path[0] == "setlanguage") {
|
||||||
// setlanguage?lang=<name>
|
// setlanguage?lang=<name>
|
||||||
|
@ -1308,7 +1310,7 @@ unique_ptr<LinkManager::InternalLink> LinkManager::parse_t_me_link_query(Slice q
|
||||||
if (path.size() >= 2 && !path[1].empty()) {
|
if (path.size() >= 2 && !path[1].empty()) {
|
||||||
// /addstickers/<name>
|
// /addstickers/<name>
|
||||||
// /addemoji/<name>
|
// /addemoji/<name>
|
||||||
return td::make_unique<InternalLinkStickerSet>(path[1]);
|
return td::make_unique<InternalLinkStickerSet>(path[1], path[0] == "addemoji");
|
||||||
}
|
}
|
||||||
} else if (path[0] == "setlanguage") {
|
} else if (path[0] == "setlanguage") {
|
||||||
if (path.size() >= 2 && !path[1].empty()) {
|
if (path.size() >= 2 && !path[1].empty()) {
|
||||||
|
|
|
@ -214,8 +214,8 @@ TEST(Link, parse_internal_link) {
|
||||||
auto settings = [] {
|
auto settings = [] {
|
||||||
return td::td_api::make_object<td::td_api::internalLinkTypeSettings>();
|
return td::td_api::make_object<td::td_api::internalLinkTypeSettings>();
|
||||||
};
|
};
|
||||||
auto sticker_set = [](const td::string &sticker_set_name) {
|
auto sticker_set = [](const td::string &sticker_set_name, bool expect_custom_emoji) {
|
||||||
return td::td_api::make_object<td::td_api::internalLinkTypeStickerSet>(sticker_set_name);
|
return td::td_api::make_object<td::td_api::internalLinkTypeStickerSet>(sticker_set_name, expect_custom_emoji);
|
||||||
};
|
};
|
||||||
auto theme = [](const td::string &theme_name) {
|
auto theme = [](const td::string &theme_name) {
|
||||||
return td::td_api::make_object<td::td_api::internalLinkTypeTheme>(theme_name);
|
return td::td_api::make_object<td::td_api::internalLinkTypeTheme>(theme_name);
|
||||||
|
@ -608,15 +608,15 @@ TEST(Link, parse_internal_link) {
|
||||||
parse_internal_link("t.me/addstickers?/abcdef", nullptr);
|
parse_internal_link("t.me/addstickers?/abcdef", nullptr);
|
||||||
parse_internal_link("t.me/addstickers/?abcdef", nullptr);
|
parse_internal_link("t.me/addstickers/?abcdef", nullptr);
|
||||||
parse_internal_link("t.me/addstickers/#abcdef", nullptr);
|
parse_internal_link("t.me/addstickers/#abcdef", nullptr);
|
||||||
parse_internal_link("t.me/addstickers/abacaba", sticker_set("abacaba"));
|
parse_internal_link("t.me/addstickers/abacaba", sticker_set("abacaba", false));
|
||||||
parse_internal_link("t.me/addstickers/aba%20aba", sticker_set("aba aba"));
|
parse_internal_link("t.me/addstickers/aba%20aba", sticker_set("aba aba", false));
|
||||||
parse_internal_link("t.me/addstickers/123456a", sticker_set("123456a"));
|
parse_internal_link("t.me/addstickers/123456a", sticker_set("123456a", false));
|
||||||
parse_internal_link("t.me/addstickers/12345678901", sticker_set("12345678901"));
|
parse_internal_link("t.me/addstickers/12345678901", sticker_set("12345678901", false));
|
||||||
parse_internal_link("t.me/addstickers/123456", sticker_set("123456"));
|
parse_internal_link("t.me/addstickers/123456", sticker_set("123456", false));
|
||||||
parse_internal_link("t.me/addstickers/123456/123123/12/31/a/s//21w/?asdas#test", sticker_set("123456"));
|
parse_internal_link("t.me/addstickers/123456/123123/12/31/a/s//21w/?asdas#test", sticker_set("123456", false));
|
||||||
|
|
||||||
parse_internal_link("tg:addstickers?set=abcdef", sticker_set("abcdef"));
|
parse_internal_link("tg:addstickers?set=abcdef", sticker_set("abcdef", false));
|
||||||
parse_internal_link("tg:addstickers?set=abc%30ef", sticker_set("abc0ef"));
|
parse_internal_link("tg:addstickers?set=abc%30ef", sticker_set("abc0ef", false));
|
||||||
parse_internal_link("tg://addstickers?set=", unknown_deep_link("tg://addstickers?set="));
|
parse_internal_link("tg://addstickers?set=", unknown_deep_link("tg://addstickers?set="));
|
||||||
|
|
||||||
parse_internal_link("t.me/addemoji?set=abcdef", nullptr);
|
parse_internal_link("t.me/addemoji?set=abcdef", nullptr);
|
||||||
|
@ -626,15 +626,15 @@ TEST(Link, parse_internal_link) {
|
||||||
parse_internal_link("t.me/addemoji?/abcdef", nullptr);
|
parse_internal_link("t.me/addemoji?/abcdef", nullptr);
|
||||||
parse_internal_link("t.me/addemoji/?abcdef", nullptr);
|
parse_internal_link("t.me/addemoji/?abcdef", nullptr);
|
||||||
parse_internal_link("t.me/addemoji/#abcdef", nullptr);
|
parse_internal_link("t.me/addemoji/#abcdef", nullptr);
|
||||||
parse_internal_link("t.me/addemoji/abacaba", sticker_set("abacaba"));
|
parse_internal_link("t.me/addemoji/abacaba", sticker_set("abacaba", true));
|
||||||
parse_internal_link("t.me/addemoji/aba%20aba", sticker_set("aba aba"));
|
parse_internal_link("t.me/addemoji/aba%20aba", sticker_set("aba aba", true));
|
||||||
parse_internal_link("t.me/addemoji/123456a", sticker_set("123456a"));
|
parse_internal_link("t.me/addemoji/123456a", sticker_set("123456a", true));
|
||||||
parse_internal_link("t.me/addemoji/12345678901", sticker_set("12345678901"));
|
parse_internal_link("t.me/addemoji/12345678901", sticker_set("12345678901", true));
|
||||||
parse_internal_link("t.me/addemoji/123456", sticker_set("123456"));
|
parse_internal_link("t.me/addemoji/123456", sticker_set("123456", true));
|
||||||
parse_internal_link("t.me/addemoji/123456/123123/12/31/a/s//21w/?asdas#test", sticker_set("123456"));
|
parse_internal_link("t.me/addemoji/123456/123123/12/31/a/s//21w/?asdas#test", sticker_set("123456", true));
|
||||||
|
|
||||||
parse_internal_link("tg:addemoji?set=abcdef", sticker_set("abcdef"));
|
parse_internal_link("tg:addemoji?set=abcdef", sticker_set("abcdef", true));
|
||||||
parse_internal_link("tg:addemoji?set=abc%30ef", sticker_set("abc0ef"));
|
parse_internal_link("tg:addemoji?set=abc%30ef", sticker_set("abc0ef", true));
|
||||||
parse_internal_link("tg://addemoji?set=", unknown_deep_link("tg://addemoji?set="));
|
parse_internal_link("tg://addemoji?set=", unknown_deep_link("tg://addemoji?set="));
|
||||||
|
|
||||||
parse_internal_link("t.me/confirmphone?hash=abc%30ef&phone=", nullptr);
|
parse_internal_link("t.me/confirmphone?hash=abc%30ef&phone=", nullptr);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user