diff options
| author | levlam <levlam@telegram.org> | 2024-12-10 18:20:43 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2024-12-10 18:20:43 +0300 |
| commit | 66892a6de354c5f6aeb33a6619e40cdaf2ed52a8 (patch) | |
| tree | deb103e0c3cb54f9b3e60d5f5aaa7724a6fb054f /td/telegram/NotificationManager.cpp | |
| parent | 437e7f9ab9696d186585f1d466dbdfbf93298804 (diff) | |
Use FlatHashMap in convert_loc_key.
Diffstat (limited to 'td/telegram/NotificationManager.cpp')
| -rw-r--r-- | td/telegram/NotificationManager.cpp | 338 |
1 files changed, 76 insertions, 262 deletions
diff --git a/td/telegram/NotificationManager.cpp b/td/telegram/NotificationManager.cpp index a8bdbd9fd..98e3a9d20 100644 --- a/td/telegram/NotificationManager.cpp +++ b/td/telegram/NotificationManager.cpp @@ -2814,268 +2814,82 @@ void NotificationManager::process_push_notification(string payload, Promise<Unit } string NotificationManager::convert_loc_key(const string &loc_key) { - if (loc_key.size() <= 8) { - if (loc_key == "MESSAGES" || loc_key == "ALBUM") { - return "MESSAGES"; - } - return string(); - } - switch (loc_key[8]) { - case 'A': - if (loc_key == "PINNED_GAME") { - return "PINNED_MESSAGE_GAME"; - } - if (loc_key == "PINNED_GAME_SCORE") { - return "PINNED_MESSAGE_GAME_SCORE"; - } - if (loc_key == "CHAT_CREATED") { - return "MESSAGE_BASIC_GROUP_CHAT_CREATE"; - } - if (loc_key == "MESSAGE_AUDIO") { - return "MESSAGE_VOICE_NOTE"; - } - if (loc_key == "PINNED_PAID_MEDIA") { - return "PINNED_MESSAGE_PAID_MEDIA"; - } - break; - case 'C': - if (loc_key == "MESSAGE_CONTACT") { - return "MESSAGE_CONTACT"; - } - break; - case 'D': - if (loc_key == "MESSAGE_DOC") { - return "MESSAGE_DOCUMENT"; - } - if (loc_key == "MESSAGE_DOCS") { - return "MESSAGE_DOCUMENTS"; - } - if (loc_key == "ENCRYPTED_MESSAGE") { - return "MESSAGE"; - } - break; - case 'E': - if (loc_key == "PINNED_GEO") { - return "PINNED_MESSAGE_LOCATION"; - } - if (loc_key == "PINNED_GEOLIVE") { - return "PINNED_MESSAGE_LIVE_LOCATION"; - } - if (loc_key == "CHAT_DELETE_MEMBER") { - return "MESSAGE_CHAT_DELETE_MEMBER"; - } - if (loc_key == "CHAT_DELETE_YOU") { - return "MESSAGE_CHAT_DELETE_MEMBER_YOU"; - } - if (loc_key == "PINNED_TEXT") { - return "PINNED_MESSAGE_TEXT"; - } - break; - case 'F': - if (loc_key == "MESSAGE_FWDS") { - return "MESSAGE_FORWARDS"; - } - break; - case 'G': - if (loc_key == "MESSAGE_GAME") { - return "MESSAGE_GAME"; - } - if (loc_key == "MESSAGE_GAME_SCORE") { - return "MESSAGE_GAME_SCORE"; - } - if (loc_key == "MESSAGE_GEO") { - return "MESSAGE_LOCATION"; - } - if (loc_key == "MESSAGE_GEOLIVE") { - return "MESSAGE_LIVE_LOCATION"; - } - if (loc_key == "MESSAGE_GIF") { - return "MESSAGE_ANIMATION"; - } - if (loc_key == "MESSAGE_GIFTCODE") { - return "MESSAGE_GIFTCODE"; - } - if (loc_key == "MESSAGE_GIVEAWAY") { - return "MESSAGE_GIVEAWAY"; - } - if (loc_key == "MESSAGE_GIVEAWAY_STARS") { - return "MESSAGE_GIVEAWAY_STARS"; - } - break; - case 'H': - if (loc_key == "PINNED_PHOTO") { - return "PINNED_MESSAGE_PHOTO"; - } - break; - case 'I': - if (loc_key == "PINNED_VIDEO") { - return "PINNED_MESSAGE_VIDEO"; - } - if (loc_key == "PINNED_GIF") { - return "PINNED_MESSAGE_ANIMATION"; - } - if (loc_key == "PINNED_GIVEAWAY") { - return "PINNED_MESSAGE_GIVEAWAY"; - } - if (loc_key == "PINNED_GIVEAWAY_STARS") { - return "PINNED_MESSAGE_GIVEAWAY_STARS"; - } - if (loc_key == "MESSAGE_INVOICE") { - return "MESSAGE_INVOICE"; - } - break; - case 'J': - if (loc_key == "CONTACT_JOINED") { - return "MESSAGE_CONTACT_REGISTERED"; - } - break; - case 'L': - if (loc_key == "CHAT_TITLE_EDITED") { - return "MESSAGE_CHAT_CHANGE_TITLE"; - } - break; - case 'N': - if (loc_key == "CHAT_JOINED") { - return "MESSAGE_CHAT_JOIN_BY_LINK"; - } - if (loc_key == "MESSAGE_NOTEXT") { - return "MESSAGE"; - } - if (loc_key == "MESSAGE_NOTHEME") { - return "MESSAGE_CHAT_CHANGE_THEME"; - } - if (loc_key == "PINNED_INVOICE") { - return "PINNED_MESSAGE_INVOICE"; - } - break; - case 'O': - if (loc_key == "PINNED_DOC") { - return "PINNED_MESSAGE_DOCUMENT"; - } - if (loc_key == "PINNED_POLL") { - return "PINNED_MESSAGE_POLL"; - } - if (loc_key == "PINNED_CONTACT") { - return "PINNED_MESSAGE_CONTACT"; - } - if (loc_key == "PINNED_NOTEXT") { - return "PINNED_MESSAGE"; - } - if (loc_key == "PINNED_ROUND") { - return "PINNED_MESSAGE_VIDEO_NOTE"; - } - break; - case 'P': - if (loc_key == "MESSAGE_PHOTO") { - return "MESSAGE_PHOTO"; - } - if (loc_key == "MESSAGE_PHOTOS") { - return "MESSAGE_PHOTOS"; - } - if (loc_key == "MESSAGE_PHOTO_SECRET") { - return "MESSAGE_SECRET_PHOTO"; - } - if (loc_key == "MESSAGE_PLAYLIST") { - return "MESSAGE_AUDIOS"; - } - if (loc_key == "MESSAGE_POLL") { - return "MESSAGE_POLL"; - } - if (loc_key == "MESSAGE_PAID_MEDIA") { - return "MESSAGE_PAID_MEDIA"; - } - break; - case 'Q': - if (loc_key == "MESSAGE_QUIZ") { - return "MESSAGE_QUIZ"; - } - break; - case 'R': - if (loc_key == "MESSAGE_ROUND") { - return "MESSAGE_VIDEO_NOTE"; - } - if (loc_key == "MESSAGE_RECURRING_PAY") { - return "MESSAGE_RECURRING_PAYMENT"; - } - break; - case 'S': - if (loc_key == "MESSAGE_SAME_WALLPAPER") { - return "MESSAGE_SAME_WALLPAPER"; - } - if (loc_key == "MESSAGE_SCREENSHOT") { - return "MESSAGE_SCREENSHOT_TAKEN"; - } - if (loc_key == "MESSAGE_STARGIFT") { - return "MESSAGE_STARGIFT"; - } - if (loc_key == "MESSAGE_STICKER") { - return "MESSAGE_STICKER"; - } - if (loc_key == "MESSAGE_STORY") { - return "MESSAGE_STORY"; - } - if (loc_key == "MESSAGE_SUGGEST_PHOTO") { - return "MESSAGE_SUGGEST_PHOTO"; - } - break; - case 'T': - if (loc_key == "CHAT_LEFT") { - return "MESSAGE_CHAT_DELETE_MEMBER_LEFT"; - } - if (loc_key == "MESSAGE_TEXT") { - return "MESSAGE_TEXT"; - } - if (loc_key == "PINNED_STICKER") { - return "PINNED_MESSAGE_STICKER"; - } - if (loc_key == "PINNED_STORY") { - return "PINNED_MESSAGE_STORY"; - } - if (loc_key == "CHAT_PHOTO_EDITED") { - return "MESSAGE_CHAT_CHANGE_PHOTO"; - } - if (loc_key == "MESSAGE_THEME") { - return "MESSAGE_CHAT_CHANGE_THEME"; - } - break; - case 'U': - if (loc_key == "PINNED_AUDIO") { - return "PINNED_MESSAGE_VOICE_NOTE"; - } - if (loc_key == "PINNED_QUIZ") { - return "PINNED_MESSAGE_QUIZ"; - } - if (loc_key == "CHAT_RETURNED") { - return "MESSAGE_CHAT_ADD_MEMBERS_RETURNED"; - } - break; - case 'V': - if (loc_key == "MESSAGE_VIDEO") { - return "MESSAGE_VIDEO"; - } - if (loc_key == "MESSAGE_VIDEOS") { - return "MESSAGE_VIDEOS"; - } - if (loc_key == "MESSAGE_VIDEO_SECRET") { - return "MESSAGE_SECRET_VIDEO"; - } - break; - case 'W': - if (loc_key == "MESSAGE_WALLPAPER") { - return "MESSAGE_WALLPAPER"; - } - break; - case '_': - if (loc_key == "CHAT_ADD_MEMBER") { - return "MESSAGE_CHAT_ADD_MEMBERS"; - } - if (loc_key == "CHAT_ADD_YOU") { - return "MESSAGE_CHAT_ADD_MEMBERS_YOU"; - } - if (loc_key == "CHAT_REQ_JOINED") { - return "MESSAGE_CHAT_JOIN_BY_REQUEST"; - } - break; + static const FlatHashMap<Slice, Slice, SliceHash> loc_keys = { + {"CHAT_ADD_MEMBER", "MESSAGE_CHAT_ADD_MEMBERS"}, + {"CHAT_ADD_YOU", "MESSAGE_CHAT_ADD_MEMBERS_YOU"}, + {"CHAT_CREATED", "MESSAGE_BASIC_GROUP_CHAT_CREATE"}, + {"CHAT_DELETE_MEMBER", "MESSAGE_CHAT_DELETE_MEMBER"}, + {"CHAT_DELETE_YOU", "MESSAGE_CHAT_DELETE_MEMBER_YOU"}, + {"CHAT_JOINED", "MESSAGE_CHAT_JOIN_BY_LINK"}, + {"CHAT_LEFT", "MESSAGE_CHAT_DELETE_MEMBER_LEFT"}, + {"CHAT_PHOTO_EDITED", "MESSAGE_CHAT_CHANGE_PHOTO"}, + {"CHAT_REQ_JOINED", "MESSAGE_CHAT_JOIN_BY_REQUEST"}, + {"CHAT_RETURNED", "MESSAGE_CHAT_ADD_MEMBERS_RETURNED"}, + {"CHAT_TITLE_EDITED", "MESSAGE_CHAT_CHANGE_TITLE"}, + {"CONTACT_JOINED", "MESSAGE_CONTACT_REGISTERED"}, + {"ENCRYPTED_MESSAGE", "MESSAGE"}, + {"MESSAGES", "MESSAGES"}, + {"MESSAGE_AUDIO", "MESSAGE_VOICE_NOTE"}, + {"MESSAGE_CONTACT", "MESSAGE_CONTACT"}, + {"MESSAGE_DOC", "MESSAGE_DOCUMENT"}, + {"MESSAGE_DOCS", "MESSAGE_DOCUMENTS"}, + {"MESSAGE_FWDS", "MESSAGE_FORWARDS"}, + {"MESSAGE_GAME", "MESSAGE_GAME"}, + {"MESSAGE_GAME_SCORE", "MESSAGE_GAME_SCORE"}, + {"MESSAGE_GEO", "MESSAGE_LOCATION"}, + {"MESSAGE_GEOLIVE", "MESSAGE_LIVE_LOCATION"}, + {"MESSAGE_GIF", "MESSAGE_ANIMATION"}, + {"MESSAGE_GIFTCODE", "MESSAGE_GIFTCODE"}, + {"MESSAGE_GIVEAWAY", "MESSAGE_GIVEAWAY"}, + {"MESSAGE_GIVEAWAY_STARS", "MESSAGE_GIVEAWAY_STARS"}, + {"MESSAGE_INVOICE", "MESSAGE_INVOICE"}, + {"MESSAGE_NOTEXT", "MESSAGE"}, + {"MESSAGE_NOTHEME", "MESSAGE_CHAT_CHANGE_THEME"}, + {"MESSAGE_PAID_MEDIA", "MESSAGE_PAID_MEDIA"}, + {"MESSAGE_PHOTO", "MESSAGE_PHOTO"}, + {"MESSAGE_PHOTOS", "MESSAGE_PHOTOS"}, + {"MESSAGE_PHOTO_SECRET", "MESSAGE_SECRET_PHOTO"}, + {"MESSAGE_PLAYLIST", "MESSAGE_AUDIOS"}, + {"MESSAGE_POLL", "MESSAGE_POLL"}, + {"MESSAGE_QUIZ", "MESSAGE_QUIZ"}, + {"MESSAGE_RECURRING_PAY", "MESSAGE_RECURRING_PAYMENT"}, + {"MESSAGE_ROUND", "MESSAGE_VIDEO_NOTE"}, + {"MESSAGE_SAME_WALLPAPER", "MESSAGE_SAME_WALLPAPER"}, + {"MESSAGE_SCREENSHOT", "MESSAGE_SCREENSHOT_TAKEN"}, + {"MESSAGE_STARGIFT", "MESSAGE_STARGIFT"}, + {"MESSAGE_STICKER", "MESSAGE_STICKER"}, + {"MESSAGE_STORY", "MESSAGE_STORY"}, + {"MESSAGE_SUGGEST_PHOTO", "MESSAGE_SUGGEST_PHOTO"}, + {"MESSAGE_TEXT", "MESSAGE_TEXT"}, + {"MESSAGE_THEME", "MESSAGE_CHAT_CHANGE_THEME"}, + {"MESSAGE_VIDEO", "MESSAGE_VIDEO"}, + {"MESSAGE_VIDEOS", "MESSAGE_VIDEOS"}, + {"MESSAGE_VIDEO_SECRET", "MESSAGE_SECRET_VIDEO"}, + {"MESSAGE_WALLPAPER", "MESSAGE_WALLPAPER"}, + {"PINNED_AUDIO", "PINNED_MESSAGE_VOICE_NOTE"}, + {"PINNED_CONTACT", "PINNED_MESSAGE_CONTACT"}, + {"PINNED_DOC", "PINNED_MESSAGE_DOCUMENT"}, + {"PINNED_GAME", "PINNED_MESSAGE_GAME"}, + {"PINNED_GAME_SCORE", "PINNED_MESSAGE_GAME_SCORE"}, + {"PINNED_GEO", "PINNED_MESSAGE_LOCATION"}, + {"PINNED_GEOLIVE", "PINNED_MESSAGE_LIVE_LOCATION"}, + {"PINNED_GIF", "PINNED_MESSAGE_ANIMATION"}, + {"PINNED_GIVEAWAY", "PINNED_MESSAGE_GIVEAWAY"}, + {"PINNED_GIVEAWAY_STARS", "PINNED_MESSAGE_GIVEAWAY_STARS"}, + {"PINNED_INVOICE", "PINNED_MESSAGE_INVOICE"}, + {"PINNED_NOTEXT", "PINNED_MESSAGE"}, + {"PINNED_PAID_MEDIA", "PINNED_MESSAGE_PAID_MEDIA"}, + {"PINNED_PHOTO", "PINNED_MESSAGE_PHOTO"}, + {"PINNED_POLL", "PINNED_MESSAGE_POLL"}, + {"PINNED_QUIZ", "PINNED_MESSAGE_QUIZ"}, + {"PINNED_ROUND", "PINNED_MESSAGE_VIDEO_NOTE"}, + {"PINNED_STICKER", "PINNED_MESSAGE_STICKER"}, + {"PINNED_STORY", "PINNED_MESSAGE_STORY"}, + {"PINNED_TEXT", "PINNED_MESSAGE_TEXT"}, + {"PINNED_VIDEO", "PINNED_MESSAGE_VIDEO"}}; + auto it = loc_keys.find(loc_key); + if (it != loc_keys.end()) { + return it->second.str(); } return string(); } |
