mirror of https://github.com/jellyfin/jellyfin.git
add network share config
This commit is contained in:
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;
|
||||||
item.PremiereDate = info.OriginalAirDate;
|
|
||||||
|
if (!info.IsSeries || info.IsRepeat)
|
||||||
|
{
|
||||||
|
item.PremiereDate = info.OriginalAirDate;
|
||||||
|
}
|
||||||
|
|
||||||
item.IndexNumber = info.EpisodeNumber;
|
item.IndexNumber = info.EpisodeNumber;
|
||||||
item.ParentIndexNumber = info.SeasonNumber;
|
item.ParentIndexNumber = info.SeasonNumber;
|
||||||
|
|
Loading…
Reference in New Issue