1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2025-11-06 09:19:38 +02:00

ReSharper code cleanup

This commit is contained in:
kay.one
2011-04-09 19:44:01 -07:00
parent 8cade435d1
commit e896af5cd0
138 changed files with 2368 additions and 2218 deletions

View File

@@ -1,7 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NzbDrone.Core.Providers
{
@@ -13,6 +10,7 @@ namespace NzbDrone.Core.Providers
{
throw new NotImplementedException();
}
public virtual bool StartSearch(int seriesId)
{
throw new NotImplementedException();

View File

@@ -238,10 +238,10 @@ namespace NzbDrone.Core.Providers.Core
if (dbValue == null)
{
_sonicRepo.Add(new Config
{
Key = key,
Value = value
});
{
Key = key,
Value = value
});
}
else
{

View File

@@ -5,8 +5,6 @@ namespace NzbDrone.Core.Providers.Core
{
public class DiskProvider
{
#region IDiskProvider Members
public virtual bool FolderExists(string path)
{
return Directory.Exists(path);
@@ -48,7 +46,5 @@ namespace NzbDrone.Core.Providers.Core
{
File.Move(sourcePath, destinationPath);
}
#endregion
}
}

View File

@@ -47,7 +47,6 @@ namespace NzbDrone.Core.Providers.Core
{
var webClient = new WebClient();
webClient.DownloadFile(request, filename);
}
catch (Exception ex)
{
@@ -55,8 +54,6 @@ namespace NzbDrone.Core.Providers.Core
Logger.TraceException(ex.Message, ex);
throw;
}
}
public virtual void DownloadFile(string request, string filename, string username, string password)

View File

@@ -1,7 +1,6 @@
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Linq;
using NLog;
using NzbDrone.Core.Model;
using NzbDrone.Core.Repository;
@@ -13,17 +12,17 @@ namespace NzbDrone.Core.Providers
{
//TODO: Remove parsing of the series name, it should be done in series provider
private readonly IRepository _sonicRepo;
private readonly SeriesProvider _series;
private readonly SeasonProvider _seasons;
private readonly TvDbProvider _tvDb;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly HistoryProvider _history;
private readonly QualityProvider _quality;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly SeasonProvider _seasons;
private readonly SeriesProvider _series;
private readonly IRepository _sonicRepo;
private readonly TvDbProvider _tvDb;
public EpisodeProvider(IRepository sonicRepo, SeriesProvider seriesProvider,
SeasonProvider seasonProvider, TvDbProvider tvDbProvider,
HistoryProvider history, QualityProvider quality)
SeasonProvider seasonProvider, TvDbProvider tvDbProvider,
HistoryProvider history, QualityProvider quality)
{
_sonicRepo = sonicRepo;
_series = seriesProvider;
@@ -35,7 +34,6 @@ namespace NzbDrone.Core.Providers
public EpisodeProvider()
{
}
public virtual Episode GetEpisode(long id)
@@ -45,7 +43,9 @@ namespace NzbDrone.Core.Providers
public virtual Episode GetEpisode(int seriesId, int seasonNumber, int episodeNumber)
{
return _sonicRepo.Single<Episode>(c => c.SeriesId == seriesId && c.SeasonNumber == seasonNumber && c.EpisodeNumber == episodeNumber);
return
_sonicRepo.Single<Episode>(
c => c.SeriesId == seriesId && c.SeasonNumber == seasonNumber && c.EpisodeNumber == episodeNumber);
}
public virtual IList<Episode> GetEpisodeBySeries(long seriesId)
@@ -68,9 +68,9 @@ namespace NzbDrone.Core.Providers
}
/// <summary>
/// Comprehensive check on whether or not this episode is needed.
/// Comprehensive check on whether or not this episode is needed.
/// </summary>
/// <param name="parsedReport">Episode that needs to be checked</param>
/// <param name = "parsedReport">Episode that needs to be checked</param>
/// <returns></returns>
public virtual bool IsNeeded(EpisodeParseResult parsedReport)
{
@@ -112,11 +112,10 @@ namespace NzbDrone.Core.Providers
continue;
}
return true;//If we get to this point and the file has not yet been rejected then accept it
return true; //If we get to this point and the file has not yet been rejected then accept it
}
return false;
}
public virtual void RefreshEpisodeInfo(int seriesId)
@@ -130,7 +129,7 @@ namespace NzbDrone.Core.Providers
var newList = new List<Episode>();
Logger.Debug("Updating season info for series:{0}", targetSeries.SeriesName);
targetSeries.Episodes.Select(e => new { e.SeasonId, e.SeasonNumber })
targetSeries.Episodes.Select(e => new {e.SeasonId, e.SeasonNumber})
.Distinct().ToList()
.ForEach(s => _seasons.EnsureSeason(seriesId, s.SeasonId, s.SeasonNumber));
@@ -145,19 +144,20 @@ namespace NzbDrone.Core.Providers
if (episode.FirstAired < new DateTime(1753, 1, 1))
episode.FirstAired = new DateTime(1753, 1, 1);
Logger.Trace("Updating info for series:{0} - episode:{1}", targetSeries.SeriesName, episode.EpisodeNumber);
var newEpisode = new Episode()
{
AirDate = episode.FirstAired,
EpisodeId = episode.Id,
EpisodeNumber = episode.EpisodeNumber,
Language = episode.Language.Abbriviation,
Overview = episode.Overview,
SeasonId = episode.SeasonId,
SeasonNumber = episode.SeasonNumber,
SeriesId = seriesId,
Title = episode.EpisodeName
};
Logger.Trace("Updating info for series:{0} - episode:{1}", targetSeries.SeriesName,
episode.EpisodeNumber);
var newEpisode = new Episode
{
AirDate = episode.FirstAired,
EpisodeId = episode.Id,
EpisodeNumber = episode.EpisodeNumber,
Language = episode.Language.Abbriviation,
Overview = episode.Overview,
SeasonId = episode.SeasonId,
SeasonNumber = episode.SeasonNumber,
SeriesId = seriesId,
Title = episode.EpisodeName
};
if (_sonicRepo.Exists<Episode>(e => e.EpisodeId == newEpisode.EpisodeId))
{
@@ -172,7 +172,8 @@ namespace NzbDrone.Core.Providers
}
catch (Exception e)
{
Logger.FatalException(String.Format("An error has occurred while updating episode info for series {0}", seriesId), e);
Logger.FatalException(
String.Format("An error has occurred while updating episode info for series {0}", seriesId), e);
failCount++;
}
}
@@ -180,12 +181,14 @@ namespace NzbDrone.Core.Providers
_sonicRepo.AddMany(newList);
_sonicRepo.UpdateMany(updateList);
Logger.Debug("Finished episode refresh for series:{0}. Successful:{1} - Failed:{2} ", targetSeries.SeriesName, successCount, failCount);
Logger.Debug("Finished episode refresh for series:{0}. Successful:{1} - Failed:{2} ",
targetSeries.SeriesName, successCount, failCount);
}
public virtual void RefreshEpisodeInfo(Season season)
{
Logger.Info("Starting episode info refresh for season {0} of series:{1}", season.SeasonNumber, season.SeriesId);
Logger.Info("Starting episode info refresh for season {0} of series:{1}", season.SeasonNumber,
season.SeriesId);
int successCount = 0;
int failCount = 0;
var targetSeries = _tvDb.GetSeries(season.SeriesId, true);
@@ -204,19 +207,20 @@ namespace NzbDrone.Core.Providers
if (episode.FirstAired < new DateTime(1753, 1, 1))
episode.FirstAired = new DateTime(1753, 1, 1);
Logger.Trace("Updating info for series:{0} - episode:{1}", targetSeries.SeriesName, episode.EpisodeNumber);
var newEpisode = new Episode()
{
AirDate = episode.FirstAired,
EpisodeId = episode.Id,
EpisodeNumber = episode.EpisodeNumber,
Language = episode.Language.Abbriviation,
Overview = episode.Overview,
SeasonId = episode.SeasonId,
SeasonNumber = episode.SeasonNumber,
SeriesId = season.SeriesId,
Title = episode.EpisodeName
};
Logger.Trace("Updating info for series:{0} - episode:{1}", targetSeries.SeriesName,
episode.EpisodeNumber);
var newEpisode = new Episode
{
AirDate = episode.FirstAired,
EpisodeId = episode.Id,
EpisodeNumber = episode.EpisodeNumber,
Language = episode.Language.Abbriviation,
Overview = episode.Overview,
SeasonId = episode.SeasonId,
SeasonNumber = episode.SeasonNumber,
SeriesId = season.SeriesId,
Title = episode.EpisodeName
};
if (_sonicRepo.Exists<Episode>(e => e.EpisodeId == newEpisode.EpisodeId))
{
@@ -231,7 +235,9 @@ namespace NzbDrone.Core.Providers
}
catch (Exception e)
{
Logger.FatalException(String.Format("An error has occurred while updating episode info for season {0} of series {1}", season.SeasonNumber, season.SeriesId), e);
Logger.FatalException(
String.Format("An error has occurred while updating episode info for season {0} of series {1}",
season.SeasonNumber, season.SeriesId), e);
failCount++;
}
}
@@ -239,7 +245,8 @@ namespace NzbDrone.Core.Providers
_sonicRepo.AddMany(newList);
_sonicRepo.UpdateMany(updateList);
Logger.Debug("Finished episode refresh for series:{0}. Successful:{1} - Failed:{2} ", targetSeries.SeriesName, successCount, failCount);
Logger.Debug("Finished episode refresh for series:{0}. Successful:{1} - Failed:{2} ",
targetSeries.SeriesName, successCount, failCount);
}
public virtual void DeleteEpisode(int episodeId)
@@ -251,6 +258,5 @@ namespace NzbDrone.Core.Providers
{
_sonicRepo.Update(episode);
}
}
}

View File

@@ -1,29 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NLog;
using NzbDrone.Core.Helpers;
using NzbDrone.Core.Model;
using NzbDrone.Core.Providers.Core;
using NzbDrone.Core.Repository;
namespace NzbDrone.Core.Providers
{
public class ExternalNotificationProvider
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly ConfigProvider _configProvider;
private readonly XbmcProvider _xbmcProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public ExternalNotificationProvider(ConfigProvider configProvider, XbmcProvider xbmcProvider)
{
_configProvider = configProvider;
_xbmcProvider = xbmcProvider;
}
#region ExternalNotificationProvider Members
public virtual void OnGrab(string message)
{
var header = "NzbDrone [TV] - Grabbed";
@@ -100,6 +94,5 @@ namespace NzbDrone.Core.Providers
throw new NotImplementedException();
}
#endregion
}
}
}

View File

@@ -4,24 +4,19 @@ using NzbDrone.Core.Model.Notification;
namespace NzbDrone.Core.Providers.Fakes
{
class FakeNotificationProvider
internal class FakeNotificationProvider
{
private readonly Dictionary<Guid, BasicNotification> _basicNotifications = new Dictionary<Guid, BasicNotification>();
private readonly Dictionary<Guid, ProgressNotification> _progressNotification = new Dictionary<Guid, ProgressNotification>();
private readonly Dictionary<Guid, BasicNotification> _basicNotifications =
new Dictionary<Guid, BasicNotification>();
private readonly Object _lock = new object();
private readonly Dictionary<Guid, ProgressNotification> _progressNotification =
new Dictionary<Guid, ProgressNotification>();
ProgressNotification fakeNotification = new ProgressNotification("Updating Series");
ProgressNotification fakeNotification2 = new ProgressNotification("Updating Series2");
public void Register(ProgressNotification notification)
{
_progressNotification.Add(notification.Id, notification);
}
public void Register(BasicNotification notification)
{
_basicNotifications.Add(notification.Id, notification);
}
private readonly ProgressNotification fakeNotification = new ProgressNotification("Updating Series");
private readonly ProgressNotification fakeNotification2 = new ProgressNotification("Updating Series2");
public List<BasicNotification> BasicNotifications
{
@@ -30,17 +25,26 @@ namespace NzbDrone.Core.Providers.Fakes
public List<ProgressNotification> GetProgressNotifications
{
get
{
fakeNotification.Status = ProgressNotificationStatus.InProgress;
fakeNotification.Status = ProgressNotificationStatus.InProgress;
fakeNotification2.CurrentStatus = DateTime.UtcNow.ToString();
fakeNotification.CurrentStatus = DateTime.Now.ToString();
return new List<ProgressNotification> { fakeNotification };
return new List<ProgressNotification> {fakeNotification};
}
}
public void Register(ProgressNotification notification)
{
_progressNotification.Add(notification.Id, notification);
}
public void Register(BasicNotification notification)
{
_basicNotifications.Add(notification.Id, notification);
}
public void Dismiss(Guid notificationId)
{
lock (_lock)

View File

@@ -1,5 +1,4 @@
using System.ServiceModel.Syndication;
using System.Xml;
using NLog;
using NzbDrone.Core.Model;
using NzbDrone.Core.Providers.Core;
@@ -8,15 +7,16 @@ namespace NzbDrone.Core.Providers.Feed
{
public abstract class FeedProviderBase
{
protected readonly SeriesProvider _seriesProvider;
protected readonly SeasonProvider _seasonProvider;
protected readonly EpisodeProvider _episodeProvider;
protected readonly ConfigProvider _configProvider;
private readonly HttpProvider _httpProvider;
protected static readonly Logger Logger = LogManager.GetCurrentClassLogger();
protected readonly ConfigProvider _configProvider;
protected readonly EpisodeProvider _episodeProvider;
private readonly HttpProvider _httpProvider;
protected readonly SeasonProvider _seasonProvider;
protected readonly SeriesProvider _seriesProvider;
public FeedProviderBase(SeriesProvider seriesProvider, SeasonProvider seasonProvider,
EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider)
EpisodeProvider episodeProvider, ConfigProvider configProvider,
HttpProvider httpProvider)
{
_seriesProvider = seriesProvider;
_seasonProvider = seasonProvider;
@@ -27,28 +27,28 @@ namespace NzbDrone.Core.Providers.Feed
/// <summary>
/// Gets the source URL for the feed
/// Gets the source URL for the feed
/// </summary>
protected abstract string[] URL { get; }
/// <summary>
/// Gets the name for this feed
/// Gets the name for this feed
/// </summary>
protected abstract string Name { get; }
/// <summary>
/// Generates direct link to download an NZB
/// Generates direct link to download an NZB
/// </summary>
/// <param name="item">RSS Feed item to generate the link for</param>
/// <param name = "item">RSS Feed item to generate the link for</param>
/// <returns>Download link URL</returns>
protected abstract string NzbDownloadUrl(SyndicationItem item);
/// <summary>
/// Parses the RSS feed item and.
/// Parses the RSS feed item and.
/// </summary>
/// <param name="item">RSS feed item to parse</param>
/// <param name = "item">RSS feed item to parse</param>
/// <returns>Detailed episode info</returns>
protected EpisodeParseResult ParseFeed(SyndicationItem item)
{
@@ -66,13 +66,11 @@ namespace NzbDrone.Core.Providers.Feed
Logger.Debug("Unable to map {0} to any of series in database", episodeParseResult.SeriesTitle);
return null;
}
/// <summary>
/// Fetches RSS feed and process each news item.
/// Fetches RSS feed and process each news item.
/// </summary>
public void Fetch()
{
@@ -122,5 +120,4 @@ namespace NzbDrone.Core.Providers.Feed
}
}
}
}
}

View File

@@ -1,15 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel.Syndication;
using System.Text;
using System.ServiceModel.Syndication;
using NzbDrone.Core.Providers.Core;
namespace NzbDrone.Core.Providers.Feed
{
class NzbsOrgFeedProvider : FeedProviderBase
internal class NzbsOrgFeedProvider : FeedProviderBase
{
public NzbsOrgFeedProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider)
public NzbsOrgFeedProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider,
EpisodeProvider episodeProvider, ConfigProvider configProvider,
HttpProvider httpProvider)
: base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider)
{
}
@@ -18,7 +16,11 @@ namespace NzbDrone.Core.Providers.Feed
{
get
{
return new[] { string.Format("http://nzbs.org/rss.php?type=1&i={0}&h={1}", _configProvider.NzbsOrgUId, _configProvider.NzbsOrgHash) };
return new[]
{
string.Format("http://nzbs.org/rss.php?type=1&i={0}&h={1}", _configProvider.NzbsOrgUId,
_configProvider.NzbsOrgHash)
};
}
}
@@ -32,4 +34,4 @@ namespace NzbDrone.Core.Providers.Feed
return item.Id.Replace("action=view", "action=getnzb");
}
}
}
}

View File

@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NLog;
using NzbDrone.Core.Repository;
using NzbDrone.Core.Repository.Quality;
@@ -11,9 +10,8 @@ namespace NzbDrone.Core.Providers
{
public class HistoryProvider
{
private readonly IRepository _sonicRepo;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly IRepository _sonicRepo;
public HistoryProvider(IRepository sonicRepo)
{
@@ -24,8 +22,6 @@ namespace NzbDrone.Core.Providers
{
}
#region HistoryProvider Members
public virtual List<History> AllItems()
{
return _sonicRepo.All<History>().ToList();
@@ -54,13 +50,11 @@ namespace NzbDrone.Core.Providers
public virtual bool Exists(int episodeId, QualityTypes quality, bool proper)
{
//Looks for the existance of this episode in History
if (_sonicRepo.Exists<History>(h => h.EpisodeId == episodeId && (QualityTypes)h.Quality == quality && h.IsProper == proper))
if (_sonicRepo.Exists<History>(h => h.EpisodeId == episodeId && h.Quality == quality && h.IsProper == proper))
return true;
Logger.Debug("Episode not in History: {0}", episodeId);
return false;
}
#endregion
}
}
}

View File

@@ -1,21 +1,17 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NLog;
using NzbDrone.Core.Model;
using NzbDrone.Core.Providers.Core;
using SubSonic.Repository;
using NzbDrone.Core.Repository;
using SubSonic.Repository;
namespace NzbDrone.Core.Providers
{
public class IndexerProvider
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly IRepository _sonicRepo;
private readonly ConfigProvider _configProvider;
private readonly IRepository _sonicRepo;
public IndexerProvider(IRepository sonicRepo, ConfigProvider configProvider)
{
@@ -23,8 +19,6 @@ namespace NzbDrone.Core.Providers
_configProvider = configProvider;
}
#region IndexerProvider Members
public virtual List<Indexer> AllIndexers()
{
return _sonicRepo.All<Indexer>().OrderBy(i => i.Order).ToList();
@@ -44,7 +38,5 @@ namespace NzbDrone.Core.Providers
{
return _sonicRepo.Single<Indexer>(indexerId);
}
#endregion
}
}
}

View File

@@ -2,10 +2,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using NLog;
using NzbDrone.Core.Model;
using NzbDrone.Core.Providers.Core;
using NzbDrone.Core.Repository;
using SubSonic.Repository;
@@ -14,31 +11,28 @@ namespace NzbDrone.Core.Providers
{
public class MediaFileProvider
{
private readonly IRepository _repository;
private readonly ConfigProvider _configProvider;
private readonly DiskProvider _diskProvider;
private readonly EpisodeProvider _episodeProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private static readonly string[] MediaExtentions = new[] { "*.mkv", "*.avi", "*.wmv" };
private readonly DiskProvider _diskProvider;
private readonly EpisodeProvider _episodeProvider;
private readonly IRepository _repository;
public MediaFileProvider(IRepository repository, ConfigProvider configProvider, DiskProvider diskProvider, EpisodeProvider episodeProvider)
public MediaFileProvider(IRepository repository, DiskProvider diskProvider,
EpisodeProvider episodeProvider)
{
_repository = repository;
_configProvider = configProvider;
_diskProvider = diskProvider;
_episodeProvider = episodeProvider;
}
public MediaFileProvider()
{
}
/// <summary>
/// Scans the specified series folder for media files
/// Scans the specified series folder for media files
/// </summary>
/// <param name="series">The series to be scanned</param>
/// <param name = "series">The series to be scanned</param>
public List<EpisodeFile> Scan(Series series)
{
var mediaFileList = GetMediaFileList(series.Path);
@@ -54,9 +48,9 @@ namespace NzbDrone.Core.Providers
}
/// <summary>
/// Scans the specified series folder for media files
/// Scans the specified series folder for media files
/// </summary>
/// <param name="series">The series to be scanned</param>
/// <param name = "series">The series to be scanned</param>
public List<EpisodeFile> Scan(Series series, string path)
{
var mediaFileList = GetMediaFileList(path);
@@ -84,7 +78,8 @@ namespace NzbDrone.Core.Providers
foreach (var episodeNumber in episodesInFile.Episodes)
{
var episode = _episodeProvider.GetEpisode(series.SeriesId, episodesInFile.SeasonNumber, episodeNumber);
var episode = _episodeProvider.GetEpisode(series.SeriesId, episodesInFile.SeasonNumber,
episodeNumber);
if (episode != null)
{
@@ -92,7 +87,8 @@ namespace NzbDrone.Core.Providers
}
else
Logger.Warn("Unable to find Series:{0} Season:{1} Episode:{2} in the database. File:{3}", series.Title, episodesInFile.SeasonNumber, episodeNumber, filePath);
Logger.Warn("Unable to find Series:{0} Season:{1} Episode:{2} in the database. File:{3}",
series.Title, episodesInFile.SeasonNumber, episodeNumber, filePath);
}
//Return null if no Episodes exist in the DB for the parsed episodes from file
@@ -125,7 +121,8 @@ namespace NzbDrone.Core.Providers
_episodeProvider.UpdateEpisode(ep);
episodeList += String.Format(", {0}", ep.EpisodeId).Trim(' ', ',');
}
Logger.Trace("File {0}:{1} attached to episode(s): '{2}'", episodeFile.EpisodeFileId, filePath, episodeList);
Logger.Trace("File {0}:{1} attached to episode(s): '{2}'", episodeFile.EpisodeFileId, filePath,
episodeList);
return episodeFile;
}
@@ -135,9 +132,9 @@ namespace NzbDrone.Core.Providers
}
/// <summary>
/// Removes files that no longer exist from the database
/// Removes files that no longer exist from the database
/// </summary>
/// <param name="files">list of files to verify</param>
/// <param name = "files">list of files to verify</param>
public void CleanUp(List<EpisodeFile> files)
{
foreach (var episodeFile in files)
@@ -192,4 +189,4 @@ namespace NzbDrone.Core.Providers
return mediaFileList;
}
}
}
}

View File

@@ -1,25 +1,19 @@
using System;
using System.Linq;
using System.Collections.Generic;
using System.Linq;
using NzbDrone.Core.Model.Notification;
namespace NzbDrone.Core.Providers
{
public class NotificationProvider
{
private readonly Dictionary<Guid, BasicNotification> _basicNotifications = new Dictionary<Guid, BasicNotification>();
private Dictionary<Guid, ProgressNotification> _progressNotification = new Dictionary<Guid, ProgressNotification>();
private readonly Dictionary<Guid, BasicNotification> _basicNotifications =
new Dictionary<Guid, BasicNotification>();
private readonly Object _lock = new object();
public virtual void Register(ProgressNotification notification)
{
_progressNotification.Add(notification.Id, notification);
}
public virtual void Register(BasicNotification notification)
{
_basicNotifications.Add(notification.Id, notification);
}
private readonly Dictionary<Guid, ProgressNotification> _progressNotification =
new Dictionary<Guid, ProgressNotification>();
public virtual List<BasicNotification> BasicNotifications
{
@@ -30,10 +24,22 @@ namespace NzbDrone.Core.Providers
{
get
{
return new List<ProgressNotification>(_progressNotification.Values.Where(p => p.Status == ProgressNotificationStatus.InProgress));
return
new List<ProgressNotification>(
_progressNotification.Values.Where(p => p.Status == ProgressNotificationStatus.InProgress));
}
}
public virtual void Register(ProgressNotification notification)
{
_progressNotification.Add(notification.Id, notification);
}
public virtual void Register(BasicNotification notification)
{
_basicNotifications.Add(notification.Id, notification);
}
public virtual void Dismiss(Guid notificationId)
{
lock (_lock)

View File

@@ -1,30 +1,19 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using NzbDrone.Core.Helpers;
using NzbDrone.Core.Providers.Core;
namespace NzbDrone.Core.Providers
namespace NzbDrone.Core.Providers
{
public class PostProcessingProvider
{
private readonly SeriesProvider _seriesProvider;
private readonly MediaFileProvider _mediaFileProvider;
private readonly RenameProvider _renameProvider;
private readonly SeriesProvider _seriesProvider;
public PostProcessingProvider(SeriesProvider seriesProvider,
MediaFileProvider mediaFileProvider, RenameProvider renameProvider)
MediaFileProvider mediaFileProvider, RenameProvider renameProvider)
{
_seriesProvider = seriesProvider;
_mediaFileProvider = mediaFileProvider;
_mediaFileProvider = mediaFileProvider;
_renameProvider = renameProvider;
}
#region PostProcessingProvider Members
public virtual void ProcessEpisode(string dir, string nzbName)
{
var parsedSeries = Parser.ParseSeriesName(nzbName);
@@ -42,7 +31,5 @@ namespace NzbDrone.Core.Providers
_renameProvider.RenameEpisodeFile(file.EpisodeFileId, true);
}
}
#endregion
}
}
}

View File

@@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using NLog;
using NzbDrone.Core.Repository.Quality;
using SubSonic.Repository;
@@ -11,12 +9,11 @@ namespace NzbDrone.Core.Providers
{
public class QualityProvider
{
private IRepository _sonicRepo;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly IRepository _sonicRepo;
public QualityProvider()
{
}
public QualityProvider(IRepository sonicRepo)
@@ -24,8 +21,6 @@ namespace NzbDrone.Core.Providers
_sonicRepo = sonicRepo;
}
#region IQualityProvider Members
public virtual void Add(QualityProfile profile)
{
_sonicRepo.Add(profile);
@@ -58,7 +53,5 @@ namespace NzbDrone.Core.Providers
{
return _sonicRepo.Single<QualityProfile>(q => q.QualityProfileId == profileId);
}
#endregion
}
}
}

View File

@@ -2,35 +2,32 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using NLog;
using NzbDrone.Core.Helpers;
using NzbDrone.Core.Model;
using NzbDrone.Core.Providers.Core;
using NzbDrone.Core.Repository;
namespace NzbDrone.Core.Providers
{
public class RenameProvider
{
private readonly SeriesProvider _seriesProvider;
private readonly SeasonProvider _seasonProvider;
private readonly EpisodeProvider _episodeProvider;
private readonly MediaFileProvider _mediaFileProvider;
private readonly DiskProvider _diskProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly ConfigProvider _configProvider;
private readonly DiskProvider _diskProvider;
private readonly EpisodeProvider _episodeProvider;
private readonly List<EpisodeRenameModel> _epsToRename = new List<EpisodeRenameModel>();
private readonly ExternalNotificationProvider _externalNotificationProvider;
private readonly MediaFileProvider _mediaFileProvider;
private readonly SeasonProvider _seasonProvider;
private readonly SeriesProvider _seriesProvider;
private Thread _renameThread;
private List<EpisodeRenameModel> _epsToRename = new List<EpisodeRenameModel>();
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public RenameProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider,
EpisodeProvider episodeProvider, MediaFileProvider mediaFileProvider,
DiskProvider diskProvider, ConfigProvider configProvider,
ExternalNotificationProvider extenalNotificationProvider)
EpisodeProvider episodeProvider, MediaFileProvider mediaFileProvider,
DiskProvider diskProvider, ConfigProvider configProvider,
ExternalNotificationProvider extenalNotificationProvider)
{
_seriesProvider = seriesProvider;
_seasonProvider = seasonProvider;
@@ -41,7 +38,6 @@ namespace NzbDrone.Core.Providers
_externalNotificationProvider = extenalNotificationProvider;
}
#region RenameProvider Members
public virtual void RenameAll()
{
//Get a list of all episode files/episodes and rename them
@@ -49,12 +45,14 @@ namespace NzbDrone.Core.Providers
foreach (var episodeFile in _mediaFileProvider.GetEpisodeFiles())
{
var series = _seriesProvider.GetSeries(episodeFile.SeriesId);
var erm = new EpisodeRenameModel();
erm.SeriesName = series.Title;
erm.Folder = series.Path;
var erm = new EpisodeRenameModel {SeriesName = series.Title, Folder = series.Path};
if (series.SeasonFolder)
erm.Folder += Path.DirectorySeparatorChar + EpisodeRenameHelper.GetSeasonFolder(episodeFile.Episodes[0].SeasonNumber, _configProvider.GetValue("Sorting_SeasonFolderFormat", "Season %s", true));
erm.Folder += Path.DirectorySeparatorChar +
EpisodeRenameHelper.GetSeasonFolder(episodeFile.Episodes[0].SeasonNumber,
_configProvider.GetValue(
"Sorting_SeasonFolderFormat", "Season %s",
true));
erm.EpisodeFile = episodeFile;
_epsToRename.Add(erm);
@@ -70,13 +68,14 @@ namespace NzbDrone.Core.Providers
foreach (var episodeFile in _mediaFileProvider.GetEpisodeFiles().Where(s => s.SeriesId == seriesId))
{
var erm = new EpisodeRenameModel();
erm.SeriesName = series.Title;
erm.Folder = series.Path;
var erm = new EpisodeRenameModel {SeriesName = series.Title, Folder = series.Path};
if (series.SeasonFolder)
erm.Folder += Path.DirectorySeparatorChar + EpisodeRenameHelper.GetSeasonFolder(episodeFile.Episodes[0].SeasonNumber, _configProvider.GetValue("Sorting_SeasonFolderFormat", "Season %s", true));
erm.Folder += Path.DirectorySeparatorChar +
EpisodeRenameHelper.GetSeasonFolder(episodeFile.Episodes[0].SeasonNumber,
_configProvider.GetValue(
"Sorting_SeasonFolderFormat", "Season %s",
true));
erm.EpisodeFile = episodeFile;
_epsToRename.Add(erm);
@@ -90,15 +89,17 @@ namespace NzbDrone.Core.Providers
var season = _seasonProvider.GetSeason(seasonId);
var series = _seriesProvider.GetSeries(season.SeriesId);
foreach (var episodeFile in _mediaFileProvider.GetEpisodeFiles().Where(s => s.Episodes[0].SeasonId == seasonId))
foreach (
var episodeFile in _mediaFileProvider.GetEpisodeFiles().Where(s => s.Episodes[0].SeasonId == seasonId))
{
var erm = new EpisodeRenameModel();
erm.SeriesName = series.Title;
erm.Folder = series.Path;
var erm = new EpisodeRenameModel {SeriesName = series.Title, Folder = series.Path};
if (series.SeasonFolder)
erm.Folder += Path.DirectorySeparatorChar + EpisodeRenameHelper.GetSeasonFolder(episodeFile.Episodes[0].SeasonNumber, _configProvider.GetValue("Sorting_SeasonFolderFormat", "Season %s", true));
erm.Folder += Path.DirectorySeparatorChar +
EpisodeRenameHelper.GetSeasonFolder(episodeFile.Episodes[0].SeasonNumber,
_configProvider.GetValue(
"Sorting_SeasonFolderFormat", "Season %s",
true));
erm.EpisodeFile = episodeFile;
_epsToRename.Add(erm);
@@ -112,15 +113,16 @@ namespace NzbDrone.Core.Providers
var episode = _episodeProvider.GetEpisode(episodeId);
var series = _seriesProvider.GetSeries(episode.SeriesId);
var episodeFile = _mediaFileProvider.GetEpisodeFiles().Where(s => s.Episodes.Contains(episode)).FirstOrDefault();
var episodeFile =
_mediaFileProvider.GetEpisodeFiles().Where(s => s.Episodes.Contains(episode)).FirstOrDefault();
var erm = new EpisodeRenameModel();
erm.SeriesName = series.Title;
erm.Folder = series.Path;
var erm = new EpisodeRenameModel {SeriesName = series.Title, Folder = series.Path};
if (series.SeasonFolder)
erm.Folder += Path.DirectorySeparatorChar + EpisodeRenameHelper.GetSeasonFolder(episodeFile.Episodes[0].SeasonNumber, _configProvider.GetValue("Sorting_SeasonFolderFormat", "Season %s", true));
erm.Folder += Path.DirectorySeparatorChar +
EpisodeRenameHelper.GetSeasonFolder(episodeFile.Episodes[0].SeasonNumber,
_configProvider.GetValue(
"Sorting_SeasonFolderFormat", "Season %s", true));
erm.EpisodeFile = episodeFile;
_epsToRename.Add(erm);
@@ -133,21 +135,19 @@ namespace NzbDrone.Core.Providers
var episodeFile = _mediaFileProvider.GetEpisodeFile(episodeFileId);
var series = _seriesProvider.GetSeries(episodeFile.Series.SeriesId);
var erm = new EpisodeRenameModel();
erm.SeriesName = series.Title;
erm.Folder = series.Path;
var erm = new EpisodeRenameModel {SeriesName = series.Title, Folder = series.Path};
if (series.SeasonFolder)
erm.Folder += Path.DirectorySeparatorChar + EpisodeRenameHelper.GetSeasonFolder(episodeFile.Episodes[0].SeasonNumber, _configProvider.GetValue("Sorting_SeasonFolderFormat", "Season %s", true));
erm.Folder += Path.DirectorySeparatorChar +
EpisodeRenameHelper.GetSeasonFolder(episodeFile.Episodes[0].SeasonNumber,
_configProvider.GetValue(
"Sorting_SeasonFolderFormat", "Season %s", true));
erm.EpisodeFile = episodeFile;
_epsToRename.Add(erm);
StartRename();
}
#endregion
private void StartRename()
{
Logger.Debug("Episode Rename Starting");
@@ -155,10 +155,10 @@ namespace NzbDrone.Core.Providers
{
Logger.Debug("Initializing background rename of episodes");
_renameThread = new Thread(RenameProcessor)
{
Name = "RenameEpisodes",
Priority = ThreadPriority.Lowest
};
{
Name = "RenameEpisodes",
Priority = ThreadPriority.Lowest
};
_renameThread.Start();
}
@@ -203,7 +203,6 @@ namespace NzbDrone.Core.Providers
else
_externalNotificationProvider.OnRename(erm);
}
catch (Exception ex)
{
@@ -212,4 +211,4 @@ namespace NzbDrone.Core.Providers
}
}
}
}
}

View File

@@ -1,7 +1,5 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NzbDrone.Core.Repository;
using SubSonic.Repository;
@@ -27,17 +25,17 @@ namespace NzbDrone.Core.Providers
{
_sonioRepo.Add(rootDir);
}
public virtual void Remove(int rootDirId)
{
_sonioRepo.Delete<RootDir>(rootDirId);
}
public virtual void Update(RootDir rootDir)
{
_sonioRepo.Update(rootDir);
}
public virtual RootDir GetRootDir(int rootDirId)
{
return _sonioRepo.Single<RootDir>(rootDirId);
@@ -45,4 +43,4 @@ namespace NzbDrone.Core.Providers
#endregion
}
}
}

View File

@@ -1,15 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NzbDrone.Core.Providers
namespace NzbDrone.Core.Providers
{
public class RssSyncProvider
{
public virtual void Begin()
{
}
}
}
}

View File

@@ -9,19 +9,16 @@ namespace NzbDrone.Core.Providers
{
public class SabProvider
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly ConfigProvider _config;
private readonly HttpProvider _http;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public SabProvider(ConfigProvider config, HttpProvider http)
{
_config = config;
_http = http;
}
#region IDownloadProvider Members
public virtual bool AddByUrl(string url, string title)
{
const string mode = "addurl";
@@ -31,7 +28,8 @@ namespace NzbDrone.Core.Providers
string name = url.Replace("&", "%26");
string nzbName = HttpUtility.UrlEncode(title);
string action = string.Format("mode={0}&name={1}&priority={2}&cat={3}&nzbname={4}", mode, name, priority, cat, nzbName);
string action = string.Format("mode={0}&name={1}&priority={2}&cat={3}&nzbname={4}", mode, name, priority,
cat, nzbName);
string request = GetSabRequest(action);
Logger.Debug("Adding report [{0}] to the queue.", nzbName);
@@ -61,7 +59,10 @@ namespace NzbDrone.Core.Providers
return false;
//Get the Count of Items in Queue where 'filename' is Equal to goodName, if not zero, return true (isInQueue)))
if ((xDoc.Descendants("slot").Where(s => s.Element("filename").Value.Equals(title, StringComparison.InvariantCultureIgnoreCase))).Count() != 0)
if (
(xDoc.Descendants("slot").Where(
s => s.Element("filename").Value.Equals(title, StringComparison.InvariantCultureIgnoreCase))).Count() !=
0)
{
Logger.Debug("Episode in queue - '{0}'", title);
@@ -81,7 +82,8 @@ namespace NzbDrone.Core.Providers
string priority = _config.GetValue("SabTvPriority", String.Empty, false);
string nzbName = HttpUtility.UrlEncode(title);
string action = string.Format("mode={0}&name={1}&priority={2}&cat={3}&nzbname={4}", mode, id, priority, cat, nzbName);
string action = string.Format("mode={0}&name={1}&priority={2}&cat={3}&nzbname={4}", mode, id, priority, cat,
nzbName);
string request = GetSabRequest(action);
Logger.Debug("Adding report [{0}] to the queue.", nzbName);
@@ -95,16 +97,17 @@ namespace NzbDrone.Core.Providers
return false;
}
#endregion
private string GetSabRequest(string action)
{
string sabnzbdInfo = _config.GetValue("SabHost", String.Empty, false) + ":" + _config.GetValue("SabPort", String.Empty, false);
string sabnzbdInfo = _config.GetValue("SabHost", String.Empty, false) + ":" +
_config.GetValue("SabPort", String.Empty, false);
string username = _config.GetValue("SabUsername", String.Empty, false);
string password = _config.GetValue("SabPassword", String.Empty, false);
string apiKey = _config.GetValue("SabApiKey", String.Empty, false);
return string.Format(@"http://{0}/api?$Action&apikey={1}&ma_username={2}&ma_password={3}", sabnzbdInfo, apiKey, username, password).Replace("$Action", action);
return
string.Format(@"http://{0}/api?$Action&apikey={1}&ma_username={2}&ma_password={3}", sabnzbdInfo, apiKey,
username, password).Replace("$Action", action);
}
}
}

View File

@@ -1,29 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using NLog;
using NzbDrone.Core.Model;
using NzbDrone.Core.Repository;
using SubSonic.Repository;
using System.Linq;
namespace NzbDrone.Core.Providers
{
public class SeasonProvider
{
private readonly IRepository _sonicRepo;
private readonly SeriesProvider _seriesProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly IRepository _sonicRepo;
public SeasonProvider(IRepository dataRepository, SeriesProvider seriesProvider)
public SeasonProvider(IRepository dataRepository)
{
_sonicRepo = dataRepository;
_seriesProvider = seriesProvider;
}
public SeasonProvider()
{
}
public virtual Season GetSeason(int seasonId)
@@ -51,16 +46,17 @@ namespace NzbDrone.Core.Providers
if (_sonicRepo.Exists<Season>(s => s.SeasonId == seasonId))
return;
//TODO: Calculate Season Folder
Logger.Trace("Adding Season To DB. [SeriesID:{0} SeasonID:{1} SeasonNumber:{2}]", seriesId, seasonId, seasonNumber, "????");
Logger.Trace("Adding Season To DB. [SeriesID:{0} SeasonID:{1} SeasonNumber:{2}]", seriesId, seasonId,
seasonNumber, "????");
var newSeason = new Season()
{
Monitored = true,
SeasonId = seasonId,
SeasonNumber = seasonNumber,
SeriesId = seriesId
};
_sonicRepo.Add<Season>(newSeason);
var newSeason = new Season
{
Monitored = true,
SeasonId = seasonId,
SeasonNumber = seasonNumber,
SeriesId = seriesId
};
_sonicRepo.Add(newSeason);
}
public virtual int SaveSeason(Season season)

View File

@@ -1,9 +1,6 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using Ninject;
using NLog;
using NzbDrone.Core.Providers.Core;
using NzbDrone.Core.Repository;
@@ -19,14 +16,14 @@ namespace NzbDrone.Core.Providers
//Trims all white spaces and separators from the end of the title.
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly ConfigProvider _config;
private readonly QualityProvider _quality;
private readonly IRepository _sonioRepo;
private readonly TvDbProvider _tvDb;
private readonly QualityProvider _quality;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public SeriesProvider(ConfigProvider configProvider,
IRepository dataRepository, TvDbProvider tvDbProvider, QualityProvider quality)
IRepository dataRepository, TvDbProvider tvDbProvider, QualityProvider quality)
{
_config = configProvider;
_sonioRepo = dataRepository;
@@ -38,8 +35,6 @@ namespace NzbDrone.Core.Providers
{
}
#region SeriesProvider Members
public virtual IQueryable<Series> GetAllSeries()
{
return _sonioRepo.All<Series>();
@@ -51,9 +46,9 @@ namespace NzbDrone.Core.Providers
}
/// <summary>
/// Determines if a series is being actively watched.
/// Determines if a series is being actively watched.
/// </summary>
/// <param name="id">The TVDB ID of the series</param>
/// <param name = "id">The TVDB ID of the series</param>
/// <returns>Whether or not the show is monitored</returns>
public virtual bool IsMonitored(long id)
{
@@ -149,7 +144,6 @@ namespace NzbDrone.Core.Providers
_sonioRepo.Delete<Series>(seriesId);
Logger.Info("Successfully deleted Series [{0}]", seriesId);
}
catch (Exception e)
{
@@ -165,8 +159,5 @@ namespace NzbDrone.Core.Providers
return false;
}
#endregion
}
}

View File

@@ -1,11 +1,9 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Threading;
using NLog;
using NzbDrone.Core.Model;
using NzbDrone.Core.Model.Notification;
using NzbDrone.Core.Providers.Core;
@@ -13,20 +11,19 @@ namespace NzbDrone.Core.Providers
{
public class SyncProvider
{
private readonly SeriesProvider _seriesProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly DiskProvider _diskProvider;
private readonly EpisodeProvider _episodeProvider;
private readonly MediaFileProvider _mediaFileProvider;
private readonly NotificationProvider _notificationProvider;
private readonly DiskProvider _diskProvider;
private readonly SeriesProvider _seriesProvider;
private ProgressNotification _seriesSyncNotification;
private Thread _seriesSyncThread;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public SyncProvider(SeriesProvider seriesProvider, EpisodeProvider episodeProvider,
MediaFileProvider mediaFileProvider, NotificationProvider notificationProvider,
DiskProvider diskProvider)
MediaFileProvider mediaFileProvider, NotificationProvider notificationProvider,
DiskProvider diskProvider)
{
_seriesProvider = seriesProvider;
_episodeProvider = episodeProvider;
@@ -35,8 +32,6 @@ namespace NzbDrone.Core.Providers
_diskProvider = diskProvider;
}
#region ISyncProvider Members
public List<String> GetUnmappedFolders(string path)
{
Logger.Debug("Generating list of unmapped folders");
@@ -64,8 +59,6 @@ namespace NzbDrone.Core.Providers
return results;
}
#endregion
public bool BeginUpdateNewSeries()
{
Logger.Debug("User has requested a scan of new series");
@@ -73,10 +66,10 @@ namespace NzbDrone.Core.Providers
{
Logger.Debug("Initializing background scan thread");
_seriesSyncThread = new Thread(SyncNewSeries)
{
Name = "SyncNewSeries",
Priority = ThreadPriority.Lowest
};
{
Name = "SyncNewSeries",
Priority = ThreadPriority.Lowest
};
_seriesSyncThread.Start();
}
@@ -120,8 +113,6 @@ namespace NzbDrone.Core.Providers
private void ScanSeries()
{
var syncList = _seriesProvider.GetAllSeries().Where(s => s.LastInfoSync == null).ToList();
if (syncList.Count == 0) return;
@@ -131,13 +122,16 @@ namespace NzbDrone.Core.Providers
{
try
{
_seriesSyncNotification.CurrentStatus = String.Format("Searching For: {0}", new DirectoryInfo(currentSeries.Path).Name);
_seriesSyncNotification.CurrentStatus = String.Format("Searching For: {0}",
new DirectoryInfo(currentSeries.Path).Name);
var updatedSeries = _seriesProvider.UpdateSeriesInfo(currentSeries.SeriesId);
_seriesSyncNotification.CurrentStatus = String.Format("Downloading episode info For: {0}", updatedSeries.Title);
_seriesSyncNotification.CurrentStatus = String.Format("Downloading episode info For: {0}",
updatedSeries.Title);
_episodeProvider.RefreshEpisodeInfo(updatedSeries.SeriesId);
_seriesSyncNotification.CurrentStatus = String.Format("Scanning series folder {0}", updatedSeries.Path);
_seriesSyncNotification.CurrentStatus = String.Format("Scanning series folder {0}",
updatedSeries.Path);
_mediaFileProvider.Scan(_seriesProvider.GetSeries(updatedSeries.SeriesId));
//Todo: Launch Backlog search for this series _backlogProvider.StartSearch(mappedSeries.Id);
@@ -154,4 +148,4 @@ namespace NzbDrone.Core.Providers
ScanSeries();
}
}
}
}

View File

@@ -1,27 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;
using NLog;
using NzbDrone.Core.Model.Notification;
namespace NzbDrone.Core.Providers
{
public class TimerProvider
{
private readonly RssSyncProvider _rssSyncProvider;
private readonly SeriesProvider _seriesProvider;
private readonly SeasonProvider _seasonProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly EpisodeProvider _episodeProvider;
private readonly MediaFileProvider _mediaFileProvider;
private Timer _rssSyncTimer;
private Timer _minuteTimer;
private readonly Timer _minuteTimer;
private readonly RssSyncProvider _rssSyncProvider;
private readonly Timer _rssSyncTimer;
private readonly SeasonProvider _seasonProvider;
private readonly SeriesProvider _seriesProvider;
private DateTime _rssSyncNextInterval;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public TimerProvider(RssSyncProvider rssSyncProvider, SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, MediaFileProvider mediaFileProvider)
public TimerProvider(RssSyncProvider rssSyncProvider, SeriesProvider seriesProvider,
SeasonProvider seasonProvider, EpisodeProvider episodeProvider,
MediaFileProvider mediaFileProvider)
{
_rssSyncProvider = rssSyncProvider;
_seriesProvider = seriesProvider;
@@ -33,8 +31,6 @@ namespace NzbDrone.Core.Providers
_minuteTimer = new Timer(60000);
}
#region TimerProvider Members
public virtual void ResetRssSyncTimer()
{
double interval = _rssSyncTimer.Interval;
@@ -43,13 +39,14 @@ namespace NzbDrone.Core.Providers
public virtual void StartRssSyncTimer()
{
if (_rssSyncTimer.Interval < 900000) //If Timer is less than 15 minutes, throw an error! This should also be handled when saving the config, though a user could by-pass it by editing the DB directly... TNO (Trust No One)
if (_rssSyncTimer.Interval < 900000)
//If Timer is less than 15 minutes, throw an error! This should also be handled when saving the config, though a user could by-pass it by editing the DB directly... TNO (Trust No One)
{
Logger.Error("RSS Sync Frequency is invalid, please set the interval first");
throw new InvalidOperationException("RSS Sync Frequency Invalid");
}
_rssSyncTimer.Elapsed += new ElapsedEventHandler(RunRssSync);
_rssSyncTimer.Elapsed += RunRssSync;
_rssSyncTimer.Start();
_rssSyncNextInterval = DateTime.Now.AddMilliseconds(_rssSyncTimer.Interval);
}
@@ -61,7 +58,7 @@ namespace NzbDrone.Core.Providers
public virtual void SetRssSyncTimer(int minutes)
{
long ms = minutes * 60 * 1000;
long ms = minutes*60*1000;
_rssSyncTimer.Interval = ms;
}
@@ -77,7 +74,7 @@ namespace NzbDrone.Core.Providers
public virtual void StartMinuteTimer()
{
_minuteTimer.Elapsed += new ElapsedEventHandler(MinuteTimer_Elapsed);
_minuteTimer.Elapsed += MinuteTimer_Elapsed;
_minuteTimer.Start();
}
@@ -86,8 +83,6 @@ namespace NzbDrone.Core.Providers
_minuteTimer.Stop();
}
#endregion
private void RunRssSync(object obj, ElapsedEventArgs args)
{
_rssSyncNextInterval = DateTime.Now.AddMilliseconds(_rssSyncTimer.Interval);
@@ -132,4 +127,4 @@ namespace NzbDrone.Core.Providers
throw new NotImplementedException();
}
}
}
}

View File

@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
using NLog;
using TvdbLib;
@@ -11,10 +10,12 @@ namespace NzbDrone.Core.Providers
{
public class TvDbProvider
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private static readonly Regex CleanUpRegex = new Regex(@"((\s|^)the(\s|$))|((\s|^)and(\s|$))|[^a-z]", RegexOptions.IgnoreCase | RegexOptions.Compiled);
private const string TVDB_APIKEY = "5D2D188E86E07F4F";
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private static readonly Regex CleanUpRegex = new Regex(@"((\s|^)the(\s|$))|((\s|^)and(\s|$))|[^a-z]",
RegexOptions.IgnoreCase | RegexOptions.Compiled);
private readonly TvdbHandler _handler;
public TvDbProvider()
@@ -22,8 +23,6 @@ namespace NzbDrone.Core.Providers
_handler = new TvdbHandler(new XmlCacheProvider(CentralDispatch.AppPath + @"\cache\tvdb"), TVDB_APIKEY);
}
#region TvDbProvider Members
public virtual IList<TvdbSearchResult> SearchSeries(string title)
{
Logger.Debug("Searching TVDB for '{0}'", title);
@@ -76,17 +75,15 @@ namespace NzbDrone.Core.Providers
}
/// <summary>
/// Determines whether a title in a search result is equal to the title searched for.
/// Determines whether a title in a search result is equal to the title searched for.
/// </summary>
/// <param name="directoryName">Name of the directory.</param>
/// <param name="tvdbTitle">The TVDB title.</param>
/// <param name = "directoryName">Name of the directory.</param>
/// <param name = "tvdbTitle">The TVDB title.</param>
/// <returns>
/// <c>true</c> if the titles are found to be same; otherwise, <c>false</c>.
/// <c>true</c> if the titles are found to be same; otherwise, <c>false</c>.
/// </returns>
public static bool IsTitleMatch(string directoryName, string tvdbTitle)
{
var result = false;
if (String.IsNullOrEmpty(directoryName))
@@ -98,14 +95,13 @@ namespace NzbDrone.Core.Providers
{
result = true;
}
else if (String.Equals(CleanUpRegex.Replace(directoryName, ""), CleanUpRegex.Replace(tvdbTitle, ""), StringComparison.InvariantCultureIgnoreCase))
else if (String.Equals(CleanUpRegex.Replace(directoryName, ""), CleanUpRegex.Replace(tvdbTitle, ""),
StringComparison.InvariantCultureIgnoreCase))
result = true;
Logger.Debug("Match between '{0}' and '{1}' was {2}", tvdbTitle, directoryName, result);
return result;
}
#endregion
}
}

View File

@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NzbDrone.Core.Model;
using NzbDrone.Core.Repository;
using SubSonic.Repository;
@@ -10,18 +9,18 @@ namespace NzbDrone.Core.Providers
{
public class UpcomingEpisodesProvider
{
private IRepository _sonicRepo;
private readonly IRepository _sonicRepo;
public UpcomingEpisodesProvider(IRepository sonicRepo)
{
_sonicRepo = sonicRepo;
}
#region UpcomingEpisodesProvider Members
public virtual UpcomingEpisodesModel Upcoming()
{
var allEps = _sonicRepo.All<Episode>().Where(e => e.AirDate >= DateTime.Today.AddDays(-1) && e.AirDate < DateTime.Today.AddDays(8));
var allEps =
_sonicRepo.All<Episode>().Where(
e => e.AirDate >= DateTime.Today.AddDays(-1) && e.AirDate < DateTime.Today.AddDays(8));
var yesterday = allEps.Where(e => e.AirDate == DateTime.Today.AddDays(-1)).ToList();
var today = allEps.Where(e => e.AirDate == DateTime.Today).ToList();
@@ -42,9 +41,9 @@ namespace NzbDrone.Core.Providers
public virtual List<Episode> Week()
{
return _sonicRepo.All<Episode>().Where(e => e.AirDate > DateTime.Today && e.AirDate < DateTime.Today.AddDays(8)).ToList();
return
_sonicRepo.All<Episode>().Where(e => e.AirDate > DateTime.Today && e.AirDate < DateTime.Today.AddDays(8))
.ToList();
}
#endregion
}
}
}

View File

@@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using NLog;
using NzbDrone.Core.Helpers;
@@ -12,23 +10,20 @@ namespace NzbDrone.Core.Providers
{
public class XbmcProvider
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly ConfigProvider _configProvider;
private readonly HttpProvider _httpProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public XbmcProvider(ConfigProvider configProvider, HttpProvider httpProvider)
{
_configProvider = configProvider;
_httpProvider = httpProvider;
}
#region XbmcProvider Members
public virtual void Notify(string header, string message)
{
//Get time in seconds and convert to ms
var time = Convert.ToInt32(_configProvider.GetValue("XbmcDisplayTime", "3", true)) * 1000;
var time = Convert.ToInt32(_configProvider.GetValue("XbmcDisplayTime", "3", true))*1000;
var command = String.Format("ExecBuiltIn(Notification({0},{1},{2}))", header, message, time);
if (Convert.ToBoolean(_configProvider.GetValue("XbmcNotificationImage", false, true)))
@@ -55,7 +50,8 @@ namespace NzbDrone.Core.Providers
var xbmcSeriesPath = GetXbmcSeriesPath(host, seriesId);
//If the path is not found & the user wants to update the entire library, do it now.
if (String.IsNullOrEmpty(xbmcSeriesPath) && Convert.ToBoolean(_configProvider.GetValue("XbmcFullUpdate", false, true)))
if (String.IsNullOrEmpty(xbmcSeriesPath) &&
Convert.ToBoolean(_configProvider.GetValue("XbmcFullUpdate", false, true)))
{
//Update the entire library
Logger.Trace("Series [{0}] doesn't exist on XBMC host: {1}, Updating Entire Library", seriesId, host);
@@ -78,8 +74,6 @@ namespace NzbDrone.Core.Providers
}
}
#endregion
private string SendCommand(string host, string command)
{
var username = _configProvider.GetValue("XbmcUsername", String.Empty, true);
@@ -90,16 +84,20 @@ namespace NzbDrone.Core.Providers
{
return _httpProvider.DownloadString(url, username, password);
}
return _httpProvider.DownloadString(url);
}
private string GetXbmcSeriesPath(string host, int seriesId)
{
var query = String.Format("select path.strPath from path, tvshow, tvshowlinkpath where tvshow.c12 = {0} and tvshowlinkpath.idShow = tvshow.idShow and tvshowlinkpath.idPath = path.idPath", seriesId);
var query =
String.Format(
"select path.strPath from path, tvshow, tvshowlinkpath where tvshow.c12 = {0} and tvshowlinkpath.idShow = tvshow.idShow and tvshowlinkpath.idPath = path.idPath",
seriesId);
var command = String.Format("QueryVideoDatabase({0})", query);
var setResponseCommand = "SetResponseFormat(webheader;false;webfooter;false;header;<xml>;footer;</xml>;opentag;<tag>;closetag;</tag>;closefinaltag;false)";
var setResponseCommand =
"SetResponseFormat(webheader;false;webfooter;false;header;<xml>;footer;</xml>;opentag;<tag>;closetag;</tag>;closefinaltag;false)";
var resetResponseCommand = "SetResponseFormat()";
SendCommand(host, setResponseCommand);
@@ -123,4 +121,4 @@ namespace NzbDrone.Core.Providers
return field.Value;
}
}
}
}