add network share config

pull/702/head
Luke Pulverenti 8 years ago
parent 1a81678893
commit fdc2826709

@ -121,6 +121,18 @@ namespace MediaBrowser.Api.Library
public bool RefreshLibrary { get; set; } public bool RefreshLibrary { get; set; }
} }
[Route("/Library/VirtualFolders/Paths/Update", "POST")]
public class UpdateMediaPath : IReturnVoid
{
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>The name.</value>
public string Name { get; set; }
public MediaPathInfo PathInfo { get; set; }
}
[Route("/Library/VirtualFolders/Paths", "DELETE")] [Route("/Library/VirtualFolders/Paths", "DELETE")]
public class RemoveMediaPath : IReturnVoid public class RemoveMediaPath : IReturnVoid
{ {
@ -348,6 +360,20 @@ namespace MediaBrowser.Api.Library
} }
} }
/// <summary>
/// Posts the specified request.
/// </summary>
/// <param name="request">The request.</param>
public void Post(UpdateMediaPath request)
{
if (string.IsNullOrWhiteSpace(request.Name))
{
throw new ArgumentNullException("request");
}
_libraryManager.UpdateMediaPath(request.Name, request.PathInfo);
}
/// <summary> /// <summary>
/// Deletes the specified request. /// Deletes the specified request.
/// </summary> /// </summary>

@ -559,6 +559,7 @@ namespace MediaBrowser.Controller.Library
void AddVirtualFolder(string name, string collectionType, LibraryOptions options, bool refreshLibrary); void AddVirtualFolder(string name, string collectionType, LibraryOptions options, bool refreshLibrary);
void RemoveVirtualFolder(string name, bool refreshLibrary); void RemoveVirtualFolder(string name, bool refreshLibrary);
void AddMediaPath(string virtualFolderName, MediaPathInfo path); void AddMediaPath(string virtualFolderName, MediaPathInfo path);
void UpdateMediaPath(string virtualFolderName, MediaPathInfo path);
void RemoveMediaPath(string virtualFolderName, string path); void RemoveMediaPath(string virtualFolderName, string path);
QueryResult<Tuple<BaseItem, ItemCounts>> GetGenres(InternalItemsQuery query); QueryResult<Tuple<BaseItem, ItemCounts>> GetGenres(InternalItemsQuery query);

@ -43,7 +43,10 @@ namespace MediaBrowser.Server.Implementations.IO
// WMC temp recording directories that will constantly be written to // WMC temp recording directories that will constantly be written to
"TempRec", "TempRec",
"TempSBE" "TempSBE",
"@eaDir",
"eaDir",
"#recycle"
}; };
private readonly IReadOnlyList<string> _alwaysIgnoreSubstrings = new List<string> private readonly IReadOnlyList<string> _alwaysIgnoreSubstrings = new List<string>

@ -2858,6 +2858,32 @@ namespace MediaBrowser.Server.Implementations.Library
} }
} }
public void UpdateMediaPath(string virtualFolderName, MediaPathInfo pathInfo)
{
if (pathInfo == null)
{
throw new ArgumentNullException("path");
}
var rootFolderPath = ConfigurationManager.ApplicationPaths.DefaultUserViewsPath;
var virtualFolderPath = Path.Combine(rootFolderPath, virtualFolderName);
var libraryOptions = CollectionFolder.GetLibraryOptions(virtualFolderPath);
var list = libraryOptions.PathInfos.ToList();
foreach (var originalPathInfo in list)
{
if (string.Equals(pathInfo.Path, originalPathInfo.Path, StringComparison.Ordinal))
{
originalPathInfo.NetworkPath = pathInfo.NetworkPath;
break;
}
}
libraryOptions.PathInfos = list.ToArray();
CollectionFolder.SaveLibraryOptions(virtualFolderPath, libraryOptions);
}
public void RemoveVirtualFolder(string name, bool refreshLibrary) public void RemoveVirtualFolder(string name, bool refreshLibrary)
{ {
if (string.IsNullOrWhiteSpace(name)) if (string.IsNullOrWhiteSpace(name))
@ -2938,19 +2964,28 @@ namespace MediaBrowser.Server.Implementations.Library
} }
var rootFolderPath = ConfigurationManager.ApplicationPaths.DefaultUserViewsPath; var rootFolderPath = ConfigurationManager.ApplicationPaths.DefaultUserViewsPath;
var path = Path.Combine(rootFolderPath, virtualFolderName); var virtualFolderPath = Path.Combine(rootFolderPath, virtualFolderName);
if (!_fileSystem.DirectoryExists(path)) if (!_fileSystem.DirectoryExists(virtualFolderPath))
{ {
throw new DirectoryNotFoundException(string.Format("The media collection {0} does not exist", virtualFolderName)); throw new DirectoryNotFoundException(string.Format("The media collection {0} does not exist", virtualFolderName));
} }
var shortcut = Directory.EnumerateFiles(path, ShortcutFileSearch, SearchOption.AllDirectories).FirstOrDefault(f => _fileSystem.ResolveShortcut(f).Equals(mediaPath, StringComparison.OrdinalIgnoreCase)); var shortcut = Directory.EnumerateFiles(virtualFolderPath, ShortcutFileSearch, SearchOption.AllDirectories).FirstOrDefault(f => _fileSystem.ResolveShortcut(f).Equals(mediaPath, StringComparison.OrdinalIgnoreCase));
if (!string.IsNullOrEmpty(shortcut)) if (!string.IsNullOrEmpty(shortcut))
{ {
_fileSystem.DeleteFile(shortcut); _fileSystem.DeleteFile(shortcut);
} }
var libraryOptions = CollectionFolder.GetLibraryOptions(virtualFolderPath);
libraryOptions.PathInfos = libraryOptions
.PathInfos
.Where(i => !string.Equals(i.Path, mediaPath, StringComparison.Ordinal))
.ToArray();
CollectionFolder.SaveLibraryOptions(virtualFolderPath, libraryOptions);
} }
} }
} }

@ -699,7 +699,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv
item.HomePageUrl = info.HomePageUrl; item.HomePageUrl = info.HomePageUrl;
item.ProductionYear = info.ProductionYear; item.ProductionYear = info.ProductionYear;
if (!info.IsSeries || info.IsRepeat)
{
item.PremiereDate = info.OriginalAirDate; item.PremiereDate = info.OriginalAirDate;
}
item.IndexNumber = info.EpisodeNumber; item.IndexNumber = info.EpisodeNumber;
item.ParentIndexNumber = info.SeasonNumber; item.ParentIndexNumber = info.SeasonNumber;

Loading…
Cancel
Save