mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 22:00:11 +08:00
群管避免重复注册定时器
This commit is contained in:
parent
32eed9a4d8
commit
ec21395606
@ -26,7 +26,11 @@ var timers = make(map[string]*TimeStamp)
|
|||||||
|
|
||||||
func timer(ts TimeStamp, onTimeReached func()) {
|
func timer(ts TimeStamp, onTimeReached func()) {
|
||||||
key := getTimerInfo(&ts)
|
key := getTimerInfo(&ts)
|
||||||
fmt.Printf("注册计时器: %s\n", key)
|
fmt.Printf("[群管]注册计时器: %s\n", key)
|
||||||
|
t, ok := timers[key]
|
||||||
|
if ok { //避免重复注册定时器
|
||||||
|
t.enable = false
|
||||||
|
}
|
||||||
timers[key] = &ts
|
timers[key] = &ts
|
||||||
judgeHM := func() {
|
judgeHM := func() {
|
||||||
if ts.hour < 0 || ts.hour == int8(time.Now().Hour()) {
|
if ts.hour < 0 || ts.hour == int8(time.Now().Hour()) {
|
||||||
@ -64,6 +68,7 @@ func getFilledTimeStamp(dateStrs []string, matchDateOnly bool) TimeStamp {
|
|||||||
var ts TimeStamp
|
var ts TimeStamp
|
||||||
ts.month = chineseNum2Int(monthStr)
|
ts.month = chineseNum2Int(monthStr)
|
||||||
if (ts.month != -1 && ts.month <= 0) || ts.month > 12 { //月份非法
|
if (ts.month != -1 && ts.month <= 0) || ts.month > 12 { //月份非法
|
||||||
|
fmt.Println("[群管]月份非法!")
|
||||||
return ts
|
return ts
|
||||||
}
|
}
|
||||||
lenOfDW := len(dayWeekStr)
|
lenOfDW := len(dayWeekStr)
|
||||||
@ -71,12 +76,14 @@ func getFilledTimeStamp(dateStrs []string, matchDateOnly bool) TimeStamp {
|
|||||||
dayWeekStr = []rune{dayWeekStr[0], dayWeekStr[2]} //去除中间的十
|
dayWeekStr = []rune{dayWeekStr[0], dayWeekStr[2]} //去除中间的十
|
||||||
ts.day = chineseNum2Int(dayWeekStr)
|
ts.day = chineseNum2Int(dayWeekStr)
|
||||||
if (ts.day != -1 && ts.day <= 0) || ts.day > 31 { //日期非法
|
if (ts.day != -1 && ts.day <= 0) || ts.day > 31 { //日期非法
|
||||||
|
fmt.Println("[群管]日期非法1!")
|
||||||
return ts
|
return ts
|
||||||
}
|
}
|
||||||
} else if dayWeekStr[lenOfDW-1] == rune('日') { //xx日
|
} else if dayWeekStr[lenOfDW-1] == rune('日') { //xx日
|
||||||
dayWeekStr = dayWeekStr[:lenOfDW-1]
|
dayWeekStr = dayWeekStr[:lenOfDW-1]
|
||||||
ts.day = chineseNum2Int(dayWeekStr)
|
ts.day = chineseNum2Int(dayWeekStr)
|
||||||
if (ts.day != -1 && ts.day <= 0) || ts.day > 31 { //日期非法
|
if (ts.day != -1 && ts.day <= 0) || ts.day > 31 { //日期非法
|
||||||
|
fmt.Println("[群管]日期非法2!")
|
||||||
return ts
|
return ts
|
||||||
}
|
}
|
||||||
} else if dayWeekStr[0] == rune('每') { //每周
|
} else if dayWeekStr[0] == rune('每') { //每周
|
||||||
@ -88,6 +95,7 @@ func getFilledTimeStamp(dateStrs []string, matchDateOnly bool) TimeStamp {
|
|||||||
}
|
}
|
||||||
if ts.week < 0 || ts.week > 6 { //星期非法
|
if ts.week < 0 || ts.week > 6 { //星期非法
|
||||||
ts.week = -11
|
ts.week = -11
|
||||||
|
fmt.Println("[群管]星期非法!")
|
||||||
return ts
|
return ts
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -96,6 +104,7 @@ func getFilledTimeStamp(dateStrs []string, matchDateOnly bool) TimeStamp {
|
|||||||
}
|
}
|
||||||
ts.hour = chineseNum2Int(hourStr)
|
ts.hour = chineseNum2Int(hourStr)
|
||||||
if ts.hour < -1 || ts.hour > 23 { //小时非法
|
if ts.hour < -1 || ts.hour > 23 { //小时非法
|
||||||
|
fmt.Println("[群管]小时非法!")
|
||||||
return ts
|
return ts
|
||||||
}
|
}
|
||||||
if len(minuteStr) == 3 {
|
if len(minuteStr) == 3 {
|
||||||
@ -103,14 +112,17 @@ func getFilledTimeStamp(dateStrs []string, matchDateOnly bool) TimeStamp {
|
|||||||
}
|
}
|
||||||
ts.minute = chineseNum2Int(minuteStr)
|
ts.minute = chineseNum2Int(minuteStr)
|
||||||
if ts.minute < -1 || ts.minute > 59 { //分钟非法
|
if ts.minute < -1 || ts.minute > 59 { //分钟非法
|
||||||
|
fmt.Println("[群管]分钟非法!")
|
||||||
return ts
|
return ts
|
||||||
}
|
}
|
||||||
if !matchDateOnly {
|
if !matchDateOnly {
|
||||||
urlStr := dateStrs[5]
|
urlStr := dateStrs[5]
|
||||||
if urlStr != "" { //是图片url
|
if urlStr != "" { //是图片url
|
||||||
ts.url = urlStr[3:] //utf-8下用为3字节
|
ts.url = urlStr[3:] //utf-8下用为3字节
|
||||||
|
fmt.Println("[群管]" + ts.url)
|
||||||
if !strings.HasPrefix(ts.url, "http") {
|
if !strings.HasPrefix(ts.url, "http") {
|
||||||
ts.url = "illegal"
|
ts.url = "illegal"
|
||||||
|
fmt.Println("[群管]url非法!")
|
||||||
return ts
|
return ts
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user