package engine import ( "context" "fmt" "log" "time" "git.jadud.com/jadudm/grosbeak/internal/liteq" base "git.jadud.com/jadudm/grosbeak/internal/types" ) func Entre(queue *liteq.JobQueue, ej *base.EntreJob) error { n := time.Now() var ignore_tag string switch ej.UpdateFrequency { case base.UPDATE_DAILY: ignore_tag = fmt.Sprintf("%s|y%d-yd%d", ej.URL, n.Year(), n.YearDay()) case base.UPDATE_WEEKLY: ignore_tag = fmt.Sprintf("%s|y%d-w%d", ej.URL, n.Year(), n.YearDay()/7) case base.UPDATE_MONTHLY: ignore_tag = fmt.Sprintf("%s|y%d-m%d", ej.URL, n.Year(), n.Month()) default: ignore_tag = fmt.Sprintf("%s|y%d-yd%d", ej.URL, n.Year(), n.YearDay()) } err := queue.QueueJob(context.Background(), liteq.QueueJobParams{ Queue: "fetch", // This only works for things in the `queued` state DedupingKey: liteq.IgnoreDuplicate(ignore_tag), Job: ej.AsJson(), }) if err != nil { log.Printf("entre err %s: %s\n", ej.URL, err.Error()) } return err }