fix: send emoji contentType

This commit is contained in:
Richard Ramos 2020-07-27 13:30:20 -04:00 committed by Michael Bradley
parent 13f8875263
commit 7fd1f9c468
6 changed files with 15 additions and 9 deletions

View File

@ -85,7 +85,7 @@ QtObject:
let pubKey = matches[0]
result = message.replace(mention, "@" & pubKey)
proc sendMessage*(self: ChatsView, message: string, replyTo: string) {.slot.} =
proc sendMessage*(self: ChatsView, message: string, replyTo: string, contentType: int = ContentType.Message.int) {.slot.} =
let aliasPattern = re(r"(@[A-z][a-z]* [A-z][a-z]* [A-z][a-z]*)", flags = {reStudy, reIgnoreCase})
let ensPattern = re(r"(@\w*(?=\.stateofus\.eth))", flags = {reStudy, reIgnoreCase})
let namePattern = re(r"(@\w*)", flags = {reStudy, reIgnoreCase})
@ -100,7 +100,7 @@ QtObject:
m = self.replaceMentionsWithPubKeys(ensMentions, contacts, m, (c => c.ensName))
m = self.replaceMentionsWithPubKeys(nameMentions, contacts, m, (c => c.ensName.split(".")[0]))
self.status.chat.sendMessage(self.activeChannel.id, m, replyTo)
self.status.chat.sendMessage(self.activeChannel.id, m, replyTo, contentType)
proc verifyMessageSent*(self: ChatsView, data: string) {.slot.} =
let messageData = data.parseJson

View File

@ -211,8 +211,8 @@ proc clearHistory*(self: ChatModel, chatId: string) =
proc setActiveChannel*(self: ChatModel, chatId: string) =
self.events.emit("activeChannelChanged", ChatIdArg(chatId: chatId))
proc sendMessage*(self: ChatModel, chatId: string, msg: string, replyTo: string = "") =
var response = status_chat.sendChatMessage(chatId, msg, replyTo)
proc sendMessage*(self: ChatModel, chatId: string, msg: string, replyTo: string = "", contentType: int = ContentType.Message.int) =
var response = status_chat.sendChatMessage(chatId, msg, replyTo, contentType)
var (chats, messages) = self.processChatUpdate(parseJson(response))
self.events.emit("chatUpdate", ChatUpdateArgs(messages: messages, chats: chats, contacts: @[]))
for msg in messages:

View File

@ -71,7 +71,7 @@ proc generateSymKeyFromPassword*(): string =
"status-offline-inbox"
]))["result"]).strip(chars = {'"'})
proc sendChatMessage*(chatId: string, msg: string, replyTo: string): string =
proc sendChatMessage*(chatId: string, msg: string, replyTo: string, contentType: int): string =
callPrivateRPC("sendChatMessage".prefix, %* [
{
"chatId": chatId,
@ -79,7 +79,7 @@ proc sendChatMessage*(chatId: string, msg: string, replyTo: string): string =
"responseTo": replyTo,
"ensName": nil,
"sticker": nil,
"contentType": ContentType.Message.int
"contentType": contentType
}
])

View File

@ -28,7 +28,7 @@ Item {
}
if(txtData.text.trim() > 0){
chatsModel.sendMessage(txtData.text, chatColumn.isReply ? SelectedMessage.messageId : "")
chatsModel.sendMessage(txtData.text.trim(), chatColumn.isReply ? SelectedMessage.messageId : "", Utils.isOnlyEmoji(txtData.text) ? Constants.emojiType : Constants.messageType)
txtData.text = "";
}

View File

@ -40,8 +40,8 @@ Rectangle {
}
if(txtData.text.trim().length > 0){
let msg = interpretMessage(txtData.text.trim())
chatsModel.sendMessage(msg, chatColumn.isReply ? SelectedMessage.messageId : "");
let msg = interpretMessage(txtData.text.trim()).trim()
chatsModel.sendMessage(msg, chatColumn.isReply ? SelectedMessage.messageId : "", Utils.isOnlyEmoji(txtData.text) ? Constants.emojiType : Constants.messageType);
txtData.text = "";
event.accepted = true
sendMessageSound.stop()

View File

@ -56,4 +56,10 @@ QtObject {
replacedText = XSS.filterXSS(replacedText)
return replacedText;
}
function isOnlyEmoji(inputText) {
var emoji_regex = /^(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c[\ude32-\ude3a]|[\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff]|\s)+$/;
return emoji_regex.test(inputText);
}
}