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