mirror of https://github.com/Sonarr/Sonarr
Improved Quality lookup.
This commit is contained in:
parent
1218dd255f
commit
6f2dd5d2fa
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
using NzbDrone.Core.Datastore;
|
using NzbDrone.Core.Datastore;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Qualities
|
namespace NzbDrone.Core.Qualities
|
||||||
|
@ -72,63 +73,66 @@ namespace NzbDrone.Core.Qualities
|
||||||
//public static Quality WEBRip720p { get { return new Quality(14, "WEBRip-720p"); } }
|
//public static Quality WEBRip720p { get { return new Quality(14, "WEBRip-720p"); } }
|
||||||
//public static Quality WEBRip1080p { get { return new Quality(15, "WEBRip-1080p"); } }
|
//public static Quality WEBRip1080p { get { return new Quality(15, "WEBRip-1080p"); } }
|
||||||
public static Quality HDTV2160p { get { return new Quality(16, "HDTV-2160p"); } }
|
public static Quality HDTV2160p { get { return new Quality(16, "HDTV-2160p"); } }
|
||||||
//public static Quality WEBRip2160p { get { return new Quality(17, "WEBRip-1080p"); } }
|
//public static Quality WEBRip2160p { get { return new Quality(17, "WEBRip-2160p"); } }
|
||||||
public static Quality WEBDL2160p { get { return new Quality(18, "WEBDL-2160p"); } }
|
public static Quality WEBDL2160p { get { return new Quality(18, "WEBDL-2160p"); } }
|
||||||
public static Quality Bluray2160p { get { return new Quality(19, "Bluray-2160p"); } }
|
public static Quality Bluray2160p { get { return new Quality(19, "Bluray-2160p"); } }
|
||||||
|
|
||||||
public static List<Quality> All
|
static Quality()
|
||||||
{
|
{
|
||||||
get
|
All = new List<Quality>
|
||||||
{
|
{
|
||||||
return new List<Quality>
|
Unknown,
|
||||||
{
|
SDTV,
|
||||||
Unknown,
|
DVD,
|
||||||
SDTV,
|
WEBDL1080p,
|
||||||
DVD,
|
HDTV720p,
|
||||||
WEBDL1080p,
|
WEBDL720p,
|
||||||
HDTV720p,
|
Bluray720p,
|
||||||
WEBDL720p,
|
Bluray1080p,
|
||||||
Bluray720p,
|
WEBDL480p,
|
||||||
Bluray1080p,
|
HDTV1080p,
|
||||||
WEBDL480p,
|
RAWHD,
|
||||||
HDTV1080p,
|
HDTV2160p,
|
||||||
RAWHD,
|
WEBDL2160p,
|
||||||
HDTV2160p,
|
Bluray2160p,
|
||||||
WEBDL2160p,
|
};
|
||||||
Bluray2160p,
|
|
||||||
};
|
AllLookup = new Quality[All.Select(v => v.Id).Max() + 1];
|
||||||
|
foreach (var quality in All)
|
||||||
|
{
|
||||||
|
AllLookup[quality.Id] = quality;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DefaultQualityDefinitions = new HashSet<QualityDefinition>
|
||||||
|
{
|
||||||
|
new QualityDefinition(Quality.Unknown) { Weight = 1, MinSize = 0, MaxSize = 100 },
|
||||||
|
new QualityDefinition(Quality.SDTV) { Weight = 2, MinSize = 0, MaxSize = 100 },
|
||||||
|
new QualityDefinition(Quality.WEBDL480p) { Weight = 3, MinSize = 0, MaxSize = 100 },
|
||||||
|
new QualityDefinition(Quality.DVD) { Weight = 4, MinSize = 0, MaxSize = 100 },
|
||||||
|
new QualityDefinition(Quality.HDTV720p) { Weight = 5, MinSize = 0, MaxSize = 100 },
|
||||||
|
new QualityDefinition(Quality.HDTV1080p) { Weight = 6, MinSize = 0, MaxSize = 100 },
|
||||||
|
new QualityDefinition(Quality.RAWHD) { Weight = 7, MinSize = 0, MaxSize = null },
|
||||||
|
new QualityDefinition(Quality.WEBDL720p) { Weight = 8, MinSize = 0, MaxSize = 100 },
|
||||||
|
new QualityDefinition(Quality.Bluray720p) { Weight = 9, MinSize = 0, MaxSize = 100 },
|
||||||
|
new QualityDefinition(Quality.WEBDL1080p) { Weight = 10, MinSize = 0, MaxSize = 100 },
|
||||||
|
new QualityDefinition(Quality.Bluray1080p) { Weight = 11, MinSize = 0, MaxSize = 100 },
|
||||||
|
new QualityDefinition(Quality.HDTV2160p) { Weight = 12, MinSize = 0, MaxSize = null },
|
||||||
|
new QualityDefinition(Quality.WEBDL2160p) { Weight = 13, MinSize = 0, MaxSize = null },
|
||||||
|
new QualityDefinition(Quality.Bluray2160p) { Weight = 14, MinSize = 0, MaxSize = null },
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static HashSet<QualityDefinition> DefaultQualityDefinitions
|
public static readonly List<Quality> All;
|
||||||
{
|
|
||||||
get
|
public static readonly Quality[] AllLookup;
|
||||||
{
|
|
||||||
return new HashSet<QualityDefinition>
|
public static readonly HashSet<QualityDefinition> DefaultQualityDefinitions;
|
||||||
{
|
|
||||||
new QualityDefinition(Quality.Unknown) { Weight = 1, MinSize = 0, MaxSize = 100 },
|
|
||||||
new QualityDefinition(Quality.SDTV) { Weight = 2, MinSize = 0, MaxSize = 100 },
|
|
||||||
new QualityDefinition(Quality.WEBDL480p) { Weight = 3, MinSize = 0, MaxSize = 100 },
|
|
||||||
new QualityDefinition(Quality.DVD) { Weight = 4, MinSize = 0, MaxSize = 100 },
|
|
||||||
new QualityDefinition(Quality.HDTV720p) { Weight = 5, MinSize = 0, MaxSize = 100 },
|
|
||||||
new QualityDefinition(Quality.HDTV1080p) { Weight = 6, MinSize = 0, MaxSize = 100 },
|
|
||||||
new QualityDefinition(Quality.RAWHD) { Weight = 7, MinSize = 0, MaxSize = null },
|
|
||||||
new QualityDefinition(Quality.WEBDL720p) { Weight = 8, MinSize = 0, MaxSize = 100 },
|
|
||||||
new QualityDefinition(Quality.Bluray720p) { Weight = 9, MinSize = 0, MaxSize = 100 },
|
|
||||||
new QualityDefinition(Quality.WEBDL1080p) { Weight = 10, MinSize = 0, MaxSize = 100 },
|
|
||||||
new QualityDefinition(Quality.Bluray1080p) { Weight = 11, MinSize = 0, MaxSize = 100 },
|
|
||||||
new QualityDefinition(Quality.HDTV2160p) { Weight = 12, MinSize = 0, MaxSize = null },
|
|
||||||
new QualityDefinition(Quality.WEBDL2160p) { Weight = 13, MinSize = 0, MaxSize = null },
|
|
||||||
new QualityDefinition(Quality.Bluray2160p) { Weight = 14, MinSize = 0, MaxSize = null },
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Quality FindById(int id)
|
public static Quality FindById(int id)
|
||||||
{
|
{
|
||||||
if (id == 0) return Unknown;
|
if (id == 0) return Unknown;
|
||||||
|
|
||||||
Quality quality = All.FirstOrDefault(v => v.Id == id);
|
var quality = AllLookup[id];
|
||||||
|
|
||||||
if (quality == null)
|
if (quality == null)
|
||||||
throw new ArgumentException("ID does not match a known quality", "id");
|
throw new ArgumentException("ID does not match a known quality", "id");
|
||||||
|
|
Loading…
Reference in New Issue