fix(feeds): indexer identifier issues (#538)

* fix(torznab/rss): keep original name

* fix(feeds): get identifier via indexer join

* fix(feeds/web): remove identifier slugify
This commit is contained in:
Kyle Sanderson 2022-11-17 09:50:40 -08:00 committed by GitHub
parent dc42ca0042
commit a93b54bbbc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 61 additions and 90 deletions

View file

@ -69,22 +69,17 @@ func NewService(log logger.Logger, config *domain.Config, repo domain.IndexerRep
}
func (s *service) Store(ctx context.Context, indexer domain.Indexer) (*domain.Indexer, error) {
identifier := indexer.Identifier
// if indexer is rss or torznab do additional cleanup for identifier
switch indexer.Implementation {
case "torznab":
// if the name already contains torznab remove it
cleanName := strings.ReplaceAll(strings.ToLower(indexer.Name), "torznab", "")
identifier = slug.Make(fmt.Sprintf("%v-%v", indexer.Implementation, cleanName)) // torznab-name
case "torznab", "rss":
// make lowercase
cleanName := strings.ToLower(indexer.Name)
case "rss":
// if the name already contains rss remove it
cleanName := strings.ReplaceAll(strings.ToLower(indexer.Name), "rss", "")
identifier = slug.Make(fmt.Sprintf("%v-%v", indexer.Implementation, cleanName)) // rss-name
// torznab-name OR rss-name
indexer.Identifier = slug.Make(fmt.Sprintf("%v-%v", indexer.Implementation, cleanName))
}
indexer.Identifier = identifier
i, err := s.repo.Store(ctx, indexer)
if err != nil {
s.log.Error().Stack().Err(err).Msgf("failed to store indexer: %v", indexer.Name)
@ -92,8 +87,7 @@ func (s *service) Store(ctx context.Context, indexer domain.Indexer) (*domain.In
}
// add to indexerInstances
err = s.addIndexer(*i)
if err != nil {
if err = s.addIndexer(*i); err != nil {
s.log.Error().Stack().Err(err).Msgf("failed to add indexer: %v", indexer.Name)
return nil, err
}