Update repository to be an importable module

Use edb.prebuilt.json from emojibot2
Provide example usage
Update readme to reflect chanegs

Simplify code/directory structure

	new file:   .gitignore
	modified:   Emojipasta.go
	modified:   README.md
	deleted:    assets/emojis.json
	new file:   edb.prebuilt.json
	new file:   example/main.go
	deleted:    generator/generator.go
This commit is contained in:
Neo committed 2022-07-28 01:31:52 -07:00
1 parent f9dea9e995
commit cf99d4d632
7 files changed
+279 -99262

No files matched your search

+35 -14
View File
@@ -1,23 +1,44 @@
package main
package emojipasta
import (
"fmt"
"github.com/xerosic/emojipasta/generator"
_ "embed"
"encoding/json"
"math/rand"
"time"
"regexp"
"strings"
)
func Generate(phrase string, config generator.EmojipastaConfig) string{
rand.Seed(time.Now().UnixNano())
splitWords := generator.SplitWordByDelimiter(phrase, config.WordDelimiter)
return generator.AddEmojisToSlice(splitWords, config.MaxEmojisPerWord, config.FixedEmojiNumber)
var (
//go:embed edb.prebuilt.json
_jsonFile []byte
_emojiDB map[string][]string
_matchBrackets = regexp.MustCompile("[\\[\\]]")
)
func init() {
if err := json.Unmarshal(_jsonFile, &_emojiDB); err != nil {
panic(err)
}
}
func main() {
cfg := generator.EmojipastaConfig{
WordDelimiter: " ",
MaxEmojisPerWord: 2,
FixedEmojiNumber: false,
func Generate(input []string, maxEmojisPerWord int, fixedEmojiNumber bool) (output string) {
emojisPerWord := maxEmojisPerWord
for k, word := range input {
if k > 0 {
output += " "
}
output += word
if !fixedEmojiNumber {
emojisPerWord = rand.Intn(maxEmojisPerWord)
}
if emojis, ok := _emojiDB[strings.ToLower(word)]; ok {
for i := 0; i <= emojisPerWord; i++ {
output += emojis[rand.Intn(len(emojis))]
}
}
}
fmt.Println(Generate("This library allows you to create emojipastas like this one", cfg))
return _matchBrackets.ReplaceAllString(output, "")
}