mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-21 05:53:33 -07:00
Revered back to subsonic
Added indexer configuration back-end
This commit is contained in:
parent
129be92001
commit
6f2dcbf838
20 changed files with 368 additions and 478 deletions
|
@ -1,7 +1,9 @@
|
|||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Core.Providers.Core;
|
||||
using NzbDrone.Core.Providers.Indexer;
|
||||
using NzbDrone.Core.Repository;
|
||||
using SubSonic.Repository;
|
||||
|
||||
|
@ -10,33 +12,70 @@ namespace NzbDrone.Core.Providers
|
|||
public class IndexerProvider
|
||||
{
|
||||
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||
private readonly ConfigProvider _configProvider;
|
||||
private readonly IRepository _sonicRepo;
|
||||
private readonly IRepository _repository;
|
||||
|
||||
public IndexerProvider(IRepository sonicRepo, ConfigProvider configProvider)
|
||||
public IndexerProvider(IRepository repository)
|
||||
{
|
||||
_sonicRepo = sonicRepo;
|
||||
_configProvider = configProvider;
|
||||
_repository = repository;
|
||||
}
|
||||
|
||||
public virtual List<Indexer> AllIndexers()
|
||||
public IndexerProvider()
|
||||
{
|
||||
return _sonicRepo.All<Indexer>().OrderBy(i => i.Order).ToList();
|
||||
|
||||
}
|
||||
|
||||
public virtual List<Indexer> EnabledIndexers()
|
||||
public virtual List<IndexerSetting> AllIndexers()
|
||||
{
|
||||
return _sonicRepo.All<Indexer>().Where(i => i.Enabled).OrderBy(i => i.Order).ToList();
|
||||
return _repository.All<IndexerSetting>().ToList();
|
||||
}
|
||||
|
||||
public virtual void Update(Indexer indexer)
|
||||
public virtual void SaveSettings(IndexerSetting settings)
|
||||
{
|
||||
_sonicRepo.Update(indexer);
|
||||
if (settings.Id == 0)
|
||||
{
|
||||
Logger.Debug("Adding Indexer settings for {0}", settings.Name);
|
||||
_repository.Add(settings);
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.Debug("Updating Indexer settings for {0}", settings.Name);
|
||||
_repository.Update(settings);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual Indexer Single(int indexerId)
|
||||
public virtual IndexerSetting GetSettings(Type type)
|
||||
{
|
||||
return _sonicRepo.Single<Indexer>(indexerId);
|
||||
return _repository.Single<IndexerSetting>(s => s.IndexProviderType == type.ToString());
|
||||
}
|
||||
|
||||
public IndexerSetting GetSettings(int id)
|
||||
{
|
||||
return _repository.Single<IndexerSetting>(s => s.Id == id);
|
||||
}
|
||||
|
||||
public virtual void InitializeIndexers(IList<IndexerProviderBase> indexers)
|
||||
{
|
||||
Logger.Info("Initializing indexers. Count {0}", indexers.Count);
|
||||
|
||||
var currentIndexers = AllIndexers();
|
||||
|
||||
foreach (var feedProvider in indexers)
|
||||
{
|
||||
IndexerProviderBase indexerProviderLocal = feedProvider;
|
||||
if (!currentIndexers.Exists(c => c.IndexProviderType == indexerProviderLocal.GetType().ToString()))
|
||||
{
|
||||
var settings = new IndexerSetting()
|
||||
{
|
||||
Enable = false,
|
||||
IndexProviderType = indexerProviderLocal.GetType().ToString(),
|
||||
Name = indexerProviderLocal.Name
|
||||
};
|
||||
|
||||
SaveSettings(settings);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue