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
|
||||
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
|
||||
internalLinkTypeStickerSet sticker_set_name:string = 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
|
||||
//@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
|
||||
internalLinkTypeTheme theme_name:string = InternalLinkType;
|
||||
|
@ -493,13 +493,15 @@ class LinkManager::InternalLinkSettings final : public InternalLink {
|
||||
|
||||
class LinkManager::InternalLinkStickerSet final : public InternalLink {
|
||||
string sticker_set_name_;
|
||||
bool expect_custom_emoji_;
|
||||
|
||||
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:
|
||||
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>
|
||||
// addemoji?set=<name>
|
||||
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") {
|
||||
// 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()) {
|
||||
// /addstickers/<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") {
|
||||
if (path.size() >= 2 && !path[1].empty()) {
|
||||
|
@ -214,8 +214,8 @@ TEST(Link, parse_internal_link) {
|
||||
auto settings = [] {
|
||||
return td::td_api::make_object<td::td_api::internalLinkTypeSettings>();
|
||||
};
|
||||
auto sticker_set = [](const td::string &sticker_set_name) {
|
||||
return td::td_api::make_object<td::td_api::internalLinkTypeStickerSet>(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, expect_custom_emoji);
|
||||
};
|
||||
auto theme = [](const td::string &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/abacaba", sticker_set("abacaba"));
|
||||
parse_internal_link("t.me/addstickers/aba%20aba", sticker_set("aba aba"));
|
||||
parse_internal_link("t.me/addstickers/123456a", sticker_set("123456a"));
|
||||
parse_internal_link("t.me/addstickers/12345678901", sticker_set("12345678901"));
|
||||
parse_internal_link("t.me/addstickers/123456", sticker_set("123456"));
|
||||
parse_internal_link("t.me/addstickers/123456/123123/12/31/a/s//21w/?asdas#test", sticker_set("123456"));
|
||||
parse_internal_link("t.me/addstickers/abacaba", sticker_set("abacaba", false));
|
||||
parse_internal_link("t.me/addstickers/aba%20aba", sticker_set("aba aba", false));
|
||||
parse_internal_link("t.me/addstickers/123456a", sticker_set("123456a", false));
|
||||
parse_internal_link("t.me/addstickers/12345678901", sticker_set("12345678901", false));
|
||||
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", false));
|
||||
|
||||
parse_internal_link("tg:addstickers?set=abcdef", sticker_set("abcdef"));
|
||||
parse_internal_link("tg:addstickers?set=abc%30ef", sticker_set("abc0ef"));
|
||||
parse_internal_link("tg:addstickers?set=abcdef", sticker_set("abcdef", false));
|
||||
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("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/abacaba", sticker_set("abacaba"));
|
||||
parse_internal_link("t.me/addemoji/aba%20aba", sticker_set("aba aba"));
|
||||
parse_internal_link("t.me/addemoji/123456a", sticker_set("123456a"));
|
||||
parse_internal_link("t.me/addemoji/12345678901", sticker_set("12345678901"));
|
||||
parse_internal_link("t.me/addemoji/123456", sticker_set("123456"));
|
||||
parse_internal_link("t.me/addemoji/123456/123123/12/31/a/s//21w/?asdas#test", sticker_set("123456"));
|
||||
parse_internal_link("t.me/addemoji/abacaba", sticker_set("abacaba", true));
|
||||
parse_internal_link("t.me/addemoji/aba%20aba", sticker_set("aba aba", true));
|
||||
parse_internal_link("t.me/addemoji/123456a", sticker_set("123456a", true));
|
||||
parse_internal_link("t.me/addemoji/12345678901", sticker_set("12345678901", true));
|
||||
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", true));
|
||||
|
||||
parse_internal_link("tg:addemoji?set=abcdef", sticker_set("abcdef"));
|
||||
parse_internal_link("tg:addemoji?set=abc%30ef", sticker_set("abc0ef"));
|
||||
parse_internal_link("tg:addemoji?set=abcdef", sticker_set("abcdef", true));
|
||||
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("t.me/confirmphone?hash=abc%30ef&phone=", nullptr);
|
||||
|
Loading…
x
Reference in New Issue
Block a user