test jobfwdmsg

This commit is contained in:
shoopea 2019-12-12 18:24:12 +08:00
parent e09ac8e515
commit b0d128af4c
6 changed files with 38 additions and 5 deletions

View File

@ -21,4 +21,5 @@ admin = 0
guildname = Guild
guild = GLD
mainchat = 0
depositchat = 0
depositchat = 0
reportchat = 0

10
cron.go
View File

@ -9,7 +9,7 @@ import (
func startCron() *cron.Cron {
c := cron.New(cron.WithLocation(time.UTC))
c.AddFunc("@every 1m", cronSendReport)
c.AddFunc("15 0,8,16 * * *", cronSendWarReport)
c.Start()
return c
}
@ -19,10 +19,16 @@ func stopCron(c *cron.Cron) {
return
}
func cronSendReport() {
func cronSendWarReport() {
muxClients.RLock()
for _, c := range clients {
if c.Active {
p := JobPayloadFwdMsg{
ChatID64: cfg.Bot.Reportchat,
}
b, _ = json.Marshal(&p)
err := createJobCallback(objSubTypeJobFwdMsg, c.TGUserID64, objSubTypeMessageReportAck, b, 1*time.Minute)
logOnError(err, "cronSendWarReport : createJobCallback")
clientSendCWMsg(c.TGUserID64, `/report`)
}
}

5
def.go
View File

@ -290,6 +290,10 @@ type Job struct {
Payload []byte
}
type JobPayloadFwdMsg struct {
ChatID64 int64 `json:"chat_id"`
}
type JobPayloadMsgRefresh struct {
ObjID64 int64 `json:"obj_id"`
}
@ -530,6 +534,7 @@ const (
objSubTypeJobSaveRes = 614
objSubTypeJobVaultUserStatus = 615
objSubTypeJobVaultItemStatus = 616
objSubTypeJobFwdMsg = 617
objSubTypeItemResource = 701
objSubTypeItemAlch = 702
objSubTypeItemMisc = 703

23
job.go
View File

@ -741,14 +741,14 @@ func jobGDepositForward(j Job) {
cwm, err := parseSubTypeMessageGDepositReq(msg, rule.re)
if cwm.ItemID64 == p.ItemID64 && cwm.Quantity == p.Quantity {
log.Printf("jobGDepositForward : match (%d / %d).\n", cwm.ItemID64, cwm.Quantity)
//log.Printf("jobGDepositForward : match (%d / %d).\n", cwm.ItemID64, cwm.Quantity)
gDepositForwardMux.Lock()
gDepositForwardMsg = append(gDepositForwardMsg, j.Trigger)
gDepositForwardMux.Unlock()
err = setJobDone(j.ID64)
logOnError(err, "jobGDeposit : setJobDone")
} else {
log.Printf("jobGDepositForward : found (%d / %d), expected (%d / %d).\n", cwm.ItemID64, cwm.Quantity, p.ItemID64, p.Quantity)
//log.Printf("jobGDepositForward : found (%d / %d), expected (%d / %d).\n", cwm.ItemID64, cwm.Quantity, p.ItemID64, p.Quantity)
err = rescheduleJob(j.ID64, 0, time.Unix(maxUnixTimestamp, 0).UTC())
logOnError(err, "jobGDepositForward : rescheduleJob")
setJobCallback(j.ID64, j.UserID64, objSubTypeMessageGDepositReq)
@ -1149,3 +1149,22 @@ func jobGWithdraw(j Job) {
return
}
func jobFwdMsg(j Job) {
var p JobPayloadFwdMsg
err := setJobStart(j.ID64)
logOnError(err, "jobFwdMsg : setJobStart")
err = json.Unmarshal(j.Payload, &p)
logOnError(err, "jobFwdMsg : Unmarshal payload")
cwm, err := getObjMsg(j.Trigger)
logOnError(err, "jobFwdMsg : getObjMsg msg")
clientFwdCWMsg(j.UserID64, cwm.ID64, cwm.ChatID64, p.ChatID64)
err = setJobDone(j.ID64)
logOnError(err, "jobFwdMsg : setJobDone")
return
}

View File

@ -42,6 +42,7 @@ type Config struct {
Guild string
Mainchat int64
Depositchat int64
Reportchat int64
}
}

1
sql.go
View File

@ -566,6 +566,7 @@ func initDB() {
,(` + strconv.Itoa(objSubTypeJobSaveRes) + `, "job_save_res", "Save resources job", ` + strconv.Itoa(objTypeJob) + `)
,(` + strconv.Itoa(objSubTypeJobVaultUserStatus) + `, "job_vault_user_status", "Vault User Status job", ` + strconv.Itoa(objTypeJob) + `)
,(` + strconv.Itoa(objSubTypeJobVaultItemStatus) + `, "job_vault_item_status", "Vault Item Status job", ` + strconv.Itoa(objTypeJob) + `)
,(` + strconv.Itoa(objSubTypeJobFwdMsg) + `, "job_fwd_msg", "Forward Message job", ` + strconv.Itoa(objTypeJob) + `)
,(` + strconv.Itoa(objSubTypeItemResource) + `, "item_res", "Time", ` + strconv.Itoa(objTypeItem) + `)
,(` + strconv.Itoa(objSubTypeItemAlch) + `, "item_alch", "Time", ` + strconv.Itoa(objTypeItem) + `)
,(` + strconv.Itoa(objSubTypeItemMisc) + `, "item_misc", "Time", ` + strconv.Itoa(objTypeItem) + `)