| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | #pragma warning disable CS1591using System;using System.IO;using System.Linq;using Emby.Naming.Common;namespace Emby.Naming.AudioBook{    public class AudioBookResolver    {        private readonly NamingOptions _options;        public AudioBookResolver(NamingOptions options)        {            _options = options;        }        public AudioBookFileInfo ParseFile(string path)        {            return Resolve(path, false);        }        public AudioBookFileInfo ParseDirectory(string path)        {            return Resolve(path, true);        }        public AudioBookFileInfo Resolve(string path, bool isDirectory = false)        {            if (string.IsNullOrEmpty(path))            {                throw new ArgumentNullException(nameof(path));            }            // TODO            if (isDirectory)            {                return null;            }            var extension = Path.GetExtension(path);            // Check supported extensions            if (!_options.AudioFileExtensions.Contains(extension, StringComparer.OrdinalIgnoreCase))            {                return null;            }            var container = extension.TrimStart('.');            var parsingResult = new AudioBookFilePathParser(_options).Parse(path);            return new AudioBookFileInfo            {                Path = path,                Container = container,                ChapterNumber = parsingResult.ChapterNumber,                PartNumber = parsingResult.PartNumber,                IsDirectory = isDirectory            };        }    }}
 |