diff --git a/bot.go b/bot.go index bdf12c0..6f4a350 100644 --- a/bot.go +++ b/bot.go @@ -981,6 +981,37 @@ func botUserConfig(m *ChatWarsMessage) { return } +func botRefreshMsg(m *ChatWarsMessage, r *regexp.Regexp) { + + p := JobPayloadMsgRefresh{} + + p.ObjID64, _ = strconv.ParseInt(r.ReplaceAllString(m.Text, "${MsgID}"), 10, 64) + + b, _ := json.Marshal(p) + t := time.Now().UTC().Add(1 * time.Second) + _, err := createJob(cacheObjSubType[`job_msg_refresh`], objJobPriority, m.TGSenderUserID64, 0, t, b) + + if err != nil { + c := TGCommand{ + Type: commandReplyMsg, + Text: fmt.Sprintf("%s", err), + FromMsgID64: m.ID64, + FromChatID64: m.ChatID64, + } + TGCmdQueue <- c + } else { + c := TGCommand{ + Type: commandReplyMsg, + Text: "Refresh scheduled", + FromMsgID64: m.ID64, + FromChatID64: m.ChatID64, + } + TGCmdQueue <- c + } + + return +} + func botAlchAll(m *ChatWarsMessage) { p := JobPayloadAlchAll{ diff --git a/data/code_obj_sub_type.json b/data/code_obj_sub_type.json index a6778b6..e1d0e29 100644 --- a/data/code_obj_sub_type.json +++ b/data/code_obj_sub_type.json @@ -699,6 +699,11 @@ "name": "Set User Config DEPOSIT OFF", "obj_type": "msg" }, + { + "intl_id": "msg_refresh_cmd", + "name": "Refresh msg command", + "obj_type": "msg" + }, { "intl_id": "msg_unknown_action", "name": "Set Unknown Action", diff --git a/rules.go b/rules.go index 9a48f02..5e16def 100644 --- a/rules.go +++ b/rules.go @@ -42,6 +42,17 @@ func resetMsgParsingRules() error { } rules2 = append(rules2, r) + r = MessageParsingRule{ + Priority: 9999, + Description: "Shutdown", + Rule: "^/msg_refresh (?P[0-9]*)$", + MsgTypeID64: cacheObjSubType[`msg_refresh_cmd`], + ChatID64: cfg.Bot.Admin, + SenderUserID64: 0, + BotCommand: true, + } + rules2 = append(rules2, r) + chats := make([]int64, 0) users := make([]int64, 0) chats = append(chats, cfg.Bot.Mainchat) diff --git a/workers.go b/workers.go index 2a235aa..2d6a41b 100644 --- a/workers.go +++ b/workers.go @@ -572,6 +572,8 @@ func SQLIdentifyMsgWorker(id int, objIds <-chan int64) { _, err := parseSubTypeMessageAlchStockAck(m, rule.re) logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Parsing cacheObjSubType[`msg_alch_stock_ack`]") case cacheObjSubType[`msg_skill_too_low`]: + case cacheObjSubType[`msg_refresh_cmd`]: + botRefreshMsg(m, rule.re) default: //log.Printf("SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Unknwon message type in rule %d : %d (%d)\n%s\n", msgParsingRules[i].ID, msgParsingRules[i].MsgTypeID64, objId, m.Text) }