mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 00:39:13 +00:00
feat(indexers): add support for optional baseurl override (#551)
* feat(indexers): optional baseurl override * feat(indexers): update baseUrl parsing * refactor(indexers): BREAKING move parse to IRC struct * Move Parse as part of IRC struct from Indexer * Updated definitions * Build torrentUrl in stages * Use new url.JoinPath to build torrentUrl * Update tests * refactor(indexers): select option obj * refactor(indexers): make backwards compatible
This commit is contained in:
parent
301180e55b
commit
25a165b764
66 changed files with 1533 additions and 1211 deletions
|
@ -227,6 +227,7 @@ func (s *service) mapIndexer(indexer domain.Indexer) (*domain.IndexerDefinition,
|
|||
d.Name = indexer.Name
|
||||
d.Identifier = indexer.Identifier
|
||||
d.Implementation = indexer.Implementation
|
||||
d.BaseURL = indexer.BaseURL
|
||||
d.Enabled = indexer.Enabled
|
||||
|
||||
if d.SettingsMap == nil {
|
||||
|
@ -262,6 +263,7 @@ func (s *service) updateMapIndexer(indexer domain.Indexer) (*domain.IndexerDefin
|
|||
d.Name = indexer.Name
|
||||
d.Identifier = indexer.Identifier
|
||||
d.Implementation = indexer.Implementation
|
||||
d.BaseURL = indexer.BaseURL
|
||||
d.Enabled = indexer.Enabled
|
||||
|
||||
if d.SettingsMap == nil {
|
||||
|
@ -300,16 +302,14 @@ func (s *service) GetTemplates() ([]domain.IndexerDefinition, error) {
|
|||
|
||||
func (s *service) Start() error {
|
||||
// load all indexer definitions
|
||||
err := s.LoadIndexerDefinitions()
|
||||
if err != nil {
|
||||
if err := s.LoadIndexerDefinitions(); err != nil {
|
||||
s.log.Error().Err(err).Msg("could not load indexer definitions")
|
||||
return err
|
||||
}
|
||||
|
||||
if s.config.CustomDefinitions != "" {
|
||||
// load custom indexer definitions
|
||||
err = s.LoadCustomIndexerDefinitions()
|
||||
if err != nil {
|
||||
if err := s.LoadCustomIndexerDefinitions(); err != nil {
|
||||
return errors.Wrap(err, "could not load custom indexer definitions")
|
||||
}
|
||||
}
|
||||
|
@ -356,8 +356,6 @@ func (s *service) removeIndexer(indexer domain.Indexer) {
|
|||
|
||||
// remove mapped definition
|
||||
delete(s.mappedDefinitions, indexer.Identifier)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (s *service) addIndexer(indexer domain.Indexer) error {
|
||||
|
@ -465,16 +463,14 @@ func (s *service) LoadIndexerDefinitions() error {
|
|||
|
||||
s.log.Trace().Msgf("parsing: %v", file)
|
||||
|
||||
var d *domain.IndexerDefinition
|
||||
|
||||
data, err := fs.ReadFile(Definitions, file)
|
||||
if err != nil {
|
||||
s.log.Error().Stack().Err(err).Msgf("failed reading file: %v", file)
|
||||
return errors.Wrap(err, "could not read file: %v", file)
|
||||
}
|
||||
|
||||
err = yaml.Unmarshal(data, &d)
|
||||
if err != nil {
|
||||
var d domain.IndexerDefinition
|
||||
if err = yaml.Unmarshal(data, &d); err != nil {
|
||||
s.log.Error().Stack().Err(err).Msgf("failed unmarshal file: %v", file)
|
||||
return errors.Wrap(err, "could not unmarshal file: %v", file)
|
||||
}
|
||||
|
@ -483,7 +479,7 @@ func (s *service) LoadIndexerDefinitions() error {
|
|||
d.Implementation = "irc"
|
||||
}
|
||||
|
||||
s.definitions[d.Identifier] = *d
|
||||
s.definitions[d.Identifier] = d
|
||||
}
|
||||
|
||||
s.log.Debug().Msgf("Loaded %d indexer definitions", len(s.definitions))
|
||||
|
@ -524,14 +520,13 @@ func (s *service) LoadCustomIndexerDefinitions() error {
|
|||
|
||||
s.log.Trace().Msgf("parsing custom: %v", file)
|
||||
|
||||
//data, err := fs.ReadFile(Definitions, filePath)
|
||||
data, err := os.ReadFile(file)
|
||||
if err != nil {
|
||||
s.log.Error().Stack().Err(err).Msgf("failed reading file: %v", file)
|
||||
return errors.Wrap(err, "could not read file: %v", file)
|
||||
}
|
||||
|
||||
var d *domain.IndexerDefinition
|
||||
var d *domain.IndexerDefinitionCustom
|
||||
if err = yaml.Unmarshal(data, &d); err != nil {
|
||||
s.log.Error().Stack().Err(err).Msgf("failed unmarshal file: %v", file)
|
||||
return errors.Wrap(err, "could not unmarshal file: %v", file)
|
||||
|
@ -546,7 +541,12 @@ func (s *service) LoadCustomIndexerDefinitions() error {
|
|||
d.Implementation = "irc"
|
||||
}
|
||||
|
||||
s.definitions[d.Identifier] = *d
|
||||
// to prevent crashing from non-updated definitions lets skip
|
||||
if d.Implementation == "irc" && d.IRC.Parse == nil {
|
||||
s.log.Warn().Msgf("DEPRECATED: indexer definition version: %v", file)
|
||||
}
|
||||
|
||||
s.definitions[d.Identifier] = *d.ToIndexerDefinition()
|
||||
|
||||
customCount++
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue