🐛 签到修复 & 定时重置状态

This commit is contained in:
sugarBecomer
2025-11-08 21:47:08 +08:00
parent 604245add2
commit 1323bc7aa8
7 changed files with 26 additions and 17 deletions
@@ -45,7 +45,7 @@ func NewImageClassifier(modelPath, classesPath string) (*ImageClassifier, error)
ort.SetSharedLibraryPath(dir)
err = ort.InitializeEnvironment()
if err != nil {
logger.Logger.Info("初始化onnx:", zap.String("绝对路径", absPath), zap.String("父文件夹", dir))
logger.Logger.Error("初始化onnx:", zap.String("绝对路径", absPath), zap.String("父文件夹", dir))
return nil, fmt.Errorf("初始化ONNX Runtime失败: %v", err)
}
@@ -161,7 +161,7 @@ func (c *CpdailyCollectionTask) QueryFormByTitle(ctx context.Context, titleGlob
}
if matchTask == nil {
utils.OkOrPanic(errors.NewBusinessError(404, fmt.Sprintf("未找到表单信息: %s", titleGlob)), func(err error) error {
utils.OkOrPanic(errors.NewBusinessError(503, fmt.Sprintf("未找到表单信息: %s", titleGlob)), func(err error) error {
return oops.With("host", c.host).
In("CpdailyCollectionTask.QueryFormByTitle").
Wrap(err)
@@ -196,7 +196,7 @@ func (c *CpdailyCollectionTask) QueryFormByTitle(ctx context.Context, titleGlob
detailDatas := detailJSON["datas"].MapStrVar()
if len(detailDatas) == 0 {
utils.OkOrPanic(errors.NewBusinessError(404, "未找到表单数据"), func(err error) error {
utils.OkOrPanic(errors.NewBusinessError(503, "未找到表单数据"), func(err error) error {
return oops.With("host", c.host).
In("CpdailyCollectionTask.QueryFormByTitle").
With("titleGlob", titleGlob).
@@ -230,7 +230,7 @@ func (c *CpdailyCollectionTask) QueryFormByTitle(ctx context.Context, titleGlob
formDatas := formJSON["datas"].MapStrVar()
if len(formDatas) == 0 {
utils.OkOrPanic(errors.NewBusinessError(404, "未找到表单数据"), func(err error) error {
utils.OkOrPanic(errors.NewBusinessError(503, "未找到表单数据"), func(err error) error {
return oops.With("host", c.host).
In("CpdailyCollectionTask.QueryFormByTitle").
With("titleGlob", titleGlob).
+9 -9
View File
@@ -147,8 +147,8 @@ func (c *CpdailyAutoSignTask) QueryFormByTitle(ctx context.Context, titleGlob st
findMatchTitle := func(jsonArr []any) map[string]*gvar.Var {
for _, rawJson := range jsonArr {
item, ok := rawJson.(map[string]*gvar.Var)
if !ok {
item := gvar.New(rawJson).MapStrVar()
if len(item) == 0 {
continue
}
taskName, exist := item["taskName"]
@@ -178,7 +178,7 @@ func (c *CpdailyAutoSignTask) QueryFormByTitle(ctx context.Context, titleGlob st
if matchTask == nil {
matchTask = findMatchTitle(signedTasks)
if matchTask == nil {
utils.OkOrPanic(errors.NewBusinessError(404, fmt.Sprintf("任务未找到: %s", titleGlob)), func(err error) error {
utils.OkOrPanic(errors.NewBusinessError(503, fmt.Sprintf("任务未找到: %s", titleGlob)), func(err error) error {
return oops.With("host", c.host).
In("CpdailyAutoSignTask.QueryFormByTitle").
Wrap(err)
@@ -210,7 +210,7 @@ func (c *CpdailyAutoSignTask) QueryFormByTitle(ctx context.Context, titleGlob st
formDatas := detailResponseJSON["datas"].MapStrVar()
if len(formDatas) == 0 {
utils.OkOrPanic(errors.NewBusinessError(404, "任务数据为空"), func(err error) error {
utils.OkOrPanic(errors.NewBusinessError(503, "任务数据为空"), func(err error) error {
return oops.With("host", c.host).
In("CpdailyAutoSignTask.QueryFormByTitle").
With("titleGlob", titleGlob).
@@ -293,7 +293,7 @@ func (c *CpdailyAutoSignTask) QueryFormByYearMonth(ctx context.Context, titleGlo
if matchTask == nil {
matchTask = findMatchTitle(signedTasks)
if matchTask == nil {
utils.OkOrPanic(errors.NewBusinessError(404, fmt.Sprintf("任务未找到: %s", titleGlob)), func(err error) error {
utils.OkOrPanic(errors.NewBusinessError(503, fmt.Sprintf("任务未找到: %s", titleGlob)), func(err error) error {
return oops.
With("host", c.host).
With("year", year).
@@ -332,7 +332,7 @@ func (c *CpdailyAutoSignTask) QueryFormByYearMonth(ctx context.Context, titleGlo
formDatas := detailResponseJSON["datas"].MapStrVar()
if len(formDatas) == 0 {
utils.OkOrPanic(errors.NewBusinessError(404, "任务数据为空"), func(err error) error {
utils.OkOrPanic(errors.NewBusinessError(503, "任务数据为空"), func(err error) error {
return oops.
With("host", c.host).
With("year", year).
@@ -379,12 +379,12 @@ func (c *CpdailyAutoSignTask) ParseFormJson(ctx context.Context, rawJson map[str
dto = &formtype.CpTaskFormItem{
Title: "签到具体地址",
ColName: "address",
Type: formtype.ItemTypeAddress,
Type: formtype.ItemTypeInput,
Required: true,
}
list = append(list, dto)
var current uint
var current uint = 1
if isPhoto := rows["isPhoto"]; isPhoto != nil && isPhoto.Int() == 1 {
dto = &formtype.CpTaskFormItem{
@@ -539,7 +539,7 @@ func (c *CpdailyAutoSignTask) FillCustomForm(ctx context.Context, form map[strin
previewUrl := imageuploader.UploadImageFromStorage(ctx, c.host, imageId, types.TaskTypeSign, c.client)
resultForm["signImg"] = gvar.New(previewUrl)
resultForm["signPhotoUrl"] = gvar.New(previewUrl)
}
// 处理验证码
+4 -2
View File
@@ -1,9 +1,11 @@
package cst
const (
TaskCpdaily = "task:cpdaily"
TaskEmail = "task:email"
TaskCpdaily = "task:cpdaily"
TaskEmail = "task:email"
TaskResetDaily = "task:reset:daily"
TaskQueueCpdaily = "queue:cpdaily"
TaskQueueEmail = "queue:email"
TaskQueueDefault = "default"
)
+5
View File
@@ -14,12 +14,17 @@ func Init(ctx context.Context) {
initServer(ctx)
initInspector(ctx)
initScanner()
initPeriodicTasks(ctx)
}
func Stop() {
globalScanner.StopScan()
g.Log().Info(gctx.GetInitCtx(), "task scanner stopped")
if globalPeriodicTaskManager != nil {
globalPeriodicTaskManager.Shutdown()
}
e := queue.GetClient().Close()
utils.OkOrPanic(e)
g.Log().Info(gctx.GetInitCtx(), "asynq client closed")
+1 -1
View File
@@ -116,7 +116,7 @@ func (ts *TaskScanner) scanCpdailyTask() {
e = utils.Catch(func() {
queue.AddTask(ts.ctx, asynq.NewTask(cst.TaskCpdaily, payloadWriter.Bytes()),
asynq.TaskID(fmt.Sprintf("cpdaily:task:%d", task.ID)),
asynq.TaskID(fmt.Sprintf("cpdaily:task:schedule:%d", task.ID)),
asynq.MaxRetry(3),
asynq.Unique(10*time.Second),
asynq.ProcessAt(execTime),
+3 -1
View File
@@ -30,7 +30,8 @@ func initServer(ctx context.Context) {
ErrorHandler: taskErrorHandler{},
Queues: map[string]int{
cst.TaskQueueEmail: 2,
cst.TaskQueueCpdaily: 8,
cst.TaskQueueCpdaily: 10,
cst.TaskQueueDefault: 1,
},
})
@@ -38,6 +39,7 @@ func initServer(ctx context.Context) {
mux.Handle(cst.TaskCpdaily, &CpdailyTaskHandler{})
mux.Handle(cst.TaskEmail, &EmailTaskHandler{})
mux.Handle(cst.TaskResetDaily, &ResetTaskHandler{})
e := globalServer.Start(mux)
utils.OkOrPanic(e)