Feature: Save releases (#36)

* chore: tidy deps

* refactor: database migration

* refactor: store release

* refactor: save release

* chore: add packages

* feat(web): show stats and recent releases

* refactor: simply filter struct

* feat: add eventbus

* chore: cleanup logging

* chore: update packages
This commit is contained in:
Ludvig Lundgren 2021-11-24 23:18:12 +01:00 committed by GitHub
parent d22dd2fe84
commit 7177e48c02
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
40 changed files with 5859 additions and 3328 deletions

View file

@ -7,6 +7,7 @@ import (
"os/signal"
"syscall"
"github.com/asaskevich/EventBus"
"github.com/r3labs/sse/v2"
"github.com/rs/zerolog/log"
"github.com/spf13/pflag"
@ -19,6 +20,7 @@ import (
"github.com/autobrr/autobrr/internal/database"
"github.com/autobrr/autobrr/internal/domain"
"github.com/autobrr/autobrr/internal/download_client"
"github.com/autobrr/autobrr/internal/events"
"github.com/autobrr/autobrr/internal/filter"
"github.com/autobrr/autobrr/internal/http"
"github.com/autobrr/autobrr/internal/indexer"
@ -47,6 +49,9 @@ func main() {
serverEvents.CreateStream("logs")
// setup internal eventbus
bus := EventBus.New()
// setup logger
logger.Setup(cfg, serverEvents)
@ -65,34 +70,37 @@ func main() {
}
// setup repos
// var announceRepo = database.NewAnnounceRepo(db)
var (
actionRepo = database.NewActionRepo(db)
downloadClientRepo = database.NewDownloadClientRepo(db)
filterRepo = database.NewFilterRepo(db)
indexerRepo = database.NewIndexerRepo(db)
ircRepo = database.NewIrcRepo(db)
releaseRepo = database.NewReleaseRepo(db)
userRepo = database.NewUserRepo(db)
)
var (
downloadClientService = download_client.NewService(downloadClientRepo)
actionService = action.NewService(actionRepo, downloadClientService)
actionService = action.NewService(actionRepo, downloadClientService, bus)
indexerService = indexer.NewService(indexerRepo)
filterService = filter.NewService(filterRepo, actionRepo, indexerService)
releaseService = release.NewService(actionService)
releaseService = release.NewService(releaseRepo, actionService)
announceService = announce.NewService(filterService, indexerService, releaseService)
ircService = irc.NewService(ircRepo, announceService)
userService = user.NewService(userRepo)
authService = auth.NewService(userService)
)
// register event subscribers
events.NewSubscribers(bus, releaseService)
addr := fmt.Sprintf("%v:%v", cfg.Host, cfg.Port)
errorChannel := make(chan error)
go func() {
httpServer := http.NewServer(serverEvents, addr, cfg.BaseURL, actionService, authService, downloadClientService, filterService, indexerService, ircService)
httpServer := http.NewServer(serverEvents, addr, cfg.BaseURL, actionService, authService, downloadClientService, filterService, indexerService, ircService, releaseService)
errorChannel <- httpServer.Open()
}()