using System.IO; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.Extensions; namespace Prowlarr.Http.Frontend.Mappers { public class LogFileMapper : StaticResourceMapperBase { private readonly IAppFolderInfo _appFolderInfo; public LogFileMapper(IAppFolderInfo appFolderInfo, IDiskProvider diskProvider, Logger logger) : base(diskProvider, logger) { _appFolderInfo = appFolderInfo; } protected override string FolderPath => _appFolderInfo.GetLogFolder(); protected override string MapPath(string resourceUrl) { var path = resourceUrl.Replace('/', Path.DirectorySeparatorChar); path = Path.GetFileName(path); return Path.Combine(FolderPath, path); } public override bool CanHandle(string resourceUrl) { return resourceUrl.StartsWith("/logfile/") && resourceUrl.EndsWith(".txt"); } } }