update image processor

This commit is contained in:
Luke Pulverenti
2017-09-07 14:17:18 -04:00
parent ab3e79e6aa
commit eb63e0d264
14 changed files with 428 additions and 89 deletions

View File

@@ -1861,7 +1861,9 @@ namespace Emby.Server.Implementations
{
"mbplus.dll",
"mbintros.dll",
"embytv.dll"
"embytv.dll",
"Messenger.dll",
"MediaBrowser.Plugins.TvMazeProvider.dll"
};
return !exclude.Contains(filename ?? string.Empty, StringComparer.OrdinalIgnoreCase);

View File

@@ -114,7 +114,7 @@ namespace Emby.Server.Implementations.Data
{
get
{
return true;
return false;
}
}

View File

@@ -94,7 +94,7 @@ namespace Emby.Server.Implementations.Data
{
get
{
return true;
return false;
}
}

View File

@@ -275,8 +275,7 @@ namespace Emby.Server.Implementations.Dto
{
var hasFullSyncInfo = options.Fields.Contains(ItemFields.SyncInfo);
if (!options.Fields.Contains(ItemFields.BasicSyncInfo) &&
!hasFullSyncInfo)
if (!hasFullSyncInfo && !options.Fields.Contains(ItemFields.BasicSyncInfo))
{
return;
}

View File

@@ -496,6 +496,7 @@
<Compile Include="Services\ServiceController.cs" />
<Compile Include="Services\ServiceExec.cs" />
<Compile Include="Services\StringMapTypeDeserializer.cs" />
<Compile Include="Services\SwaggerService.cs" />
<Compile Include="Services\UrlExtensions.cs" />
<Compile Include="Session\HttpSessionController.cs" />
<Compile Include="Session\SessionManager.cs" />

View File

@@ -0,0 +1,183 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MediaBrowser.Model.Services;
namespace Emby.Server.Implementations.Services
{
[Route("/swagger", "GET", Summary = "Gets the swagger specifications")]
[Route("/swagger.json", "GET", Summary = "Gets the swagger specifications")]
public class GetSwaggerSpec : IReturn<SwaggerSpec>
{
}
public class SwaggerSpec
{
public string swagger { get; set; }
public string[] schemes { get; set; }
public SwaggerInfo info { get; set; }
public string host { get; set; }
public string basePath { get; set; }
public SwaggerTag[] tags { get; set; }
public Dictionary<string, Dictionary<string, SwaggerMethod>> paths { get; set; }
public Dictionary<string, SwaggerDefinition> definitions { get; set; }
}
public class SwaggerInfo
{
public string description { get; set; }
public string version { get; set; }
public string title { get; set; }
public SwaggerConcactInfo contact { get; set; }
}
public class SwaggerConcactInfo
{
public string email { get; set; }
}
public class SwaggerTag
{
public string description { get; set; }
public string name { get; set; }
}
public class SwaggerMethod
{
public string summary { get; set; }
public string description { get; set; }
public string[] tags { get; set; }
public string operationId { get; set; }
public string[] consumes { get; set; }
public string[] produces { get; set; }
public SwaggerParam[] parameters { get; set; }
public Dictionary<string, SwaggerResponse> responses { get; set; }
}
public class SwaggerParam
{
public string @in { get; set; }
public string name { get; set; }
public string description { get; set; }
public bool required { get; set; }
public string type { get; set; }
public string collectionFormat { get; set; }
}
public class SwaggerResponse
{
public string description { get; set; }
// ex. "$ref":"#/definitions/Pet"
public Dictionary<string, string> schema { get; set; }
}
public class SwaggerDefinition
{
public string type { get; set; }
public Dictionary<string, SwaggerProperty> properties { get; set; }
}
public class SwaggerProperty
{
public string type { get; set; }
public string format { get; set; }
public string description { get; set; }
public string[] @enum { get; set; }
public string @default { get; set; }
}
public class SwaggerService : IService
{
private SwaggerSpec _spec;
public object Get(GetSwaggerSpec request)
{
return _spec ?? (_spec = GetSpec());
}
private SwaggerSpec GetSpec()
{
var spec = new SwaggerSpec
{
schemes = new[] { "http" },
tags = GetTags(),
swagger = "2.0",
info = new SwaggerInfo
{
title = "Emby Server API",
version = "1",
description = "Explore the Emby Server API",
contact = new SwaggerConcactInfo
{
email = "api@emby.media"
}
},
paths = GetPaths(),
definitions = GetDefinitions()
};
return spec;
}
private SwaggerTag[] GetTags()
{
return new SwaggerTag[] { };
}
private Dictionary<string, SwaggerDefinition> GetDefinitions()
{
return new Dictionary<string, SwaggerDefinition>();
}
private Dictionary<string, Dictionary<string, SwaggerMethod>> GetPaths()
{
var paths = new Dictionary<string, Dictionary<string, SwaggerMethod>>();
var all = ServiceController.Instance.RestPathMap.ToList();
foreach (var current in all)
{
foreach (var info in current.Value)
{
paths[info.Path] = GetPathInfo(info);
}
}
return paths;
}
private Dictionary<string, SwaggerMethod> GetPathInfo(RestPath info)
{
var result = new Dictionary<string, SwaggerMethod>();
foreach (var verb in info.Verbs)
{
result[verb] = new SwaggerMethod
{
summary = info.Summary,
produces = new[]
{
"application/json",
"application/xml"
},
consumes = new[]
{
"application/json",
"application/xml"
},
operationId = info.RequestType.Name,
tags = new string[] { },
parameters = new SwaggerParam[] { }
};
}
return result;
}
}
}