update stock ack
This commit is contained in:
parent
e465d3fb54
commit
5854f4f58d
9
def.go
9
def.go
@ -100,7 +100,7 @@ type ChatWarsMessage struct {
|
|||||||
Text string `json:"text"`
|
Text string `json:"text"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ChatWarsMessageStock struct {
|
type ChatWarsMessageGStock struct {
|
||||||
Msg *ChatWarsMessage `json:"msg"`
|
Msg *ChatWarsMessage `json:"msg"`
|
||||||
OwnerID64 int64 `json:"owner_id"`
|
OwnerID64 int64 `json:"owner_id"`
|
||||||
ItemList []ChatWarsItems `json:"item_list"`
|
ItemList []ChatWarsItems `json:"item_list"`
|
||||||
@ -110,6 +110,13 @@ type ChatWarsMessageReportAck struct {
|
|||||||
ObjID64 int64 `json:"obj_id"`
|
ObjID64 int64 `json:"obj_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ChatWarsMessageStockAck struct {
|
||||||
|
Msg *ChatWarsMessage `json:"msg"`
|
||||||
|
Used int64 `json:"used"`
|
||||||
|
Available int64 `json:"available"`
|
||||||
|
Stock []ChatWarsItems `json:"stock"`
|
||||||
|
}
|
||||||
|
|
||||||
type ChatWarsMessageOrderbookAck struct {
|
type ChatWarsMessageOrderbookAck struct {
|
||||||
Msg *ChatWarsMessage `json:"msg"`
|
Msg *ChatWarsMessage `json:"msg"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
|
29
msg.go
29
msg.go
@ -23,6 +23,33 @@ func getMsgParsingRule(m *ChatWarsMessage) (*MessageParsingRule, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func parseSubTypeMessageStockAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageStockAck, error) {
|
||||||
|
cwm := ChatWarsMessageStockAck{}
|
||||||
|
items := []ChatWarsItems{}
|
||||||
|
|
||||||
|
log.Printf("parseSubTypeMessageReport : Stock Ack identified\n")
|
||||||
|
log.Printf("parseSubTypeMessageReport : Used : %s\n", r.ReplaceAllString(m.Text, "${Used}"))
|
||||||
|
log.Printf("parseSubTypeMessageReport : Available : %s\n", r.ReplaceAllString(m.Text, "${Available}"))
|
||||||
|
|
||||||
|
re := regexp.MustCompile(`\n[a-zA-Z ]+ \([0-9]+\)`)
|
||||||
|
for _, l := range re.FindAllStringSubmatch(r.ReplaceAllString(m.Text, "${Items}"), -1) {
|
||||||
|
i := getObjItemID(``, l[1])
|
||||||
|
q, _ := strconv.ParseInt(l[2], 10, 64)
|
||||||
|
if i != 0 {
|
||||||
|
item := ChatWarsItems{
|
||||||
|
ItemID64: i,
|
||||||
|
Quantity: q,
|
||||||
|
}
|
||||||
|
items = append(items, item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cwm.Used, _ = strconv.ParseInt(r.ReplaceAllString(m.Text, "${Used}"), 10, 64)
|
||||||
|
cwm.Available, _ = strconv.ParseInt(r.ReplaceAllString(m.Text, "${Available}"), 10, 64)
|
||||||
|
cwm.Stock = items
|
||||||
|
cwm.Msg = m
|
||||||
|
return &cwm, nil
|
||||||
|
}
|
||||||
|
|
||||||
func parseSubTypeMessageReportAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageReportAck, error) {
|
func parseSubTypeMessageReportAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageReportAck, error) {
|
||||||
cwm := ChatWarsMessageReportAck{}
|
cwm := ChatWarsMessageReportAck{}
|
||||||
/*
|
/*
|
||||||
@ -81,7 +108,7 @@ func parseSubTypeMessageAuctionAnnounce(m *ChatWarsMessage, r *regexp.Regexp) (*
|
|||||||
return &cwm, nil
|
return &cwm, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseSubTypeMessageGStockAnyAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageStock, error) {
|
func parseSubTypeMessageGStockAnyAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageGStock, error) {
|
||||||
cwm := ChatWarsMessageStock{}
|
cwm := ChatWarsMessageStock{}
|
||||||
items := []ChatWarsItems{}
|
items := []ChatWarsItems{}
|
||||||
re := regexp.MustCompile(`\n([0-9a-z]+) (.*) x ([0-9]+)`)
|
re := regexp.MustCompile(`\n([0-9a-z]+) (.*) x ([0-9]+)`)
|
||||||
|
2
rules.go
2
rules.go
@ -121,6 +121,8 @@ func resetMsgParsingRules() {
|
|||||||
,(5000, ` + strconv.Itoa(objSubTypeMessageDepositAck) + `, "Deposit Ack #2", "^Deposited successfully: (?P<Item>.*) \\((?P<Quantity>[0-9]+)\\)$")
|
,(5000, ` + strconv.Itoa(objSubTypeMessageDepositAck) + `, "Deposit Ack #2", "^Deposited successfully: (?P<Item>.*) \\((?P<Quantity>[0-9]+)\\)$")
|
||||||
,(5000, ` + strconv.Itoa(objSubTypeMessageDepositAck) + `, "Deposit Ack #1", "^Deposited (?P<Item>.*) \\((?P<Quantity>[0-9]+)\\) successfully$")
|
,(5000, ` + strconv.Itoa(objSubTypeMessageDepositAck) + `, "Deposit Ack #1", "^Deposited (?P<Item>.*) \\((?P<Quantity>[0-9]+)\\) successfully$")
|
||||||
,(5000, ` + strconv.Itoa(objSubTypeMessageStockReq) + `, "Stock Req", "^/stock$")
|
,(5000, ` + strconv.Itoa(objSubTypeMessageStockReq) + `, "Stock Req", "^/stock$")
|
||||||
|
,(5000, ` + strconv.Itoa(objSubTypeMessageStockAck) + `, "Stock Ack", "^📦Storage ((?P<Userd>[0-9]+)/(?P<Available>[0-9]+)):` +
|
||||||
|
`(?P<Items>(\\n[a-zA-Z ]+ \\([0-9]+\\))*)$")
|
||||||
,(5000, ` + strconv.Itoa(objSubTypeMessageMiscReq) + `, "Misc Req", "^/misc$")` + /*
|
,(5000, ` + strconv.Itoa(objSubTypeMessageMiscReq) + `, "Misc Req", "^/misc$")` + /*
|
||||||
,(5000, ` + strconv.Itoa(objSubTypeMessageUnionWar) + `, "Union war report", "^(🏠Trade union news:\\n){0,1}` +
|
,(5000, ` + strconv.Itoa(objSubTypeMessageUnionWar) + `, "Union war report", "^(🏠Trade union news:\\n){0,1}` +
|
||||||
`(((?P<Union>[A-Z][a-z]+ [A-Z][a-z]+) was (?P<StatusUnion>(easily defended|defended successfully|breached.|easily breached.|closely breached.))( Attackers have pillaged union for (?P<Loot>[0-9]+) stock){0,1}:\\n` +
|
`(((?P<Union>[A-Z][a-z]+ [A-Z][a-z]+) was (?P<StatusUnion>(easily defended|defended successfully|breached.|easily breached.|closely breached.))( Attackers have pillaged union for (?P<Loot>[0-9]+) stock){0,1}:\\n` +
|
||||||
|
@ -462,7 +462,9 @@ func SQLIdentifyMsgWorker(id int, objIds <-chan int64) {
|
|||||||
case objSubTypeMessageOrderbookAck:
|
case objSubTypeMessageOrderbookAck:
|
||||||
_, err := parseSubTypeMessageOrderbookAck(m, rule.re)
|
_, err := parseSubTypeMessageOrderbookAck(m, rule.re)
|
||||||
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Parsing objSubTypeMessageOrderbookAck.")
|
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Parsing objSubTypeMessageOrderbookAck.")
|
||||||
|
case objSubTypeMessageStockAck:
|
||||||
|
_, err := parseSubTypeMessageStockAck(m, rule.re)
|
||||||
|
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Parsing objSubTypeMessageStockAck.")
|
||||||
default:
|
default:
|
||||||
log.Printf("SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Unknwon message type in rule %d : %d (%d)\n%s\n", msgParsingRules[i].ID, msgParsingRules[i].MsgTypeID, objId, m.Text)
|
log.Printf("SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Unknwon message type in rule %d : %d (%d)\n%s\n", msgParsingRules[i].ID, msgParsingRules[i].MsgTypeID, objId, m.Text)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user