Files
tele-recv/utils/telegram.go
T
2020-12-28 16:46:25 +08:00

48 lines
872 B
Go

package utils
import (
"regexp"
"strings"
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
)
const (
EndTag = "NNNN"
Expression = "(?s)ZCZC.*NNNN"
)
var buffer []byte
var RawLog *rotatelogs.RotateLogs
func Append(data []byte) {
buffer = append(buffer, data...)
if buffer[len(buffer)-1] == '\r' {
buffer = append(buffer, '\n')
}
check()
}
func check() {
teleString := string(buffer)
if strings.Index(teleString, EndTag) > 0 {
exp, _ := regexp.Compile(Expression)
telegram := exp.FindString(string(buffer))
if len(telegram) > 0 {
// Log.Info("telegram ", zap.String("text", telegram))
telegram = removeEmpty(telegram) + "\n"
RawLog.Write([]byte(telegram))
buffer = nil
InsertTelegram(telegram)
}
}
}
func removeEmpty(s string) string {
regex, _ := regexp.Compile("\n\n")
s = regex.ReplaceAllString(s, "\n")
return s
}