This commit is contained in:
shoopea 2019-05-10 21:57:01 +08:00
parent 239c45db8a
commit 364f541561
2 changed files with 48 additions and 27 deletions

27
bot.go
View File

@ -87,11 +87,32 @@ func botMsgRescan(m *tb.Message) (string, error) {
} }
r := regexp.MustCompile("^[0-9]+$") r := regexp.MustCompile("^[0-9]+$")
if r.MatchString(m.Payload) { if r.MatchString(m.Payload) {
return "Rescaning msg #" + m.Payload, nil m, _ := strconv.ParseInt(m.Payload, 10, 64)
p := JobPayloadRescanMsg{
MsgID64: m,
}
b, _ := json.Marshal(p)
err := createJob(objSubTypeJobRescanMsg, 2, time.Now(), b)
logOnError(err, "botMsgRescan : createJob(objSubTypeJobRescanMsg)")
if err != nil {
return "Error scheduling the rescan for msg #" + m.Payload, nil
} else {
return "Rescaning msg #" + m.Payload, nil
}
} }
r = regexp.MustCompile("^all$") r = regexp.MustCompile("^all$")
if r.MatchString(m.Payload) { if r.MatchString(m.Payload) {
return "Rescaning all msg", nil m, _ := strconv.ParseInt(m.Payload, 10, 64)
p := JobPayloadRescanAllMsg{}
b, _ := json.Marshal(p)
err := createJob(objSubTypeJobRescanAllMsg, 3, time.Now(), b)
logOnError(err, "botMsgRescan : createJob(objSubTypeJobRescanAllMsg)")
if err != nil {
return "Error scheduling the rescan for all msg", nil
} else {
return "Rescaning all msg scheduled", nil
}
} }
return `rescaning`, nil return "/msg_rescan msg_id or /msg_rescan all", nil
} }

48
sql.go
View File

@ -1324,35 +1324,35 @@ func insertMsgAuctionAnnounce(m *ChatWarsMessageAuctionAnnounce) error {
return nil return nil
} }
func createJob(job_type_id int32, payload []byte) error { func createJob(job_type_id int32, priority int32, schedule time.Time, payload []byte) error {
/* res, err := db.Exec(`INSERT INTO obj (obj_type_id, obj_sub_type_id)
res, err := db.Exec(`INSERT INTO obj (obj_type_id, obj_sub_type_id) VALUES (` + strconv.Itoa(objTypeJob) + `,` + strconv.Itoa(job_type_id) + `);`)
VALUES (` + strconv.Itoa(objTypeMessage) + `,` + strconv.Itoa(objSubTypeMessageUnknown) + `);`) logOnError(err, "createJob : insert obj")
if err != nil { if err != nil {
return 0, err return err
} }
objId, err := res.LastInsertId() objId, err := res.LastInsertId()
if err != nil { logOnError(err, "createJob : get last insert Id")
return 0, err if err != nil {
} return err
}
stmt, err := db.Prepare(`INSERT INTO obj_msg (obj_id, msg_id, chat_id, user_id, sender_user_id, date, text) stmt, err := db.Prepare(`INSERT INTO obj_job (obj_id, priority, status, schedule, start, end, payload)
VALUES (?, ?, ?, ?, ?, ?, ?);`) VALUES (?, ?, ?, ?, NULL, NULL, ?);`)
if err != nil { logOnError(err, "createJob : prepare insert obj_job")
return 0, err if err != nil {
} return err
defer stmt.Close() }
defer stmt.Close()
_, err = stmt.Exec(objId, m.ID64, m.ChatID64, m.UserID64, m.SenderUserID64, m.Date, m.Text) _, err = stmt.Exec(objId, priority, objJobStatusNew, schedule, payload)
if err != nil { logOnError(err, "createJob : insert obj_job")
return 0, err if err != nil {
} return err
}
return objId, nil
*/
return nil return nil
} }
func loadMsgParsingRules() (m map[int]MessageParsingRule, err error) { func loadMsgParsingRules() (m map[int]MessageParsingRule, err error) {