Improve searching stickers via fixing emoji runes

Fixed #1
This commit is contained in:
Maxim Lebedev 2018-01-19 19:46:33 +05:00
parent a603eea78d
commit 1f53b751f8
No known key found for this signature in database
GPG Key ID: F8978F46FF0FFA4F
2 changed files with 25 additions and 0 deletions

View File

@ -3,8 +3,23 @@ package main
import (
"github.com/nicksnyder/go-i18n/i18n"
tg "github.com/toby3d/telegram"
"golang.org/x/text/runes"
"golang.org/x/text/transform"
)
var bannedSkins = []rune{127995, 127996, 127997, 127998, 127999}
var skinRemover = runes.Remove(runes.Predicate(
func(r rune) bool {
for _, skin := range bannedSkins {
if r == skin {
return true
}
}
return false
},
))
func getMenuKeyboard(T i18n.TranslateFunc) *tg.ReplyKeyboardMarkup {
return tg.NewReplyKeyboardMarkup(
tg.NewReplyKeyboardRow(
@ -28,3 +43,8 @@ func getCancelButton(T i18n.TranslateFunc) *tg.ReplyKeyboardMarkup {
),
)
}
func fixEmoji(raw string) (string, error) {
result, _, err := transform.String(skinRemover, raw)
return result, err
}

View File

@ -8,6 +8,11 @@ import (
)
func updateInlineQuery(inlineQuery *tg.InlineQuery) {
fixedQuery, err := fixEmoji(inlineQuery.Query)
if err == nil {
inlineQuery.Query = fixedQuery
}
answer := &tg.AnswerInlineQueryParameters{}
answer.InlineQueryID = inlineQuery.ID
answer.CacheTime = 1