Fixed a bug in IsImage and IsArchive where I was using a contains instead of matching the regex.

This commit is contained in:
Joseph Milazzo 2021-02-04 17:39:24 -06:00
parent 10c8ea34fe
commit e9dfc1bda0
2 changed files with 11 additions and 8 deletions

View File

@ -8,15 +8,15 @@ namespace API.Tests.Services
{ {
public class CacheServiceTests public class CacheServiceTests
{ {
private readonly CacheService _cacheService; // private readonly CacheService _cacheService;
private readonly ILogger<CacheService> _logger = Substitute.For<ILogger<CacheService>>(); // private readonly ILogger<CacheService> _logger = Substitute.For<ILogger<CacheService>>();
private readonly IUnitOfWork _unitOfWork = Substitute.For<IUnitOfWork>(); // private readonly IUnitOfWork _unitOfWork = Substitute.For<IUnitOfWork>();
private readonly IArchiveService _archiveService = Substitute.For<IArchiveService>(); // private readonly IArchiveService _archiveService = Substitute.For<IArchiveService>();
private readonly IDirectoryService _directoryService = Substitute.For<DirectoryService>(); // private readonly IDirectoryService _directoryService = Substitute.For<DirectoryService>();
public CacheServiceTests() public CacheServiceTests()
{ {
_cacheService = new CacheService(_logger, _unitOfWork, _archiveService, _directoryService); //_cacheService = new CacheService(_logger, _unitOfWork, _archiveService, _directoryService);
} }
//string GetCachedPagePath(Volume volume, int page) //string GetCachedPagePath(Volume volume, int page)

View File

@ -1,6 +1,7 @@
using System; using System;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using API.Entities; using API.Entities;
@ -10,6 +11,8 @@ namespace API.Parser
{ {
public static readonly string MangaFileExtensions = @"\.cbz|\.zip"; // |\.rar|\.cbr public static readonly string MangaFileExtensions = @"\.cbz|\.zip"; // |\.rar|\.cbr
public static readonly string ImageFileExtensions = @"\.png|\.jpeg|\.jpg|\.gif"; public static readonly string ImageFileExtensions = @"\.png|\.jpeg|\.jpg|\.gif";
private static readonly Regex ImageRegex = new Regex(ImageFileExtensions, RegexOptions.IgnoreCase | RegexOptions.Compiled);
private static readonly Regex MangaFileRegex = new Regex(MangaFileExtensions, RegexOptions.IgnoreCase | RegexOptions.Compiled);
//?: is a non-capturing group in C#, else anything in () will be a group //?: is a non-capturing group in C#, else anything in () will be a group
private static readonly Regex[] MangaVolumeRegex = new[] private static readonly Regex[] MangaVolumeRegex = new[]
@ -388,13 +391,13 @@ namespace API.Parser
public static bool IsArchive(string filePath) public static bool IsArchive(string filePath)
{ {
var fileInfo = new FileInfo(filePath); var fileInfo = new FileInfo(filePath);
return MangaFileExtensions.Contains(fileInfo.Extension); return MangaFileRegex.IsMatch(fileInfo.Extension);
} }
public static bool IsImage(string filePath) public static bool IsImage(string filePath)
{ {
var fileInfo = new FileInfo(filePath); var fileInfo = new FileInfo(filePath);
return ImageFileExtensions.Contains(fileInfo.Extension); return ImageRegex.IsMatch(fileInfo.Extension);
} }
public static int MinimumNumberFromRange(string range) public static int MinimumNumberFromRange(string range)