aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-11-11 02:24:36 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-11-11 02:24:36 -0500
commit00cbadea2c5ea8c717808fb4e8b11004509dc379 (patch)
tree3f59a210f8fd1bcd6cb72806eb11751712a2f777 /Emby.Server.Implementations
parent06afe47ee9716cb210067f3c09cd0c97722bd1c7 (diff)
update core project
Diffstat (limited to 'Emby.Server.Implementations')
-rw-r--r--Emby.Server.Implementations/Emby.Server.Implementations.csproj5
-rw-r--r--Emby.Server.Implementations/IO/MbLinkShortcutHandler.cs55
2 files changed, 60 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj
index 438edf212..f65b8ac4a 100644
--- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj
+++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj
@@ -92,6 +92,7 @@
<Compile Include="Images\BaseDynamicImageProvider.cs" />
<Compile Include="Intros\DefaultIntroProvider.cs" />
<Compile Include="IO\FileRefresher.cs" />
+ <Compile Include="IO\MbLinkShortcutHandler.cs" />
<Compile Include="IO\ThrottledStream.cs" />
<Compile Include="Library\CoreResolutionIgnoreRule.cs" />
<Compile Include="Library\LibraryManager.cs" />
@@ -270,6 +271,10 @@
<Project>{442b5058-dcaf-4263-bb6a-f21e31120a1b}</Project>
<Name>MediaBrowser.Providers</Name>
</ProjectReference>
+ <ProjectReference Include="..\MediaBrowser.Server.Implementations\MediaBrowser.Server.Implementations.csproj">
+ <Project>{2e781478-814d-4a48-9d80-bff206441a65}</Project>
+ <Name>MediaBrowser.Server.Implementations</Name>
+ </ProjectReference>
<Reference Include="ServiceStack">
<HintPath>..\ThirdParty\ServiceStack\ServiceStack.dll</HintPath>
</Reference>
diff --git a/Emby.Server.Implementations/IO/MbLinkShortcutHandler.cs b/Emby.Server.Implementations/IO/MbLinkShortcutHandler.cs
new file mode 100644
index 000000000..0b1391ae0
--- /dev/null
+++ b/Emby.Server.Implementations/IO/MbLinkShortcutHandler.cs
@@ -0,0 +1,55 @@
+using System;
+using System.IO;
+using MediaBrowser.Common.IO;
+using MediaBrowser.Controller.IO;
+using MediaBrowser.Model.IO;
+
+namespace Emby.Server.Implementations.IO
+{
+ public class MbLinkShortcutHandler : IShortcutHandler
+ {
+ private readonly IFileSystem _fileSystem;
+
+ public MbLinkShortcutHandler(IFileSystem fileSystem)
+ {
+ _fileSystem = fileSystem;
+ }
+
+ public string Extension
+ {
+ get { return ".mblink"; }
+ }
+
+ public string Resolve(string shortcutPath)
+ {
+ if (string.IsNullOrEmpty(shortcutPath))
+ {
+ throw new ArgumentNullException("filenshortcutPathame");
+ }
+
+ if (string.Equals(Path.GetExtension(shortcutPath), ".mblink", StringComparison.OrdinalIgnoreCase))
+ {
+ var path = _fileSystem.ReadAllText(shortcutPath);
+
+ return _fileSystem.NormalizePath(path);
+ }
+
+ return null;
+ }
+
+ public void Create(string shortcutPath, string targetPath)
+ {
+ if (string.IsNullOrEmpty(shortcutPath))
+ {
+ throw new ArgumentNullException("shortcutPath");
+ }
+
+ if (string.IsNullOrEmpty(targetPath))
+ {
+ throw new ArgumentNullException("targetPath");
+ }
+
+ _fileSystem.WriteAllText(shortcutPath, targetPath);
+ }
+ }
+}