Emojify message (#65)

This commit is contained in:
Vishnunarayan K I
2018-07-02 12:30:42 +05:30
committed by Tulir Asokan
parent cf3f3e51d1
commit 68db26bcac
11 changed files with 1796 additions and 7 deletions

View File

@ -19,10 +19,11 @@ package ui
import (
"encoding/json"
"fmt"
"github.com/lucasb-eyer/go-colorful"
"maunium.net/go/gomuks/debug"
"strings"
"unicode"
"github.com/lucasb-eyer/go-colorful"
"maunium.net/go/gomuks/debug"
)
func cmdMe(cmd *Command) {
@ -184,7 +185,7 @@ func cmdSetState(cmd *Command) {
func cmdToggle(cmd *Command) {
if len(cmd.Args) == 0 {
cmd.Reply("Usage: /toggle <rooms/users/baremessages/images/typingnotif>")
cmd.Reply("Usage: /toggle <rooms/users/baremessages/images/typingnotif/emojis>")
return
}
switch cmd.Args[0] {
@ -198,8 +199,10 @@ func cmdToggle(cmd *Command) {
cmd.Config.Preferences.DisableImages = !cmd.Config.Preferences.DisableImages
case "typingnotif":
cmd.Config.Preferences.DisableTypingNotifs = !cmd.Config.Preferences.DisableTypingNotifs
case "emojis":
cmd.Config.Preferences.DisableEmojis = !cmd.Config.Preferences.DisableEmojis
default:
cmd.Reply("Usage: /toggle <rooms/users/baremessages/images/typingnotif>")
cmd.Reply("Usage: /toggle <rooms/users/baremessages/images/typingnotif/emojis>")
return
}
// is there a reason this is called twice?

View File

@ -21,7 +21,11 @@ import (
"time"
"unicode"
"github.com/kyokomi/emoji"
"bufio"
"os"
"maunium.net/go/gomatrix"
"maunium.net/go/gomuks/config"
"maunium.net/go/gomuks/debug"
@ -33,7 +37,6 @@ import (
"maunium.net/go/gomuks/ui/widget"
"maunium.net/go/tcell"
"maunium.net/go/tview"
"os"
)
type MainView struct {
@ -143,6 +146,9 @@ func (view *MainView) SendMessage(roomView *RoomView, text string) {
func (view *MainView) sendTempMessage(roomView *RoomView, tempMessage ifc.Message, text string) {
defer debug.Recover()
debug.Print("Sending message", tempMessage.Type(), text)
if !roomView.config.Preferences.DisableEmojis {
text = emoji.Sprint(text)
}
eventID, err := view.matrix.SendMarkdownMessage(roomView.Room.ID, tempMessage.Type(), text)
if err != nil {
tempMessage.SetState(ifc.MessageStateFailed)