From f00082e80dbb6b8864ab5feb6b046bc6fe6b5a97 Mon Sep 17 00:00:00 2001 From: shoopea Date: Tue, 14 Jan 2020 11:34:29 +0800 Subject: [PATCH] test g withdraw --- bot.go | 15 ++++++++++----- chirpnest.sample.cfg | 25 ------------------------- config.go | 1 - def.go | 23 +++++++++++++++-------- job.go | 21 ++++++++++++++++++--- msg.go | 2 ++ utils.go | 10 ---------- 7 files changed, 45 insertions(+), 52 deletions(-) delete mode 100644 chirpnest.sample.cfg delete mode 100644 config.go diff --git a/bot.go b/bot.go index e372d0a..a542ccd 100644 --- a/bot.go +++ b/bot.go @@ -64,6 +64,11 @@ func BotHandlers(b *tb.Bot) { b.Start() } +func PrintText(m *tb.Message) { + log.Printf("[%d] %s(%d) | %s(%d) : %s\n", m.ID, m.Chat.Title, m.Chat.ID, m.Sender.Username, m.Sender.ID, m.Text) + return +} + func botPhoto(m *tb.Message) { fmt.Println("botPhoto :", m.Text) // photos only @@ -952,18 +957,18 @@ func botGWithdraw(m *tb.Message) { ChatID64: m.Chat.ID, Status: 0, } - items := []ChatWarsItems{} + items := []JobPayloadGWithdrawItem{} for _, l := range rx.FindAllStringSubmatch(m.Payload, -1) { log.Printf("botGWithdraw : %s / %s / %s\n", l[0], l[1], l[2]) i := l[1] q, _ := strconv.ParseInt(l[2], 10, 64) - item := ChatWarsItems{ - Item: i, - Quantity: q, + item := JobPayloadGWithdrawItem{ + Code: i, + Required: q, } items = append(items, item) } - p.Request = items + p.Items = items b, _ := json.Marshal(p) t := time.Now().UTC() diff --git a/chirpnest.sample.cfg b/chirpnest.sample.cfg deleted file mode 100644 index 4dfb371..0000000 --- a/chirpnest.sample.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[telegram] -url = https://api.telegram.org -token = null - -[SQL] -driver = mysql # mysql -type = tcp # tcp, unix -address = 127.0.0.1:3306 # ip:port, path -username = chirpnest -password = chirpnest -database = chirpnest - -[rabbit] -user = chirpnest -password = chirpnest -host = localhost:5672 -path = chirpnest - -[bot] -admin = 0 -guildname = Guild -guild = GLD -mainchat = 0 -depositchat = 0 -reportchat = 0 \ No newline at end of file diff --git a/config.go b/config.go deleted file mode 100644 index 06ab7d0..0000000 --- a/config.go +++ /dev/null @@ -1 +0,0 @@ -package main diff --git a/def.go b/def.go index 5217a15..cf7a6ff 100644 --- a/def.go +++ b/def.go @@ -144,9 +144,10 @@ type ChatWarsItemCraft struct { } type ChatWarsItems struct { - Item string `json:"item"` - ItemID64 int64 - Quantity int64 `json:"quantity"` + ItemID64 int64 `json:"item_id"` + Code string `json:"code"` + Name string `json:"name"` + Quantity int64 `json:"quantity"` } type ChatWarsCallback struct { @@ -396,12 +397,18 @@ type JobPayloadGStock struct { Stock []ChatWarsItems `json:"stock"` } +type JobPayloadGWithdrawItem struct { + Code string `json:"code"` + Name string `json:"name"` + Available int64 `json:"available"` + Required int64 `json:"required"` +} + type JobPayloadGWithdraw struct { - MsgID64 int64 `json:"msg_id"` - ChatID64 int64 `json:"chat_id"` - Request []ChatWarsItems `json:"request"` - Available []ChatWarsItems `json:"available"` - Status int64 `json:"status"` + MsgID64 int64 `json:"msg_id"` + ChatID64 int64 `json:"chat_id"` + Items []JobPayloadGWithdrawItem `json:"items"` + Status int64 `json:"status"` } type JobPayloadGDeposit struct { diff --git a/job.go b/job.go index 6791858..f8bdc96 100644 --- a/job.go +++ b/job.go @@ -1407,8 +1407,8 @@ func jobGWithdraw(j Job) { logOnError(err, "jobGWithdraw : Unmarshal payload") if p.Status == 0 { - for _, item := range p.Request { - id := getSilentObjItemID(item.Item, ``) + for k, item := range p.Items { + id := getSilentObjItemID(item.Code, ``) if id != 0 { obj, _ := getObjItem(id) p.Status = p.Status | reqTab[obj.ItemTypeID] @@ -1441,6 +1441,20 @@ func jobGWithdraw(j Job) { id, err := getObjSubTypeId(j.Trigger) logOnError(err, "jobGWithdraw : getObjSubType("+strconv.FormatInt(j.Trigger, 10)+")") if err == nil && id == cacheObjSubType[`msg_gstock_any_ack`] { + m, err := getObjMsg(j.Trigger) + logOnError(err, "jobGWithdraw : getObjMsg") + rule, err := getMsgParsingRule(m) + logOnError(err, "jobGWithdraw : getMsgParsingRule") + cwm, err := parseSubTypeMessageGStockAnyAck(m, rule.re) + logOnError(err, "jobGWithdraw : parseSubTypeMessageGStockAnyAck") + for k, req := range p.Items { + for _, disp := range cwm.Stock { + if req.Code == disp.Code { + p.Items[k].Available = disp.Quantity + } + } + } + p2 := JobPayloadMsgDel{ Delay: (10 * time.Second), ObjMsgID64: j.Trigger, @@ -1541,7 +1555,8 @@ func jobGWithdraw(j Job) { createJobCallback(cacheObjSubType[`job_msg_del`], j.UserID64, p2.MsgTypeID64, b2, time.Minute) clientSendCWMsg(j.UserID64, `/g_stock_other`) } else { - log.Printf("jobGWithdraw[%d] : got all the info\n", j.ID64) + b, err := json.Marshal(p) + log.Printf("jobGWithdraw[%d] : got all the info\n%s\n", j.ID64, string(b)) } err = setJobDone(j.ID64) diff --git a/msg.go b/msg.go index a66628e..8a84457 100644 --- a/msg.go +++ b/msg.go @@ -255,6 +255,8 @@ func parseSubTypeMessageGStockAnyAck(m *ChatWarsMessage, r *regexp.Regexp) (*Cha q, _ := strconv.ParseInt(l[3], 10, 64) if i != 0 { item := ChatWarsItems{ + Code: l[1], + Name: l[2], ItemID64: i, Quantity: q, } diff --git a/utils.go b/utils.go index bd25383..7c610d7 100644 --- a/utils.go +++ b/utils.go @@ -8,8 +8,6 @@ import ( "regexp" "strconv" "time" - - tb "gopkg.in/tucnak/telebot.v2" ) func failOnError(err error, msg string) { @@ -40,11 +38,6 @@ func MaxInt(a int, b int) int { } } -func PrintText(m *tb.Message) { - log.Printf("[%d] %s(%d) | %s(%d) : %s\n", m.ID, m.Chat.Title, m.Chat.ID, m.Sender.Username, m.Sender.ID, m.Text) - return -} - func ReadConfig(path string) error { b, err := Asset("data/config.json") logOnError(err, "readConfig : load data/config.json") @@ -64,9 +57,6 @@ func ReadConfig(path string) error { err = json.Unmarshal(b, &cfg) logOnError(err, "readConfig : Unmarshal("+path+")") - b, err = json.Marshal(cfg) - log.Printf("ReadConfig : %s\n", b) - return nil }