mirror of
https://github.com/yawaflua/SkinsApi.git
synced 2025-12-09 03:49:32 +02:00
Add ping controller and cleaning code
This commit is contained in:
15
Controllers/Default/PingController.cs
Normal file
15
Controllers/Default/PingController.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace SkinsApi.Controllers.Default
|
||||
{
|
||||
[Route("/ping")]
|
||||
[ApiController]
|
||||
public class PingController : ControllerBase
|
||||
{
|
||||
[HttpGet]
|
||||
public async Task<IActionResult> Ping()
|
||||
{
|
||||
return Ok("Pong");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ namespace SkinsApi.Controllers.v1
|
||||
{
|
||||
[Route("/skin/")]
|
||||
[ApiController]
|
||||
public class AnotherSkinsController ( ISkinService skinService) : ControllerBase
|
||||
public class AnotherSkinsController(ISkinService skinService) : ControllerBase
|
||||
{
|
||||
[HttpGet("{skin_type}/{width}/{user}")]
|
||||
[Produces("image/png")]
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.RateLimiting;
|
||||
using SkinsApi.Interfaces.Services;
|
||||
|
||||
namespace SkinsApi.Controllers.v1
|
||||
@@ -7,7 +6,7 @@ namespace SkinsApi.Controllers.v1
|
||||
[Route("/api/v1/skin/")]
|
||||
[ApiController]
|
||||
|
||||
public class SkinsController (ISkinService skinService): ControllerBase
|
||||
public class SkinsController(ISkinService skinService) : ControllerBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Get user`s skin
|
||||
@@ -50,7 +49,8 @@ namespace SkinsApi.Controllers.v1
|
||||
try
|
||||
{
|
||||
return File((await skinService.GetSkinStreamAsync(user)).GetBody(width), "image/png");
|
||||
} catch(Exception ex)
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
@@ -3,15 +3,12 @@ using SkinsApi.Interfaces.SkinService;
|
||||
using SkinsApi.Models;
|
||||
using SkinsApi.Models.SkinService;
|
||||
using SkinsApi.Sources;
|
||||
using System.Buffers.Text;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace SkinsApi.Services
|
||||
{
|
||||
public class SkinService (HttpClient client): ISkinService
|
||||
public class SkinService(HttpClient client) : ISkinService
|
||||
{
|
||||
private async Task<IProfile> GetProfileByNicknameAsync(string nickname)
|
||||
{
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using SixLabors.ImageSharp;
|
||||
using SixLabors.ImageSharp.Formats;
|
||||
using SixLabors.ImageSharp.Formats.Png;
|
||||
using SixLabors.ImageSharp.PixelFormats;
|
||||
using SixLabors.ImageSharp.Processing;
|
||||
@@ -45,7 +44,7 @@ namespace SkinsApi.Sources
|
||||
public Stream GetAllSkin(float width = 64f)
|
||||
{
|
||||
var stream = new MemoryStream();
|
||||
int resizedWidth = (int)(_bitmap.Width * (width/_bitmap.Width));
|
||||
int resizedWidth = (int)(_bitmap.Width * (width / _bitmap.Width));
|
||||
var resizedPicture = _bitmap.Clone(c => c.Resize(resizedWidth, resizedWidth, KnownResamplers.NearestNeighbor));
|
||||
resizedPicture.Save(stream, new PngEncoder());
|
||||
stream.Position = 0;
|
||||
@@ -121,7 +120,7 @@ namespace SkinsApi.Sources
|
||||
.Resize(115, 171, KnownResamplers.NearestNeighbor)); // Изменение размера, если необходимо
|
||||
var bodyImageLayout = sourceImage.Clone(ctx => ctx
|
||||
.Crop(new(bodyLayoutStart, body))
|
||||
.Resize((int)(115*0.2), (int)(171*0.2), KnownResamplers.NearestNeighbor)); // Изменение размера, если необходимо
|
||||
.Resize((int)(115 * 0.2), (int)(171 * 0.2), KnownResamplers.NearestNeighbor)); // Изменение размера, если необходимо
|
||||
finalImage.Mutate(ctx => ctx
|
||||
.DrawImage(bodyImage, new Point(87, 120), 1));
|
||||
finalImage.Mutate(ctx => ctx
|
||||
@@ -220,7 +219,7 @@ namespace SkinsApi.Sources
|
||||
|
||||
var stream = new MemoryStream();
|
||||
|
||||
int resizedWidth = (int)(finalImage.Width * (width/ finalImage.Width));
|
||||
int resizedWidth = (int)(finalImage.Width * (width / finalImage.Width));
|
||||
finalImage.Mutate(k => k.Resize(resizedWidth, resizedWidth, KnownResamplers.NearestNeighbor));
|
||||
finalImage.Save(stream, new PngEncoder());
|
||||
stream.Position = 0;
|
||||
|
||||
12
Startup.cs
12
Startup.cs
@@ -1,13 +1,9 @@
|
||||
using Microsoft.OpenApi.Models;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using System.Text.Json.Serialization;
|
||||
using AspNetCoreRateLimit;
|
||||
using Microsoft.OpenApi.Models;
|
||||
using SkinsApi.Interfaces.Services;
|
||||
using SkinsApi.Services;
|
||||
using System.Threading.RateLimiting;
|
||||
using SixLabors.ImageSharp;
|
||||
using AspNetCoreRateLimit;
|
||||
using System.Reflection;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace SkinsApi
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user