From 07a990a7cd062dcd6e56112572a35732f8c19297 Mon Sep 17 00:00:00 2001 From: shoopea Date: Thu, 6 Feb 2020 18:25:49 +0800 Subject: [PATCH] update shop main ack with link --- data/msg_rules.json | 2 +- def.go | 1 + msg.go | 2 ++ sql.go | 13 ++++++++++--- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/data/msg_rules.json b/data/msg_rules.json index b4c687b..5842175 100644 --- a/data/msg_rules.json +++ b/data/msg_rules.json @@ -1890,7 +1890,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:.*)$", + "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", "chat_id": 0, "user_id": 0 diff --git a/def.go b/def.go index 433abc2..9ead35d 100644 --- a/def.go +++ b/def.go @@ -370,6 +370,7 @@ type ChatWarsMessageTributesStatsAck struct { type ChatWarsMessageShopMainAck struct { Msg *ChatWarsMessage `json:"msg"` Name string `json:"name"` + Link string `json:"link"` ShopNumber int64 `json:"shop_number"` User string `json:"user"` Mana int64 `json:"mana"` diff --git a/msg.go b/msg.go index e4b2ffe..eabbdf5 100644 --- a/msg.go +++ b/msg.go @@ -304,6 +304,7 @@ func parseSubTypeMessageShopMainAck(m *ChatWarsMessage, r *regexp.Regexp) (*Chat cwm.Name = r.ReplaceAllString(m.Text, "${Name}") cwm.ShopNumber, _ = strconv.ParseInt(r.ReplaceAllString(m.Text, "${Number}"), 10, 64) + cwm.Link = r.ReplaceAllString(m.Text, "${Link}") cwm.User = r.ReplaceAllString(m.Text, "${User}") cwm.Mana, _ = strconv.ParseInt(r.ReplaceAllString(m.Text, "${Mana}"), 10, 64) cwm.ManaTotal, _ = strconv.ParseInt(r.ReplaceAllString(m.Text, "${ManaTotal}"), 10, 64) @@ -320,6 +321,7 @@ func parseSubTypeMessageShopMainAck(m *ChatWarsMessage, r *regexp.Regexp) (*Chat /* log.Printf("parseSubTypeMessageShopMainAck : Name : %s\n", cwm.Name) log.Printf("parseSubTypeMessageShopMainAck : Number : %d\n", cwm.ShopNumber) + log.Printf("parseSubTypeMessageShopMainAck : Link : %s\n", cwm.Link) log.Printf("parseSubTypeMessageShopMainAck : User : %s\n", cwm.User) log.Printf("parseSubTypeMessageShopMainAck : Mana : %d\n", cwm.Mana) log.Printf("parseSubTypeMessageShopMainAck : ManaTotal : %d\n", cwm.ManaTotal) diff --git a/sql.go b/sql.go index 45b5b67..ce776e4 100644 --- a/sql.go +++ b/sql.go @@ -330,6 +330,7 @@ func initDB() { _, err = db.Exec(`CREATE TABLE obj_msg_shop_main ( obj_id BIGINT UNSIGNED NOT NULL ,name VARCHAR(80) + ,link VARCHAR(80) ,number INT UNSIGNED NOT NULL ,user VARCHAR(80) ,mana INT UNSIGNED NOT NULL @@ -576,6 +577,12 @@ func initDBViews() { failOnError(err, "initDBViews : create view obj_msg_callback_v") log.Println("initDBViews : obj_msg_callback_v created ...") + _, err = db.Exec(`CREATE VIEW obj_shop_v AS + SELECT omsm.* + FROM obj_msg_shop_main omsm;`) + failOnError(err, "initDBViews : create view obj_shop_v") + log.Println("initDBViews : obj_shop_v created ...") + log.Println("initDBViews : Views set up") } @@ -726,8 +733,8 @@ func insertMsgShopMainAck(m *ChatWarsMessageShopMainAck) error { return errors.New("Message type mismatch") } - stmt, err := db.Prepare(`INSERT INTO obj_msg_shop_main (obj_id, name, number, user, mana, mana_total, class, castle_id, fees, guru, open) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);`) + stmt, err := db.Prepare(`INSERT INTO obj_msg_shop_main (obj_id, name, link, number, user, mana, mana_total, class, castle_id, fees, guru, open) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);`) logOnError(err, "insertMsgShopMainAck : Prepare") if err != nil { return err @@ -741,7 +748,7 @@ func insertMsgShopMainAck(m *ChatWarsMessageShopMainAck) error { open = 0 } - _, err = stmt.Exec(m.Msg.ObjID64, m.Name, m.ShopNumber, m.User, m.Mana, m.ManaTotal, m.Class, m.CastleID64, m.Fees, m.Guru, open) + _, err = stmt.Exec(m.Msg.ObjID64, m.Name, m.Link, m.ShopNumber, m.User, m.Mana, m.ManaTotal, m.Class, m.CastleID64, m.Fees, m.Guru, open) logOnError(err, "insertMsgShopMainAck Exec") return nil