using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Branding;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace Jellyfin.Api.Controllers;
///
/// Branding controller.
///
public class BrandingController : BaseJellyfinApiController
{
private readonly IServerConfigurationManager _serverConfigurationManager;
///
/// Initializes a new instance of the class.
///
/// Instance of the interface.
public BrandingController(IServerConfigurationManager serverConfigurationManager)
{
_serverConfigurationManager = serverConfigurationManager;
}
///
/// Gets branding configuration.
///
/// Branding configuration returned.
/// An containing the branding configuration.
[HttpGet("Configuration")]
[ProducesResponseType(StatusCodes.Status200OK)]
public ActionResult GetBrandingOptions()
{
return _serverConfigurationManager.GetConfiguration("branding");
}
///
/// Gets branding css.
///
/// Branding css returned.
/// No branding css configured.
///
/// An containing the branding css if exist,
/// or a if the css is not configured.
///
[HttpGet("Css")]
[HttpGet("Css.css", Name = "GetBrandingCss_2")]
[Produces("text/css")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status204NoContent)]
public ActionResult GetBrandingCss()
{
var options = _serverConfigurationManager.GetConfiguration("branding");
return options.CustomCss ?? string.Empty;
}
}