clean related files when deleting items

This commit is contained in:
Luke Pulverenti
2017-02-18 03:32:17 -05:00
parent 36f8eb1149
commit 6091e00e18
31 changed files with 161 additions and 295 deletions

View File

@@ -3874,6 +3874,25 @@ namespace Emby.Server.Implementations.Data
whereClauses.Add(clause);
}
if (query.AlbumIds.Length > 0)
{
var clauses = new List<string>();
var index = 0;
foreach (var albumId in query.AlbumIds)
{
var paramName = "@AlbumIds" + index;
clauses.Add("Album in (select Name from typedbaseitems where guid=" + paramName + ")");
if (statement != null)
{
statement.TryBind(paramName, albumId.ToGuidParamValue());
}
index++;
}
var clause = "(" + string.Join(" OR ", clauses.ToArray()) + ")";
whereClauses.Add(clause);
}
if (query.ExcludeArtistIds.Length > 0)
{
var clauses = new List<string>();
@@ -4227,30 +4246,6 @@ namespace Emby.Server.Implementations.Data
{
whereClauses.Add("ProviderIds like '%tvdb=%'");
}
if (query.AlbumNames.Length > 0)
{
var clause = "(";
var index = 0;
foreach (var name in query.AlbumNames)
{
if (index > 0)
{
clause += " OR ";
}
clause += "Album=@AlbumName" + index;
if (statement != null)
{
statement.TryBind("@AlbumName" + index, name);
}
index++;
}
clause += ")";
whereClauses.Add(clause);
}
if (query.HasThemeSong.HasValue)
{
if (query.HasThemeSong.Value)

View File

@@ -492,7 +492,10 @@ namespace Emby.Server.Implementations.Dto
}
}
dto.PlayAccess = item.GetPlayAccess(user);
//if (!(item is LiveTvProgram))
{
dto.PlayAccess = item.GetPlayAccess(user);
}
if (fields.Contains(ItemFields.BasicSyncInfo) || fields.Contains(ItemFields.SyncInfo))
{
@@ -994,7 +997,12 @@ namespace Emby.Server.Implementations.Dto
}
dto.MediaType = item.MediaType;
dto.LocationType = item.LocationType;
if (!(item is LiveTvProgram))
{
dto.LocationType = item.LocationType;
}
if (item.IsHD.HasValue && item.IsHD.Value)
{
dto.IsHD = item.IsHD;
@@ -1102,7 +1110,10 @@ namespace Emby.Server.Implementations.Dto
}
dto.Type = item.GetClientTypeName();
dto.CommunityRating = item.CommunityRating;
if ((item.CommunityRating ?? 0) > 0)
{
dto.CommunityRating = item.CommunityRating;
}
if (fields.Contains(ItemFields.VoteCount))
{
@@ -1410,8 +1421,6 @@ namespace Emby.Server.Implementations.Dto
dto.AirDays = series.AirDays;
dto.AirTime = series.AirTime;
dto.SeriesStatus = series.Status;
dto.AnimeSeriesIndex = series.AnimeSeriesIndex;
}
// Add SeasonInfo
@@ -1473,9 +1482,12 @@ namespace Emby.Server.Implementations.Dto
SetBookProperties(dto, book);
}
if (item.ProductionLocations.Count > 0 || item is Movie)
if (fields.Contains(ItemFields.ProductionLocations))
{
dto.ProductionLocations = item.ProductionLocations.ToArray();
if (item.ProductionLocations.Count > 0 || item is Movie)
{
dto.ProductionLocations = item.ProductionLocations.ToArray();
}
}
var photo = item as Photo;

View File

@@ -409,17 +409,17 @@ namespace Emby.Server.Implementations.Library
if (options.DeleteFileLocation && locationType != LocationType.Remote && locationType != LocationType.Virtual)
{
foreach (var path in item.GetDeletePaths().ToList())
foreach (var fileSystemInfo in item.GetDeletePaths().ToList())
{
if (_fileSystem.DirectoryExists(path))
if (fileSystemInfo.IsDirectory)
{
_logger.Debug("Deleting path {0}", path);
_fileSystem.DeleteDirectory(path, true);
_logger.Debug("Deleting path {0}", fileSystemInfo.FullName);
_fileSystem.DeleteDirectory(fileSystemInfo.FullName, true);
}
else if (_fileSystem.FileExists(path))
else
{
_logger.Debug("Deleting path {0}", path);
_fileSystem.DeleteFile(path);
_logger.Debug("Deleting path {0}", fileSystemInfo.FullName);
_fileSystem.DeleteFile(fileSystemInfo.FullName);
}
}

View File

@@ -607,6 +607,10 @@ namespace Emby.Server.Implementations.LiveTv
item.Audio = info.Audio;
item.ChannelId = channel.Id.ToString("N");
item.CommunityRating = item.CommunityRating ?? info.CommunityRating;
if ((item.CommunityRating ?? 0).Equals(0))
{
item.CommunityRating = null;
}
item.EpisodeTitle = info.EpisodeTitle;
item.ExternalId = info.Id;