diff --git a/data/msg_rules.json b/data/msg_rules.json index 922e1bf..a75ad8d 100644 --- a/data/msg_rules.json +++ b/data/msg_rules.json @@ -1891,7 +1891,7 @@ "prio": 5000, "descn": "Shop main ack", "rule": "^Welcome, to the (?P[a-zA-Z0-9 -]+) #(?P[0-9]+)\\.\\n(?P.+) (?P[0-9]+)\\/(?P[0-9]+)💧the (?P.+) from (?P.+)\\n\\n(?P.*)\\n\\n(the (?P.*) Guru\\n\\n){0,1}.* is (?P(open|closed))\\.\\n(?s:.*).*/ws_(?P[a-zA-Z0-9]+)$", - "msg_type": "msg_shop_main_ack", + "msg_type": "msg_unknown_action", "chat_id": 0, "user_id": 0 }, diff --git a/job.go b/job.go index 855fad9..9158bf5 100644 --- a/job.go +++ b/job.go @@ -2314,18 +2314,6 @@ func jobShopsSlave(j Job) { logOnError(err, "jobShopsSlave : getMsgParsingRule") switch id { - case cacheObjSubType[`msg_unknown_action`]: - muxObjJob.Lock() - b2 := getJobPayloadUnsafe(p.JobCallbackID64) - var p2 JobPayloadShops - err = json.Unmarshal(b2, &p2) - p2.Msgs = append(p2.Msgs, *m) - err = setJobPayloadJSONUnsafe(p.JobCallbackID64, p2) - logOnError(err, "jobShopsSlave : setJobPayloadJSONUnsafe") - muxObjJob.Unlock() - - rescheduleJob(j.ID64, 0, time.Unix(maxUnixTimestamp, 0).UTC()) // reschedule so that it gets picked up by shop main ack callback - return case cacheObjSubType[`msg_shop_main_req`]: muxObjJob.Lock() b2 := getJobPayloadUnsafe(p.JobCallbackID64) @@ -2338,6 +2326,34 @@ func jobShopsSlave(j Job) { rescheduleJob(j.ID64, 0, time.Unix(maxUnixTimestamp, 0).UTC()) // reschedule so that it gets picked up by shop main ack callback return + case cacheObjSubType[`msg_unknown_action`]: + muxObjJob.Lock() + b2 := getJobPayloadUnsafe(p.JobCallbackID64) + var p2 JobPayloadShops + err = json.Unmarshal(b2, &p2) + p2.Msgs = append(p2.Msgs, *m) + err = setJobPayloadJSONUnsafe(p.JobCallbackID64, p2) + logOnError(err, "jobShopsSlave : setJobPayloadJSONUnsafe") + muxObjJob.Unlock() + + c := TGCommand{ + Type: commandReplyMsg, + Text: fmt.Sprintf("Unknown shop /ws_%s\n", p.Shops[0]), + FromMsgID64: p2.MsgID64, + FromChatID64: p2.ChatID64, + ParseMode: cmdParseModeHTML, + } + TGCmdQueue <- c + + for i, link := range p.Shops { + if cwm.Link == link { + p.Shops = append(p.Shops[:i], p.Shops[i+1:]...) + break + } + } + + err = setJobPayloadJSON(j.ID64, p) + logOnError(err, "jobShopsSlave : setJobPayloadJSON") case cacheObjSubType[`msg_shop_main_ack`]: cwm, err := parseSubTypeMessageShopMainAck(m, rule.re) logOnError(err, "jobShopsSlave : parseSubTypeMessageShopMainAck")