mirror of
https://github.com/Radarr/Radarr
synced 2025-02-25 07:32:56 +00:00
More Notification Updates (#482)
* Custom Script: Add Movie_Path * Add Emby Update Support * Notifications: Maybe add Kodi / XBMC Update Support
This commit is contained in:
parent
487c5e22ce
commit
00541e6cc1
9 changed files with 143 additions and 5 deletions
|
@ -56,6 +56,7 @@ public override void OnDownload(DownloadMessage message)
|
|||
environmentVariables.Add("Radarr_EventType", "Download");
|
||||
environmentVariables.Add("Radarr_Movie_Id", movie.Id.ToString());
|
||||
environmentVariables.Add("Radarr_Movie_Title", movie.Title);
|
||||
environmentVariables.Add("Radarr_Movie_Path", movie.Path);
|
||||
environmentVariables.Add("Radarr_Movie_ImdbId", movie.ImdbId.ToString());
|
||||
environmentVariables.Add("Radarr_MovieFile_Id", movieFile.Id.ToString());
|
||||
environmentVariables.Add("Radarr_MovieFile_RelativePath", movieFile.RelativePath);
|
||||
|
|
|
@ -37,14 +37,18 @@ public override void OnDownload(DownloadMessage message)
|
|||
|
||||
if (Settings.UpdateLibrary)
|
||||
{
|
||||
_mediaBrowserService.Update(Settings, message.Series);
|
||||
_mediaBrowserService.UpdateMovies(Settings, message.Movie);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnMovieRename(Movie movie)
|
||||
{
|
||||
if (Settings.UpdateLibrary)
|
||||
{
|
||||
_mediaBrowserService.UpdateMovies(Settings, movie);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public override void OnRename(Series series)
|
||||
{
|
||||
if (Settings.UpdateLibrary)
|
||||
|
|
|
@ -40,6 +40,16 @@ public void Update(MediaBrowserSettings settings, int tvdbId)
|
|||
ProcessRequest(request, settings);
|
||||
}
|
||||
|
||||
|
||||
public void UpdateMovies(MediaBrowserSettings settings, string imdbid)
|
||||
{
|
||||
var path = string.Format("/Library/Movies/Updated?ImdbId={0}", imdbid);
|
||||
var request = BuildRequest(path, settings);
|
||||
request.Headers.Add("Content-Length", "0");
|
||||
|
||||
ProcessRequest(request, settings);
|
||||
}
|
||||
|
||||
private string ProcessRequest(HttpRequest request, MediaBrowserSettings settings)
|
||||
{
|
||||
request.Headers.Add("X-MediaBrowser-Token", settings.ApiKey);
|
||||
|
|
|
@ -11,6 +11,7 @@ public interface IMediaBrowserService
|
|||
{
|
||||
void Notify(MediaBrowserSettings settings, string title, string message);
|
||||
void Update(MediaBrowserSettings settings, Series series);
|
||||
void UpdateMovies(MediaBrowserSettings settings, Movie movie);
|
||||
ValidationFailure Test(MediaBrowserSettings settings);
|
||||
}
|
||||
|
||||
|
@ -35,6 +36,13 @@ public void Update(MediaBrowserSettings settings, Series series)
|
|||
_proxy.Update(settings, series.TvdbId);
|
||||
}
|
||||
|
||||
|
||||
public void UpdateMovies(MediaBrowserSettings settings, Movie movie)
|
||||
{
|
||||
_proxy.UpdateMovies(settings, movie.ImdbId);
|
||||
}
|
||||
|
||||
|
||||
public ValidationFailure Test(MediaBrowserSettings settings)
|
||||
{
|
||||
try
|
||||
|
|
|
@ -51,6 +51,24 @@ public void Update(XbmcSettings settings, Series series)
|
|||
UpdateLibrary(settings, series);
|
||||
}
|
||||
|
||||
public void UpdateMovie(XbmcSettings settings, Movie movie)
|
||||
{
|
||||
if (!settings.AlwaysUpdate)
|
||||
{
|
||||
_logger.Debug("Determining if there are any active players on XBMC host: {0}", settings.Address);
|
||||
var activePlayers = GetActivePlayers(settings);
|
||||
|
||||
if (activePlayers.Any(a => a.Type.Equals("video")))
|
||||
{
|
||||
_logger.Debug("Video is currently playing, skipping library update");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
UpdateMovieLibrary(settings, movie);
|
||||
}
|
||||
|
||||
|
||||
public void Clean(XbmcSettings settings)
|
||||
{
|
||||
const string cleanVideoLibrary = "CleanLibrary(video)";
|
||||
|
@ -167,6 +185,37 @@ private void UpdateLibrary(XbmcSettings settings, Series series)
|
|||
}
|
||||
}
|
||||
|
||||
private void UpdateMovieLibrary(XbmcSettings settings, Movie movie)
|
||||
{
|
||||
try
|
||||
{
|
||||
//_logger.Debug("Sending Update DB Request to XBMC Host: {0}", settings.Address);
|
||||
//var xbmcSeriesPath = GetSeriesPath(settings, series);
|
||||
|
||||
////If the path is found update it, else update the whole library
|
||||
//if (!string.IsNullOrEmpty(xbmcSeriesPath))
|
||||
//{
|
||||
// _logger.Debug("Updating series [{0}] on XBMC host: {1}", series, settings.Address);
|
||||
// var command = BuildExecBuiltInCommand(string.Format("UpdateLibrary(video,{0})", xbmcSeriesPath));
|
||||
// SendCommand(settings, command);
|
||||
//}
|
||||
|
||||
//else
|
||||
//{
|
||||
//Update the entire library
|
||||
_logger.Debug("Series [{0}] doesn't exist on XBMC host: {1}, Updating Entire Library", movie, settings.Address);
|
||||
var command = BuildExecBuiltInCommand("UpdateLibrary(video)");
|
||||
SendCommand(settings, command);
|
||||
//}
|
||||
}
|
||||
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Debug(ex, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private string SendCommand(XbmcSettings settings, string command)
|
||||
{
|
||||
var url = string.Format("http://{0}/xbmcCmds/xbmcHttp?command={1}", settings.Address, command);
|
||||
|
|
|
@ -7,6 +7,7 @@ public interface IApiProvider
|
|||
{
|
||||
void Notify(XbmcSettings settings, string title, string message);
|
||||
void Update(XbmcSettings settings, Series series);
|
||||
void UpdateMovie(XbmcSettings settings, Movie movie);
|
||||
void Clean(XbmcSettings settings);
|
||||
bool CanHandle(XbmcVersion version);
|
||||
}
|
||||
|
|
|
@ -44,7 +44,25 @@ public void Update(XbmcSettings settings, Series series)
|
|||
|
||||
UpdateLibrary(settings, series);
|
||||
}
|
||||
|
||||
|
||||
public void UpdateMovie(XbmcSettings settings, Movie movie)
|
||||
{
|
||||
if (!settings.AlwaysUpdate)
|
||||
{
|
||||
_logger.Debug("Determining if there are any active players on XBMC host: {0}", settings.Address);
|
||||
var activePlayers = _proxy.GetActivePlayers(settings);
|
||||
|
||||
if (activePlayers.Any(a => a.Type.Equals("video")))
|
||||
{
|
||||
_logger.Debug("Video is currently playing, skipping library update");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
UpdateMovieLibrary(settings, movie);
|
||||
}
|
||||
|
||||
|
||||
public void Clean(XbmcSettings settings)
|
||||
{
|
||||
_proxy.CleanLibrary(settings);
|
||||
|
@ -108,5 +126,23 @@ private void UpdateLibrary(XbmcSettings settings, Series series)
|
|||
_logger.Debug(ex, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateMovieLibrary(XbmcSettings settings, Movie movie)
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = _proxy.UpdateLibrary(settings, null);
|
||||
|
||||
if (!response.Equals("OK", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
_logger.Debug("Failed to update library for: {0}", settings.Address);
|
||||
}
|
||||
}
|
||||
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Debug(ex, ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,13 +33,14 @@ public override void OnDownload(DownloadMessage message)
|
|||
const string header = "Radarr - Downloaded";
|
||||
|
||||
Notify(Settings, header, message.Message);
|
||||
UpdateAndClean(message.Series, message.OldFiles.Any());
|
||||
UpdateAndCleanMovie(message.Movie, message.OldFiles.Any());
|
||||
}
|
||||
|
||||
public override void OnMovieRename(Movie movie)
|
||||
{
|
||||
UpdateAndCleanMovie(movie);
|
||||
}
|
||||
|
||||
|
||||
public override void OnRename(Series series)
|
||||
{
|
||||
UpdateAndClean(series);
|
||||
|
@ -92,5 +93,26 @@ private void UpdateAndClean(Series series, bool clean = true)
|
|||
_logger.Debug(ex, logMessage);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateAndCleanMovie(Movie movie, bool clean = true)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Settings.UpdateLibrary)
|
||||
{
|
||||
_xbmcService.UpdateMovie(Settings, movie);
|
||||
}
|
||||
|
||||
if (clean && Settings.CleanLibrary)
|
||||
{
|
||||
_xbmcService.Clean(Settings);
|
||||
}
|
||||
}
|
||||
catch (SocketException ex)
|
||||
{
|
||||
var logMessage = string.Format("Unable to connect to XBMC Host: {0}:{1}", Settings.Host, Settings.Port);
|
||||
_logger.Debug(ex, logMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ public interface IXbmcService
|
|||
{
|
||||
void Notify(XbmcSettings settings, string title, string message);
|
||||
void Update(XbmcSettings settings, Series series);
|
||||
void UpdateMovie(XbmcSettings settings, Movie movie);
|
||||
void Clean(XbmcSettings settings);
|
||||
ValidationFailure Test(XbmcSettings settings, string message);
|
||||
}
|
||||
|
@ -51,6 +52,12 @@ public void Update(XbmcSettings settings, Series series)
|
|||
provider.Update(settings, series);
|
||||
}
|
||||
|
||||
public void UpdateMovie(XbmcSettings settings, Movie movie)
|
||||
{
|
||||
var provider = GetApiProvider(settings);
|
||||
provider.UpdateMovie(settings, movie);
|
||||
}
|
||||
|
||||
public void Clean(XbmcSettings settings)
|
||||
{
|
||||
var provider = GetApiProvider(settings);
|
||||
|
|
Loading…
Reference in a new issue