update project
This commit is contained in:
parent
7b98cebf7b
commit
d40a78d3c6
28
api/api.go
28
api/api.go
|
@ -44,21 +44,27 @@ func (api *API) StartScheduler(ctx context.Context) error {
|
|||
}
|
||||
|
||||
for _, subreddit := range subreddits {
|
||||
id, err := api.scheduler.AddFunc(subreddit.Schedule, func() {
|
||||
// TODO: Add download
|
||||
})
|
||||
err := api.scheduleSubreddit(subreddit)
|
||||
if err != nil {
|
||||
log.
|
||||
New(ctx).
|
||||
Err(err).
|
||||
Error(
|
||||
fmt.Sprintf("failed to start scheduler for subreddit '%s'", subreddit.Name),
|
||||
"subreddit", subreddit,
|
||||
)
|
||||
log.New(ctx).Err(err).Error(
|
||||
fmt.Sprintf("failed to start scheduler for subreddit '%s'", subreddit.Name),
|
||||
"subreddit", subreddit,
|
||||
)
|
||||
continue
|
||||
}
|
||||
api.scheduleMap[id] = subreddit
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (api *API) scheduleSubreddit(subreddit queries.Subreddit) error {
|
||||
id, err := api.scheduler.AddFunc(subreddit.Schedule, func() {
|
||||
})
|
||||
if err != nil {
|
||||
return errs.Wrap(err)
|
||||
}
|
||||
|
||||
api.scheduleMap[id] = subreddit
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ func (idr *ImageDownloadReader) checkSpeed() {
|
|||
|
||||
delta := idr.deltavalue.Load()
|
||||
|
||||
if delta >= idr.IdleSpeedThreshold {
|
||||
if delta >= int64(idr.IdleSpeedThreshold) {
|
||||
idr.deltavalue.Store(0)
|
||||
idr.cancelDebounce.Stop()
|
||||
idr.cancelDebounce = nil
|
||||
|
|
12
cli/serve.go
12
cli/serve.go
|
@ -3,7 +3,6 @@ package cli
|
|||
import (
|
||||
"io/fs"
|
||||
"os"
|
||||
"os/signal"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/tigorlazuardi/redmage/api"
|
||||
|
@ -32,16 +31,7 @@ var serveCmd = &cobra.Command{
|
|||
|
||||
server := server.New(cfg, api, PublicDir)
|
||||
|
||||
exit := make(chan struct{}, 1)
|
||||
|
||||
go func() {
|
||||
sig := make(chan os.Signal, 1)
|
||||
signal.Notify(sig, os.Interrupt)
|
||||
<-sig
|
||||
exit <- struct{}{}
|
||||
}()
|
||||
|
||||
if err := server.Start(exit); err != nil {
|
||||
if err := server.Start(cmd.Context().Done()); err != nil {
|
||||
log.New(cmd.Context()).Err(err).Error("failed to start server")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
|
5
go.mod
5
go.mod
|
@ -30,6 +30,8 @@ require (
|
|||
|
||||
require (
|
||||
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
||||
github.com/go-logr/logr v1.4.1 // indirect
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/knadh/koanf/maps v0.1.1 // indirect
|
||||
|
@ -38,6 +40,9 @@ require (
|
|||
github.com/mitchellh/copystructure v1.2.0 // indirect
|
||||
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
||||
github.com/sethvargo/go-retry v0.2.4 // indirect
|
||||
go.opentelemetry.io/otel v1.25.0 // indirect
|
||||
go.opentelemetry.io/otel/metric v1.25.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.25.0 // indirect
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20231219180239-dc181d75b848 // indirect
|
||||
golang.org/x/sync v0.6.0 // indirect
|
||||
|
|
11
go.sum
11
go.sum
|
@ -53,6 +53,11 @@ github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw=
|
|||
github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw=
|
||||
github.com/go-faster/errors v0.6.1 h1:nNIPOBkprlKzkThvS/0YaX8Zs9KewLCOSFQS5BU06FI=
|
||||
github.com/go-faster/errors v0.6.1/go.mod h1:5MGV2/2T9yvlrbhe9pD9LO5Z/2zCSq2T8j+Jpi2LAyY=
|
||||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
|
||||
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/go-sql-driver/mysql v1.8.0 h1:UtktXaU2Nb64z/pLiGIxY4431SJ4/dR5cjMmlVHgnT4=
|
||||
github.com/go-sql-driver/mysql v1.8.0/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
|
||||
github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 h1:TQcrn6Wq+sKGkpyPvppOz99zsMBaUOKXq6HSv655U1c=
|
||||
|
@ -198,8 +203,14 @@ github.com/ydb-platform/ydb-go-sdk/v3 v3.55.1 h1:Ebo6J5AMXgJ3A438ECYotA0aK7ETqjQ
|
|||
github.com/ydb-platform/ydb-go-sdk/v3 v3.55.1/go.mod h1:udNPW8eupyH/EZocecFmaSNJacKKYjzQa7cVgX5U2nc=
|
||||
go.opentelemetry.io/otel v1.20.0 h1:vsb/ggIY+hUjD/zCAQHpzTmndPqv/ml2ArbsbfBYTAc=
|
||||
go.opentelemetry.io/otel v1.20.0/go.mod h1:oUIGj3D77RwJdM6PPZImDpSZGDvkD9fhesHny69JFrs=
|
||||
go.opentelemetry.io/otel v1.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k=
|
||||
go.opentelemetry.io/otel v1.25.0/go.mod h1:Wa2ds5NOXEMkCmUou1WA7ZBfLTHWIsp034OVD7AO+Vg=
|
||||
go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA=
|
||||
go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s=
|
||||
go.opentelemetry.io/otel/trace v1.20.0 h1:+yxVAPZPbQhbC3OfAkeIVTky6iTFpcr4SiY9om7mXSQ=
|
||||
go.opentelemetry.io/otel/trace v1.20.0/go.mod h1:HJSK7F/hA5RlzpZ0zKDCHCDHm556LCDtKaAo6JmBFUU=
|
||||
go.opentelemetry.io/otel/trace v1.25.0 h1:tqukZGLwQYRIFtSQM2u2+yfMVTgGVeqRLPUYx1Dq6RM=
|
||||
go.opentelemetry.io/otel/trace v1.25.0/go.mod h1:hCCs70XM/ljO+BeQkyFnbK28SBIJ/Emuha+ccrCRT7I=
|
||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||
golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc=
|
||||
|
|
7
main.go
7
main.go
|
@ -6,6 +6,7 @@ import (
|
|||
"errors"
|
||||
"io/fs"
|
||||
"os"
|
||||
"os/signal"
|
||||
|
||||
"github.com/joho/godotenv"
|
||||
"github.com/tigorlazuardi/redmage/cli"
|
||||
|
@ -26,7 +27,11 @@ func main() {
|
|||
if err != nil {
|
||||
panic(errors.New("failed to create sub filesystem"))
|
||||
}
|
||||
if err := cli.RootCmd.ExecuteContext(context.Background()); err != nil {
|
||||
|
||||
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
|
||||
defer stop()
|
||||
|
||||
if err := cli.RootCmd.ExecuteContext(ctx); err != nil {
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
|
7
pkg/telemetry/telemetry.go
Normal file
7
pkg/telemetry/telemetry.go
Normal file
|
@ -0,0 +1,7 @@
|
|||
package telemetry
|
||||
|
||||
type Telemetry struct{}
|
||||
|
||||
func (te *Telemetry) Close() error {
|
||||
return nil
|
||||
}
|
Loading…
Reference in a new issue