private ExtraResult GetExtraInfo(string path, ExtraRule rule) { var result = new ExtraResult(); if (rule.MediaType == MediaType.Audio) { if (!new AudioFileParser(_options).IsAudioFile(path)) { return(result); } } else if (rule.MediaType == MediaType.Video) { if (!new VideoResolver(_options, _logger).IsVideoFile(path)) { return(result); } } else { return(result); } if (rule.RuleType == ExtraRuleType.Filename) { var filename = Path.GetFileNameWithoutExtension(path); if (string.Equals(filename, rule.Token, StringComparison.OrdinalIgnoreCase)) { result.ExtraType = rule.ExtraType; result.Rule = rule; } } else if (rule.RuleType == ExtraRuleType.Suffix) { var filename = Path.GetFileNameWithoutExtension(path); if (filename.IndexOf(rule.Token, StringComparison.OrdinalIgnoreCase) > 0) { result.ExtraType = rule.ExtraType; result.Rule = rule; } } else if (rule.RuleType == ExtraRuleType.Regex) { var filename = Path.GetFileName(path); var regex = _regexProvider.GetRegex(rule.Token, RegexOptions.IgnoreCase); if (regex.IsMatch(filename)) { result.ExtraType = rule.ExtraType; result.Rule = rule; } } return(result); }
private ExtraResult GetExtraInfo(string path, ExtraRule rule) { var result = new ExtraResult(); if (rule.MediaType == MediaType.Audio) { if (!new AudioFileParser(_options).IsAudioFile(path)) { return result; } } else if (rule.MediaType == MediaType.Video) { if (!new VideoResolver(_options, _logger).IsVideoFile(path)) { return result; } } else { return result; } if (rule.RuleType == ExtraRuleType.Filename) { var filename = Path.GetFileNameWithoutExtension(path); if (string.Equals(filename, rule.Token, StringComparison.OrdinalIgnoreCase)) { result.ExtraType = rule.ExtraType; result.Rule = rule; } } else if (rule.RuleType == ExtraRuleType.Suffix) { var filename = Path.GetFileNameWithoutExtension(path); if (filename.IndexOf(rule.Token, StringComparison.OrdinalIgnoreCase) > 0) { result.ExtraType = rule.ExtraType; result.Rule = rule; } } else if (rule.RuleType == ExtraRuleType.Regex) { var filename = Path.GetFileName(path); var regex = _regexProvider.GetRegex(rule.Token, RegexOptions.IgnoreCase); if (regex.IsMatch(filename)) { result.ExtraType = rule.ExtraType; result.Rule = rule; } } return result; }
private ExtraResult GetExtraInfo(string path, ExtraRule rule) { var result = new ExtraResult(); if (rule.MediaType == MediaType.Audio) { if (!new AudioFileParser(_options).IsAudioFile(path)) { return(result); } } else if (rule.MediaType == MediaType.Video) { if (!new VideoResolver(_options, _logger).IsVideoFile(path)) { return(result); } } else { return(result); } var filename = Path.GetFileNameWithoutExtension(path); if (rule.RuleType == ExtraRuleType.Filename) { if (string.Equals(filename, rule.Token, StringComparison.OrdinalIgnoreCase)) { result.ExtraType = rule.ExtraType; result.Tokens.Add(rule.Token); } } else if (rule.RuleType == ExtraRuleType.Suffix) { if (filename.EndsWith(rule.Token, StringComparison.OrdinalIgnoreCase)) { result.ExtraType = rule.ExtraType; result.Tokens.Add(rule.Token); } } return(result); }