29 lines
1.2 KiB
C#
29 lines
1.2 KiB
C#
|
using MediaBrowser.Controller;
|
||
|
|
||
|
namespace Jellyfin.Plugin.SmartPlaylist {
|
||
|
|
||
|
public interface ISmartPlaylistFileSystem {
|
||
|
public string StoragePath { get; }
|
||
|
public string GetSmartPlaylistFilePath(SmartPlaylistId smartPlaylistId);
|
||
|
public string FindSmartPlaylistFilePath(SmartPlaylistId smartPlaylistId);
|
||
|
public string[] FindAllSmartPlaylistFilePaths();
|
||
|
}
|
||
|
|
||
|
public class FileSystem : ISmartPlaylistFileSystem {
|
||
|
public FileSystem(IServerApplicationPaths serverApplicationPaths) {
|
||
|
StoragePath = Path.Combine(serverApplicationPaths.DataPath, "smartplaylists");
|
||
|
if (!Directory.Exists(StoragePath)) { Directory.CreateDirectory(StoragePath); }
|
||
|
}
|
||
|
public string StoragePath { get; }
|
||
|
public string GetSmartPlaylistFilePath(SmartPlaylistId smartPlaylistId) {
|
||
|
return Path.Combine(StoragePath, $"{smartPlaylistId}.json");
|
||
|
}
|
||
|
public string FindSmartPlaylistFilePath(SmartPlaylistId smartPlaylistId) {
|
||
|
return Directory.GetFiles(StoragePath, $"{smartPlaylistId}.json", SearchOption.AllDirectories).First();
|
||
|
}
|
||
|
public string[] FindAllSmartPlaylistFilePaths() {
|
||
|
return Directory.GetFiles(StoragePath);
|
||
|
}
|
||
|
}
|
||
|
}
|