public static string GetResolution(SVR_VideoLocal videoLocal, SVR_AniDB_File aniFile = null) { if (aniFile == null) { aniFile = videoLocal?.GetAniDBFile(); } return(MediaInfoUtils.GetStandardResolution(GetResolutionInternal(videoLocal, aniFile))); }
public static string GetResolution(string res) { if (string.IsNullOrEmpty(res)) { return(null); } string[] parts = res.Split('x'); if (parts.Length != 2) { return(null); } if (!int.TryParse(parts[0], out int width)) { return(null); } if (!int.TryParse(parts[1], out int height)) { return(null); } return(MediaInfoUtils.GetStandardResolution(new Tuple <int, int>(width, height))); }
private static bool CheckResolution(SVR_VideoLocal videoLocal, SVR_AniDB_File aniFile) { Tuple <int, int> resTuple = GetResolutionInternal(videoLocal, aniFile); string res = MediaInfoUtils.GetStandardResolution(resTuple); if (res == null) { return(true); } int resArea = resTuple.Item1 * resTuple.Item2; FileQualityFilterOperationType operationType = Settings.RequiredResolutions.Operator; switch (operationType) { case FileQualityFilterOperationType.EQUALS: return(res.Equals(Settings.RequiredResolutions.Value.FirstOrDefault())); case FileQualityFilterOperationType.GREATER_EQ: List <int> keysGT = MediaInfoUtils.ResolutionArea.Keys.Where(a => resArea >= a).ToList(); keysGT.AddRange(MediaInfoUtils.ResolutionArea43.Keys.Where(a => resArea >= a)); List <string> valuesGT = new List <string>(); foreach (int key in keysGT) { if (MediaInfoUtils.ResolutionArea.ContainsKey(key)) { valuesGT.Add(MediaInfoUtils.ResolutionArea[key]); } if (MediaInfoUtils.ResolutionArea43.ContainsKey(key)) { valuesGT.Add(MediaInfoUtils.ResolutionArea43[key]); } } if (valuesGT.FindInEnumerable(Settings.RequiredResolutions.Value)) { return(true); } break; case FileQualityFilterOperationType.LESS_EQ: List <int> keysLT = MediaInfoUtils.ResolutionArea.Keys.Where(a => resArea <= a).ToList(); keysLT.AddRange(MediaInfoUtils.ResolutionArea43.Keys.Where(a => resArea <= a)); List <string> valuesLT = new List <string>(); foreach (int key in keysLT) { if (MediaInfoUtils.ResolutionArea.ContainsKey(key)) { valuesLT.Add(MediaInfoUtils.ResolutionArea[key]); } if (MediaInfoUtils.ResolutionArea43.ContainsKey(key)) { valuesLT.Add(MediaInfoUtils.ResolutionArea43[key]); } } if (valuesLT.FindInEnumerable(Settings.RequiredResolutions.Value)) { return(true); } break; case FileQualityFilterOperationType.IN: return(Settings.RequiredResolutions.Value.Contains(res)); case FileQualityFilterOperationType.NOTIN: return(!Settings.RequiredResolutions.Value.Contains(res)); } return(false); }