mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 08:49:13 +00:00
fix: announce parse queue (#50)
This commit is contained in:
parent
709599104b
commit
bc064e15e2
2 changed files with 12 additions and 7 deletions
|
@ -1,4 +1,4 @@
|
||||||
package irc
|
package announce
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
@ -50,6 +50,7 @@ func (a *announceProcessor) setupQueues() {
|
||||||
channel = strings.ToLower(channel)
|
channel = strings.ToLower(channel)
|
||||||
|
|
||||||
queues[channel] = make(chan string, 128)
|
queues[channel] = make(chan string, 128)
|
||||||
|
log.Trace().Msgf("announce: setup queue: %v", channel)
|
||||||
}
|
}
|
||||||
|
|
||||||
a.queues = queues
|
a.queues = queues
|
||||||
|
@ -58,7 +59,9 @@ func (a *announceProcessor) setupQueues() {
|
||||||
func (a *announceProcessor) setupQueueConsumers() {
|
func (a *announceProcessor) setupQueueConsumers() {
|
||||||
for queueName, queue := range a.queues {
|
for queueName, queue := range a.queues {
|
||||||
go func(name string, q chan string) {
|
go func(name string, q chan string) {
|
||||||
|
log.Trace().Msgf("announce: setup queue consumer: %v", name)
|
||||||
a.processQueue(q)
|
a.processQueue(q)
|
||||||
|
log.Trace().Msgf("announce: queue consumer stopped: %v", name)
|
||||||
}(queueName, queue)
|
}(queueName, queue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -95,6 +98,7 @@ func (a *announceProcessor) processQueue(queue chan string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if parseFailed {
|
if parseFailed {
|
||||||
|
log.Trace().Msg("announce: parse failed")
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,12 +155,12 @@ func (a *announceProcessor) processQueue(queue chan string) {
|
||||||
log.Info().Msgf("Matched '%v' (%v) for %v", newRelease.TorrentName, newRelease.Filter.Name, newRelease.Indexer)
|
log.Info().Msgf("Matched '%v' (%v) for %v", newRelease.TorrentName, newRelease.Filter.Name, newRelease.Indexer)
|
||||||
|
|
||||||
// process release
|
// process release
|
||||||
go func() {
|
go func(rel *domain.Release) {
|
||||||
err = a.releaseSvc.Process(*newRelease)
|
err = a.releaseSvc.Process(*rel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error().Err(err).Msgf("could not process release: %+v", newRelease)
|
log.Error().Err(err).Msgf("could not process release: %+v", newRelease)
|
||||||
}
|
}
|
||||||
}()
|
}(newRelease)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/autobrr/autobrr/internal/announce"
|
||||||
"github.com/autobrr/autobrr/internal/domain"
|
"github.com/autobrr/autobrr/internal/domain"
|
||||||
"github.com/autobrr/autobrr/internal/filter"
|
"github.com/autobrr/autobrr/internal/filter"
|
||||||
"github.com/autobrr/autobrr/internal/release"
|
"github.com/autobrr/autobrr/internal/release"
|
||||||
|
@ -34,7 +35,7 @@ type Handler struct {
|
||||||
network *domain.IrcNetwork
|
network *domain.IrcNetwork
|
||||||
filterService filter.Service
|
filterService filter.Service
|
||||||
releaseService release.Service
|
releaseService release.Service
|
||||||
announceProcessors map[string]Processor
|
announceProcessors map[string]announce.Processor
|
||||||
definitions []domain.IndexerDefinition
|
definitions []domain.IndexerDefinition
|
||||||
|
|
||||||
client *irc.Client
|
client *irc.Client
|
||||||
|
@ -60,7 +61,7 @@ func NewHandler(network domain.IrcNetwork, filterService filter.Service, release
|
||||||
filterService: filterService,
|
filterService: filterService,
|
||||||
releaseService: releaseService,
|
releaseService: releaseService,
|
||||||
definitions: definitions,
|
definitions: definitions,
|
||||||
announceProcessors: map[string]Processor{},
|
announceProcessors: map[string]announce.Processor{},
|
||||||
validAnnouncers: map[string]struct{}{},
|
validAnnouncers: map[string]struct{}{},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,7 +72,7 @@ func NewHandler(network domain.IrcNetwork, filterService filter.Service, release
|
||||||
for _, channel := range definition.IRC.Channels {
|
for _, channel := range definition.IRC.Channels {
|
||||||
channel = strings.ToLower(channel)
|
channel = strings.ToLower(channel)
|
||||||
|
|
||||||
h.announceProcessors[channel] = NewAnnounceProcessor(definition, filterService, releaseService)
|
h.announceProcessors[channel] = announce.NewAnnounceProcessor(definition, filterService, releaseService)
|
||||||
}
|
}
|
||||||
|
|
||||||
// create map of valid announcers
|
// create map of valid announcers
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue