44 lines
855 B
Go
44 lines
855 B
Go
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")
|
|
}
|