mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-07-09 03:04:20 -04:00
Documenting thumbnails
This commit is contained in:
parent
6a3e48a1d1
commit
b57fa17ced
@ -33,6 +33,7 @@ namespace Kyoo.Abstractions.Models
|
||||
/// <remarks>
|
||||
/// An arbitrary index should not be used, instead use indexes from <see cref="Models.Images"/>
|
||||
/// </remarks>
|
||||
/// <example>{"0": "example.com/dune/poster"}</example>
|
||||
public Dictionary<int, string> Images { get; set; }
|
||||
}
|
||||
|
||||
|
@ -105,7 +105,7 @@ namespace Kyoo.Core.Api
|
||||
ShouldSerialize = x =>
|
||||
{
|
||||
IThumbnails thumb = (IThumbnails)x;
|
||||
return thumb.Images?.ContainsKey(id) == true;
|
||||
return thumb?.Images?.ContainsKey(id) == true;
|
||||
},
|
||||
ValueProvider = new ThumbnailProvider(_options.Value.PublicUrl, id)
|
||||
});
|
||||
|
@ -91,7 +91,7 @@ namespace Kyoo.Core.Api
|
||||
try
|
||||
{
|
||||
ICollection<Show> resources = await _libraryManager.GetAll(
|
||||
ApiHelper.ParseWhere<Show>(where, x => x.Collections.Any(identifier.IsSame)),
|
||||
ApiHelper.ParseWhere(where, identifier.IsContainedIn<Show, Collection>(x => x.Collections)),
|
||||
new Sort<Show>(sortBy),
|
||||
new Pagination(limit, afterID)
|
||||
);
|
||||
@ -135,7 +135,7 @@ namespace Kyoo.Core.Api
|
||||
try
|
||||
{
|
||||
ICollection<Library> resources = await _libraryManager.GetAll(
|
||||
ApiHelper.ParseWhere<Library>(where, x => x.Collections.Any(identifier.IsSame)),
|
||||
ApiHelper.ParseWhere(where, identifier.IsContainedIn<Library, Collection>(x => x.Collections)),
|
||||
new Sort<Library>(sortBy),
|
||||
new Pagination(limit, afterID)
|
||||
);
|
||||
|
@ -97,6 +97,7 @@ namespace Kyoo.Swagger
|
||||
x.IsNullableRaw = false;
|
||||
x.Type = JsonObjectType.String | JsonObjectType.Integer;
|
||||
}));
|
||||
document.SchemaProcessors.Add(new ThumbnailProcessor());
|
||||
|
||||
document.AddSecurity("Kyoo", new OpenApiSecurityScheme
|
||||
{
|
||||
|
49
src/Kyoo.Swagger/ThumbnailProcessor.cs
Normal file
49
src/Kyoo.Swagger/ThumbnailProcessor.cs
Normal file
@ -0,0 +1,49 @@
|
||||
// Kyoo - A portable and vast media library solution.
|
||||
// Copyright (c) Kyoo.
|
||||
//
|
||||
// See AUTHORS.md and LICENSE file in the project root for full license information.
|
||||
//
|
||||
// Kyoo is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// any later version.
|
||||
//
|
||||
// Kyoo is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Kyoo. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
using Kyoo.Abstractions.Models;
|
||||
using NJsonSchema;
|
||||
using NJsonSchema.Generation;
|
||||
|
||||
namespace Kyoo.Swagger
|
||||
{
|
||||
/// <summary>
|
||||
/// An operation processor to add computed fields of <see cref="IThumbnails"/>.
|
||||
/// </summary>
|
||||
public class ThumbnailProcessor : ISchemaProcessor
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public void Process(SchemaProcessorContext context)
|
||||
{
|
||||
if (!context.Type.IsAssignableTo(typeof(IThumbnails)))
|
||||
return;
|
||||
foreach ((int _, string imageP) in Images.ImageName)
|
||||
{
|
||||
string image = imageP.ToLower()[0] + imageP[1..];
|
||||
context.Schema.Properties.Add(image, new JsonSchemaProperty
|
||||
{
|
||||
Type = JsonObjectType.String,
|
||||
IsNullableRaw = true,
|
||||
Description = $"An url to the {image} of this resource. If this resource does not have an image, " +
|
||||
$"the link will be null. If the kyoo's instance is not capable of handling this kind of image " +
|
||||
$"for the specific resource, this field won't be present."
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1 +1 @@
|
||||
Subproject commit 846dbcb22ed29244a2384d240180c821ec18df2b
|
||||
Subproject commit 0170abcffd4da197ccbf1155623311b07777314b
|
Loading…
x
Reference in New Issue
Block a user