using System;
using AutoMapper;
using BililiveRecorder.Core.Config.V3;
using BililiveRecorder.Core.Templating;
using BililiveRecorder.Web.Models.Rest;
using Microsoft.AspNetCore.Mvc;
namespace BililiveRecorder.Web.Api
{
[ApiController, Route("api/[controller]", Name = "[controller] [action]")]
public sealed class MiscController : ControllerBase
{
private readonly IMapper mapper;
public MiscController(IMapper mapper)
{
this.mapper = mapper ?? throw new ArgumentNullException(nameof(mapper));
}
///
/// 根据传入参数生成录播文件名
///
///
///
[HttpPost("generateFileName")]
public ActionResult GenerateFileName([FromBody] GenerateFileNameInput input)
{
var config = new GlobalConfig()
{
WorkDirectory = "/",
FileNameRecordTemplate = input.Template
};
var generator = new FileNameGenerator(config);
var context = this.mapper.Map(input.Context);
var (_, relativePath) = generator.CreateFilePath(context);
return relativePath;
}
}
}