aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/HttpHandlers/PluginAssemblyHandler.cs
blob: 07e6115a59914b75dab8b8e08d5a0823a8730d3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using MediaBrowser.Common.Net.Handlers;
using MediaBrowser.Controller;
using System;
using System.ComponentModel.Composition;
using System.IO;
using System.Net;
using System.Threading.Tasks;

namespace MediaBrowser.Api.HttpHandlers
{
    [Export(typeof(BaseHandler))]
    class PluginAssemblyHandler : BaseHandler
    {
        public override bool HandlesRequest(HttpListenerRequest request)
        {
            return ApiService.IsApiUrlMatch("pluginassembly", request);
        }
        
        public override Task<string> GetContentType()
        {
            throw new NotImplementedException();
        }

        protected override Task WriteResponseToOutputStream(Stream stream)
        {
            throw new NotImplementedException();
        }

        public override Task ProcessRequest(HttpListenerContext ctx)
        {
            string filename = ctx.Request.QueryString["assemblyfilename"];

            string path = Path.Combine(Kernel.Instance.ApplicationPaths.PluginsPath, filename);

            return new StaticFileHandler() { Path = path }.ProcessRequest(ctx);
        }
    }
}