Replace :emoji: with unicode chars. #215
Add vendor github.com/peterhellberg/emojilib
This commit is contained in:
parent
870b89a8f0
commit
6256c066f1
|
@ -5,6 +5,7 @@ import (
|
||||||
"github.com/42wim/matterbridge/bridge"
|
"github.com/42wim/matterbridge/bridge"
|
||||||
"github.com/42wim/matterbridge/bridge/config"
|
"github.com/42wim/matterbridge/bridge/config"
|
||||||
log "github.com/Sirupsen/logrus"
|
log "github.com/Sirupsen/logrus"
|
||||||
|
"github.com/peterhellberg/emojilib"
|
||||||
// "github.com/davecgh/go-spew/spew"
|
// "github.com/davecgh/go-spew/spew"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -116,6 +117,7 @@ func (gw *Gateway) handleReceive() {
|
||||||
}
|
}
|
||||||
if !gw.ignoreMessage(&msg) {
|
if !gw.ignoreMessage(&msg) {
|
||||||
msg.Timestamp = time.Now()
|
msg.Timestamp = time.Now()
|
||||||
|
gw.modifyMessage(&msg)
|
||||||
for _, br := range gw.Bridges {
|
for _, br := range gw.Bridges {
|
||||||
gw.handleMessage(msg, br)
|
gw.handleMessage(msg, br)
|
||||||
}
|
}
|
||||||
|
@ -296,6 +298,11 @@ func (gw *Gateway) modifyAvatar(msg *config.Message, dest *bridge.Bridge) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (gw *Gateway) modifyMessage(msg *config.Message) {
|
||||||
|
// replace :emoji: to unicode
|
||||||
|
msg.Text = emojilib.Replace(msg.Text)
|
||||||
|
}
|
||||||
|
|
||||||
func getChannelID(msg config.Message) string {
|
func getChannelID(msg config.Message) string {
|
||||||
return msg.Channel + msg.Account
|
return msg.Channel + msg.Account
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
Copyright (c) 2015-2017 Peter Hellberg https://c7.se/
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the "Software"),
|
||||||
|
to deal in the Software without restriction, including without limitation
|
||||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||||
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||||
|
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,88 @@
|
||||||
|
/*
|
||||||
|
|
||||||
|
Package emojilib is a port of the Emoji keyword library to Go
|
||||||
|
|
||||||
|
Installation
|
||||||
|
|
||||||
|
Just go get the package:
|
||||||
|
|
||||||
|
go get -u github.com/peterhellberg/emojilib
|
||||||
|
|
||||||
|
Usage
|
||||||
|
|
||||||
|
A small usage example
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/peterhellberg/emojilib"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
fmt.Println(emojilib.ReplaceWithPadding("I :green_heart: You!"))
|
||||||
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
package emojilib
|
||||||
|
|
||||||
|
import "errors"
|
||||||
|
|
||||||
|
//go:generate go run _generator/main.go
|
||||||
|
|
||||||
|
// Emojis contain emojis keyed on their name
|
||||||
|
type Emojis map[string]Emoji
|
||||||
|
|
||||||
|
// Emoji contains the keywords, char and category for an emoji
|
||||||
|
type Emoji struct {
|
||||||
|
Keywords []string `json:"keywords"`
|
||||||
|
Char string `json:"char"`
|
||||||
|
Category string `json:"category"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ErrUnknownEmoji is returned from Find if provided with a unknown emoji name
|
||||||
|
var ErrUnknownEmoji = errors.New("unknown emoji")
|
||||||
|
|
||||||
|
// ErrUnknownKeyword is returned from Keyword if provided with a unknown keyword
|
||||||
|
var ErrUnknownKeyword = errors.New("unknown keyword")
|
||||||
|
|
||||||
|
// Find returns an Emoji if provided with a known name
|
||||||
|
func Find(n string) (Emoji, error) {
|
||||||
|
if e, ok := emojis[n]; ok {
|
||||||
|
return e, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return Emoji{}, ErrUnknownEmoji
|
||||||
|
}
|
||||||
|
|
||||||
|
// Keyword returns Emojis for the given keyword
|
||||||
|
func Keyword(k string) ([]Emoji, error) {
|
||||||
|
if names, ok := keywordLookup[k]; ok {
|
||||||
|
es := []Emoji{}
|
||||||
|
|
||||||
|
for _, n := range names {
|
||||||
|
es = append(es, emojis[n])
|
||||||
|
}
|
||||||
|
|
||||||
|
return es, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return []Emoji{}, ErrUnknownKeyword
|
||||||
|
}
|
||||||
|
|
||||||
|
// All returns all the emojis
|
||||||
|
func All() Emojis {
|
||||||
|
return emojis
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace takes a string and replaces all emoji names with their emoji character
|
||||||
|
func Replace(s string) string {
|
||||||
|
return emojiReplacer.Replace(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReplaceWithPadding takes a string and replaces all emoji names with their
|
||||||
|
// emoji character and a space in order to display better in terminals
|
||||||
|
func ReplaceWithPadding(s string) string {
|
||||||
|
return emojiPaddedReplacer.Replace(s)
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -416,6 +416,14 @@
|
||||||
"branch": "master",
|
"branch": "master",
|
||||||
"notests": true
|
"notests": true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"importpath": "github.com/peterhellberg/emojilib",
|
||||||
|
"repository": "https://github.com/peterhellberg/emojilib",
|
||||||
|
"vcs": "git",
|
||||||
|
"revision": "41920917e2710c9f0ec22d29db182f60e7ed9d11",
|
||||||
|
"branch": "master",
|
||||||
|
"notests": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"importpath": "github.com/peterhellberg/giphy",
|
"importpath": "github.com/peterhellberg/giphy",
|
||||||
"repository": "https://github.com/peterhellberg/giphy",
|
"repository": "https://github.com/peterhellberg/giphy",
|
||||||
|
|
Loading…
Reference in New Issue