123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package sender
- import (
- "fmt"
- "strings"
- "time"
- "github.com/710leo/urlooker/dataobj"
- "github.com/710leo/urlooker/modules/alarm/cache"
- "github.com/710leo/urlooker/modules/alarm/g"
- )
- func BuildMail(event *dataobj.Event) string {
- strategy, _ := cache.StrategyMap.Get(event.StrategyId)
- respTime := fmt.Sprintf("%dms", event.RespTime)
- return fmt.Sprintf(
- "状态:%s\n结果:%s\nUrl:%s\nIP:%s\n返回状态码:%s\n响应时间:%s\n时间:%s\n报警次数:%d\n备注:%s\n",
- event.Status,
- g.EventStatus[event.Result],
- event.Url,
- event.Ip,
- event.RespCode,
- respTime,
- humanTime(event.EventTime),
- event.CurrentStep,
- strategy.Note,
- )
- }
- func BuildSms(event *dataobj.Event) string {
- respTime := fmt.Sprintf("%dms", event.RespTime)
- return fmt.Sprintf(
- "[%s][%s %s][%s][%s][%s][O%d]",
- event.Status,
- showSubString(event.Url, 100),
- event.Ip,
- event.RespCode,
- respTime,
- humanTime(event.EventTime),
- event.CurrentStep,
- )
- }
- func BuildWeChat(event *dataobj.Event) string {
- strategy, _ := cache.StrategyMap.Get(event.StrategyId)
- respTime := fmt.Sprintf("%dms", event.RespTime)
- return fmt.Sprintf(
- "状态:%s\nUrl:%s\n备注:%s\nIP:%s\n返回状态码:%s\n响应时间:%s\n时间:%s\n报警次数:%d\n",
- event.Status,
- event.Url,
- strategy.Note,
- event.Ip,
- event.RespCode,
- respTime,
- humanTime(event.EventTime),
- event.CurrentStep,
- )
- }
- func humanTime(ts int64) string {
- return time.Unix(ts, 0).Format("2006-01-02 15:04:05")
- }
- func showSubString(str string, length int) string {
- runeStr := []rune(str)
- s := ""
- if length > len(runeStr) {
- length = len(runeStr)
- }
- for i := 0; i < length; i++ {
- s += string(runeStr[i])
- }
- return s
- }
- func WriteSms(tos []string, content string) {
- if !g.Config.SmsEnabled {
- return
- }
- if len(tos) == 0 {
- return
- }
- sms := &g.Sms{Tos: strings.Join(tos, ","), Content: content}
- SmsWorkerChan <- 1
- go sendSms(sms.Tos, sms.Content)
- }
- func WriteMail(tos []string, subject, content string) {
- if !g.Config.Smtp.Enabled {
- return
- }
- if len(tos) == 0 {
- return
- }
- mail := &g.Mail{Tos: strings.Join(tos, ","), Subject: subject, Content: content}
- MailWorkerChan <- 1
- go sendMail(mail)
- }
- func WriteWeChat(tos []string, content string) {
- if !g.Config.WeChat.Enabled {
- return
- }
- if len(tos) == 0 {
- return
- }
- weChat := &g.WeChat{Tos: strings.Join(tos, "|"), Content: content}
- WeChatWorkerChan <- 1
- go sendWeChat(weChat)
- }
|