test exchange deals
This commit is contained in:
parent
d72abeaf73
commit
516b624627
15
bot.go
15
bot.go
@ -34,6 +34,7 @@ func BotHandlers(b *tb.Bot) {
|
|||||||
|
|
||||||
b.Handle("/g_stock", botGStock)
|
b.Handle("/g_stock", botGStock)
|
||||||
b.Handle("/g_deposit_all", botGDepositAll)
|
b.Handle("/g_deposit_all", botGDepositAll)
|
||||||
|
b.Handle("/save_res", botSaveRes)
|
||||||
|
|
||||||
b.Handle("/backup_export", botBackupExport)
|
b.Handle("/backup_export", botBackupExport)
|
||||||
b.Handle("/backup_import", botBackupImport)
|
b.Handle("/backup_import", botBackupImport)
|
||||||
@ -627,6 +628,20 @@ func botGStock(m *tb.Message) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func botSaveRes(m *tb.Message) {
|
||||||
|
if !m.Private() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
c := TGCommand{
|
||||||
|
Type: commandReplyMsg,
|
||||||
|
Text: "Not coded yet.",
|
||||||
|
FromMsgID64: int64(m.ID),
|
||||||
|
FromChatID64: m.Chat.ID,
|
||||||
|
}
|
||||||
|
TGCmdQueue <- c
|
||||||
|
}
|
||||||
|
|
||||||
func botGDepositAll(m *tb.Message) {
|
func botGDepositAll(m *tb.Message) {
|
||||||
if !m.Private() {
|
if !m.Private() {
|
||||||
return
|
return
|
||||||
|
16
def.go
16
def.go
@ -103,6 +103,20 @@ type ChatWarsMessage struct {
|
|||||||
Text string `json:"text"`
|
Text string `json:"text"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ChatWarsExchangeDeal struct {
|
||||||
|
ItemID64 int64 `json:"item_id"`
|
||||||
|
Quantity int64 `json:"quantity"`
|
||||||
|
Price int64 `json:"price"`
|
||||||
|
Link string `json:"link"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ChatWarsMessageExchangeAck struct {
|
||||||
|
Msg *ChatWarsMessage `json:"msg"`
|
||||||
|
ActiveDeals int64 `json:"active_deals"`
|
||||||
|
MaxDeals int64 `json:"max_deals"`
|
||||||
|
DealList []ChatWarsExchangeDeal `json:"deals"`
|
||||||
|
}
|
||||||
|
|
||||||
type ChatWarsMessageGStock struct {
|
type ChatWarsMessageGStock struct {
|
||||||
Msg *ChatWarsMessage `json:"msg"`
|
Msg *ChatWarsMessage `json:"msg"`
|
||||||
OwnerID64 int64 `json:"owner_id"`
|
OwnerID64 int64 `json:"owner_id"`
|
||||||
@ -446,6 +460,8 @@ const (
|
|||||||
objSubTypeMessageBack = 379 // Back (done)
|
objSubTypeMessageBack = 379 // Back (done)
|
||||||
objSubTypeMessageCastleReq = 380 // Castle (done)
|
objSubTypeMessageCastleReq = 380 // Castle (done)
|
||||||
objSubTypeMessageCastleAck = 381 // Castle msg (not done)
|
objSubTypeMessageCastleAck = 381 // Castle msg (not done)
|
||||||
|
objSubTypeMessageExchangeReq = 382 // ⚖Exchange (done)
|
||||||
|
objSubTypeMessageExchangeAck = 383 // List of deals (done)
|
||||||
objSubTypeJobPillage = 601
|
objSubTypeJobPillage = 601
|
||||||
objSubTypeJobTribute = 602
|
objSubTypeJobTribute = 602
|
||||||
objSubTypeJobStatus = 603
|
objSubTypeJobStatus = 603
|
||||||
|
25
msg.go
25
msg.go
@ -23,6 +23,31 @@ func getMsgParsingRule(m *ChatWarsMessage) (*MessageParsingRule, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func parseSubTypeMessageExchangeAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageExchangeAck, error) {
|
||||||
|
cwm := ChatWarsMessageExchangeAck{}
|
||||||
|
deals := []ChatWarsExchangeDeal{}
|
||||||
|
|
||||||
|
log.Printf("parseSubTypeMessageExchangeAck : ActiveDeals : %s\n", r.ReplaceAllString(m.Text, "${ActiveDeals}"))
|
||||||
|
log.Printf("parseSubTypeMessageExchangeAck : MaxDeals : %s\n", r.ReplaceAllString(m.Text, "${MaxDeals}"))
|
||||||
|
/*
|
||||||
|
re := regexp.MustCompile(`([a-zA-Z ]+)\n([0-9]+) x ([0-9]+)💰 [Cancelling] (.*)\n`)
|
||||||
|
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.Deals = items
|
||||||
|
cwm.Msg = m
|
||||||
|
return &cwm, nil
|
||||||
|
}
|
||||||
|
|
||||||
func parseSubTypeMessageStockAnyAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageStockAnyAck, error) {
|
func parseSubTypeMessageStockAnyAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageStockAnyAck, error) {
|
||||||
cwm := ChatWarsMessageStockAnyAck{}
|
cwm := ChatWarsMessageStockAnyAck{}
|
||||||
items := []ChatWarsItems{}
|
items := []ChatWarsItems{}
|
||||||
|
9
rules.go
9
rules.go
@ -216,6 +216,15 @@ func resetMsgParsingRules() {
|
|||||||
,(5000, ` + strconv.Itoa(objSubTypeMessageGoFastFight) + `, "Fast Fight", "^▶️Fast fight$")
|
,(5000, ` + strconv.Itoa(objSubTypeMessageGoFastFight) + `, "Fast Fight", "^▶️Fast fight$")
|
||||||
,(5000, ` + strconv.Itoa(objSubTypeMessageCastleReq) + `, "Castle Req", "^🏰Castle$")
|
,(5000, ` + strconv.Itoa(objSubTypeMessageCastleReq) + `, "Castle Req", "^🏰Castle$")
|
||||||
,(5000, ` + strconv.Itoa(objSubTypeMessageCastleAck) + `, "Castle Ack", "^$")
|
,(5000, ` + strconv.Itoa(objSubTypeMessageCastleAck) + `, "Castle Ack", "^$")
|
||||||
|
,(5000, ` + strconv.Itoa(objSubTypeMessageExchangeReq) + `, "Exchange Req", "^⚖Exchange$")
|
||||||
|
,(5000, ` + strconv.Itoa(objSubTypeMessageExchangeAck) + `, "Exchange Ack", "^Here you can buy and sell some items.\\n` +
|
||||||
|
`To find a tradable item just type:\\n` +
|
||||||
|
`/t [item name]\\n` +
|
||||||
|
`Example:\\n` +
|
||||||
|
`/t coal\\n\\n` +
|
||||||
|
`Your deals \\((?P<ActiveDeals>[0-9]+)/(?P<MaxDeals>[0-9]+)\\):\\n` +
|
||||||
|
`(?P<Deals>.*)\\n` +
|
||||||
|
`Your last 10 comitted trades: /trades$")
|
||||||
;`)
|
;`)
|
||||||
failOnError(err, "resetMsgParsingRules : populate table msg_rules")
|
failOnError(err, "resetMsgParsingRules : populate table msg_rules")
|
||||||
}
|
}
|
||||||
|
@ -471,6 +471,9 @@ func SQLIdentifyMsgWorker(id int, objIds <-chan int64) {
|
|||||||
case objSubTypeMessageStockAnyAck:
|
case objSubTypeMessageStockAnyAck:
|
||||||
_, err := parseSubTypeMessageStockAnyAck(m, rule.re)
|
_, err := parseSubTypeMessageStockAnyAck(m, rule.re)
|
||||||
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Parsing objSubTypeMessageStockAnyAck.")
|
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Parsing objSubTypeMessageStockAnyAck.")
|
||||||
|
case objSubTypeMessageExchangeAck:
|
||||||
|
_, err := parseSubTypeMessageExchangeAck(m, rule.re)
|
||||||
|
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Parsing objSubTypeMessageExchangeAck.")
|
||||||
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