diff --git a/bot.go b/bot.go index 2c160d4..a65e5ab 100644 --- a/bot.go +++ b/bot.go @@ -111,7 +111,8 @@ func botHelp(m *tb.Message) { /backup_import - import message database from URL /get_item_id - identify item_id from string /clients - list all connected clients -/g_deposit_all - deposit all res to vault`, +/g_deposit_all - deposit all res to vault +/g_withdraw .. - withdraw items`, FromMsgID64: int64(m.ID), FromChatID64: m.Chat.ID, } @@ -722,27 +723,19 @@ func botGWithdraw(m *tb.Message) { if !m.Private() { return } - /* + + r := regexp.MustCompile("^(( )*[a-z0-9]+ [0-9]+( )*)+$") + if r.MatchString(m.Payload) { p := JobPayloadGWithdraw{ MsgID64: int64(m.ID), ChatID64: m.Chat.ID, - Items: nil, + Request: m.Payload, Status: 0, } - */ - r := regexp.MustCompile("[a-z0-9]+ [0-9]+") - for _, l := range r.FindAllStringSubmatch(m.Payload, -1) { - fmt.Printf("%v\n", l) - /* - i := getObjItemID(``, l[1]) - q, _ := strconv.ParseInt(l[2], 10, 64) - */ - /* - ChatWarsItems - b, _ := json.Marshal(p) - t := time.Now().UTC() - _, err := createJob(objSubTypeJobGDeposit, objJobPriority, int64(m.Chat.ID), 0, t, b) - */ + b, _ := json.Marshal(p) + t := time.Now().UTC() + _, err := createJob(objSubTypeJobGWithdraw, objJobPriority, int64(m.Chat.ID), 0, t, b) + } if false { c := TGCommand{ diff --git a/job.go b/job.go index 5397855..3290588 100644 --- a/job.go +++ b/job.go @@ -890,3 +890,32 @@ func jobGDeposit(j Job) { logOnError(err, "jobGDeposit : setJobDone") return } + +func jobGWithdraw(j Job) { + var p JobPayloadGWithdraw + err := setJobStart(j.ID64) + logOnError(err, "jobGWithdraw : setJobStart") + + err = json.Unmarshal(j.Payload, &p) + logOnError(err, "jobGWithdraw : Unmarshal payload") + + r := regexp.MustCompile("[a-z0-9]+ [0-9]+") + for _, l := range r.FindAllStringSubmatch(p.Request, -1) { + fmt.Printf("jobGWithdraw : %v\n", l) + /* + i := getObjItemID(``, l[1]) + q, _ := strconv.ParseInt(l[2], 10, 64) + */ + /* + ChatWarsItems + b, _ := json.Marshal(p) + t := time.Now().UTC() + _, err := createJob(objSubTypeJobGDeposit, objJobPriority, int64(m.Chat.ID), 0, t, b) + */ + } + + err = setJobDone(j.ID64) + logOnError(err, "jobGWithdraw : setJobDone") + + return +} diff --git a/workers.go b/workers.go index dea7cf9..ef9f9fd 100644 --- a/workers.go +++ b/workers.go @@ -548,6 +548,8 @@ func JobWorker(id int, jobs <-chan Job) { jobGDeposit(j) case objSubTypeJobGDepositForward: jobGDepositForward(j) + case objSubTypeJobGWithdraw: + jobGWithdraw(j) default: log.Printf("jobWorker["+strconv.Itoa(id)+"] : No handler for job type #%d.\n", j.JobTypeID) }