feat: add torznab feed support (#246)

* feat(torznab): initial impl

* feat: torznab processing

* feat: torznab more scheduling

* feat: feeds web

* feat(feeds): create on indexer create

* feat(feeds): update migration

* feat(feeds): restart on update

* feat(feeds): set cron schedule

* feat(feeds): use basic empty state

* chore: remove duplicate migrations

* feat: parse release size from torznab

* chore: cleanup unused code
This commit is contained in:
Ludvig Lundgren 2022-04-25 12:58:54 +02:00 committed by GitHub
parent d4d864cd2c
commit bb62e724a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 2408 additions and 361 deletions

View file

@ -10,6 +10,8 @@ import (
"text/template"
"github.com/autobrr/autobrr/internal/domain"
"github.com/autobrr/autobrr/internal/release"
"github.com/rs/zerolog/log"
)
@ -20,15 +22,15 @@ type Processor interface {
type announceProcessor struct {
indexer domain.IndexerDefinition
announceSvc Service
releaseSvc release.Service
queues map[string]chan string
}
func NewAnnounceProcessor(announceSvc Service, indexer domain.IndexerDefinition) Processor {
func NewAnnounceProcessor(releaseSvc release.Service, indexer domain.IndexerDefinition) Processor {
ap := &announceProcessor{
announceSvc: announceSvc,
indexer: indexer,
releaseSvc: releaseSvc,
indexer: indexer,
}
// setup queues and consumers
@ -110,7 +112,7 @@ func (a *announceProcessor) processQueue(queue chan string) {
}
// process release in a new go routine
go a.announceSvc.Process(newRelease)
go a.releaseSvc.Process(newRelease)
}
}