private void LoadPluginHandlers()
{
TraktLogger.Debug("Loading Plugin Handlers");
string errorMessage = "Tried to load plugin handler '{0}' but failed, check minimum requirements have been met!";
#region MovingPictures
try
{
bool handlerExists = TraktHandlers.Exists(p => p.Name == "Moving Pictures");
if (!handlerExists && TraktSettings.MovingPictures != -1)
TraktHandlers.Add(new MovingPictures(TraktSettings.MovingPictures));
else if (handlerExists && TraktSettings.MovingPictures == -1)
{
ITraktHandler item = TraktHandlers.FirstOrDefault(p => p.Name == "Moving Pictures");
(item as MovingPictures).DisposeEvents();
TraktHandlers.Remove(item);
}
}
catch (Exception)
{
TraktLogger.Error(errorMessage, "Moving Pictures");
}
#endregion
#region MP-TVSeries
try
{
bool handlerExists = TraktHandlers.Exists(p => p.Name == "MP-TVSeries");
if (!handlerExists && TraktSettings.TVSeries != -1)
TraktHandlers.Add(new TVSeries(TraktSettings.TVSeries));
else if (handlerExists && TraktSettings.TVSeries == -1)
{
ITraktHandler item = TraktHandlers.FirstOrDefault(p => p.Name == "MP-TVSeries");
(item as TVSeries).DisposeEvents();
TraktHandlers.Remove(item);
}
}
catch (Exception)
{
TraktLogger.Error(errorMessage, "MP-TVSeries");
}
#endregion
#region My Videos
try
{
bool handlerExists = TraktHandlers.Exists(p => p.Name == "My Videos");
if (!handlerExists && TraktSettings.MyVideos != -1)
TraktHandlers.Add(new MyVideos(TraktSettings.MyVideos));
else if (handlerExists && TraktSettings.MyVideos == -1)
TraktHandlers.RemoveAll(p => p.Name == "My Videos");
}
catch (Exception)
{
TraktLogger.Error(errorMessage, "My Videos");
}
#endregion
#region My Films
try
{
bool handlerExists = TraktHandlers.Exists(p => p.Name == "My Films");
if (!handlerExists && TraktSettings.MyFilms != -1)
TraktHandlers.Add(new MyFilmsHandler(TraktSettings.MyFilms));
else if (handlerExists && TraktSettings.MyFilms == -1)
{
ITraktHandler item = TraktHandlers.FirstOrDefault(p => p.Name == "My Films");
(item as MyFilmsHandler).DisposeEvents();
TraktHandlers.Remove(item);
}
}
catch (Exception)
{
TraktLogger.Error(errorMessage, "My Films");
}
#endregion
#region OnlineVideos
try
{
bool handlerExists = TraktHandlers.Exists(p => p.Name == "OnlineVideos");
if (!handlerExists && TraktSettings.OnlineVideos != -1)
TraktHandlers.Add(new TraktHandlers.OnlineVideos(TraktSettings.OnlineVideos));
else if (handlerExists && TraktSettings.OnlineVideos == -1)
{
ITraktHandler item = TraktHandlers.FirstOrDefault(p => p.Name == "OnlineVideos");
(item as TraktHandlers.OnlineVideos).DisposeEvents();
TraktHandlers.Remove(item);
}
}
catch (Exception)
{
TraktLogger.Error(errorMessage, "OnlineVideos");
}
#endregion
#region My TV Recordings
try
{
bool handlerExists = TraktHandlers.Exists(p => p.Name == "My TV Recordings");
if (!handlerExists && TraktSettings.MyTVRecordings != -1)
TraktHandlers.Add(new MyTVRecordings(TraktSettings.MyTVRecordings));
else if (handlerExists && TraktSettings.MyTVRecordings == -1)
TraktHandlers.RemoveAll(p => p.Name == "My TV Recordings");
}
catch (Exception)
{
TraktLogger.Error(errorMessage, "My TV Recordings");
}
#endregion
#region My TV Live
try
{
bool handlerExists = TraktHandlers.Exists(p => p.Name == "My TV Live");
if (!handlerExists && TraktSettings.MyTVLive != -1)
TraktHandlers.Add(new MyTVLive(TraktSettings.MyTVLive));
else if (handlerExists && TraktSettings.MyTVRecordings == -1)
TraktHandlers.RemoveAll(p => p.Name == "My TV Live");
}
catch (Exception)
{
TraktLogger.Error(errorMessage, "My TV Live");
}
#endregion
#region Argus TV Recordings
try
{
bool handlerExists = TraktHandlers.Exists(p => p.Name == "Argus TV Recordings");
if (!handlerExists && TraktSettings.ArgusRecordings != -1)
TraktHandlers.Add(new ArgusTVRecordings(TraktSettings.ArgusRecordings));
else if (handlerExists && TraktSettings.ArgusRecordings == -1)
TraktHandlers.RemoveAll(p => p.Name == "Argus TV Recordings");
}
catch (Exception)
{
TraktLogger.Error(errorMessage, "Argus TV Recordings");
}
#endregion
#region Argus TV Live
try
{
bool handlerExists = TraktHandlers.Exists(p => p.Name == "Argus TV Live");
if (!handlerExists && TraktSettings.ArgusTVLive != -1)
TraktHandlers.Add(new ArgusTVLive(TraktSettings.ArgusTVLive));
else if (handlerExists && TraktSettings.ArgusTVLive == -1)
TraktHandlers.RemoveAll(p => p.Name == "Argus TV Live");
}
catch (Exception)
{
TraktLogger.Error(errorMessage, "Argus TV Live");
}
#endregion
if (TraktHandlers.Count == 0)
{
TraktLogger.Info("There are no Plugin Handlers configured!");
}
else
{
TraktLogger.Debug("Sorting Plugin Handlers by priority");
TraktHandlers.Sort(delegate(ITraktHandler t1, ITraktHandler t2) { return t1.Priority.CompareTo(t2.Priority); });
}
}