Merge pull request #517 from Radarr/patch/update-qualities

Patch/update qualities
This commit is contained in:
Devin Buhl 2017-01-29 16:14:54 -05:00 committed by GitHub
commit 4c5900373d
11 changed files with 265 additions and 88 deletions

View File

@ -196,18 +196,18 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
Subject.IsSatisfiedBy(parseResultSingle, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_if_RAWHD()
{
parseResultSingle.ParsedEpisodeInfo.Quality = new QualityModel(Quality.RAWHD);
//[Test]
//public void should_return_true_if_RAWHD()
//{
// parseResultSingle.ParsedEpisodeInfo.Quality = new QualityModel(Quality.RAWHD);
series.Runtime = 45;
parseResultSingle.Series = series;
parseResultSingle.Series.SeriesType = SeriesTypes.Daily;
parseResultSingle.Release.Size = 8000.Megabytes();
// series.Runtime = 45;
// parseResultSingle.Series = series;
// parseResultSingle.Series.SeriesType = SeriesTypes.Daily;
// parseResultSingle.Release.Size = 8000.Megabytes();
Subject.IsSatisfiedBy(parseResultSingle, null).Accepted.Should().BeTrue();
}
// Subject.IsSatisfiedBy(parseResultSingle, null).Accepted.Should().BeTrue();
//}
[Test]
public void should_return_true_for_special()

View File

@ -215,19 +215,19 @@ namespace NzbDrone.Core.Test.ParserTests
ParseAndVerifyQuality(title, Quality.Bluray1080p, proper);
}
[TestCase("POI S02E11 1080i HDTV DD5.1 MPEG2-TrollHD", false)]
[TestCase("How I Met Your Mother S01E18 Nothing Good Happens After 2 A.M. 720p HDTV DD5.1 MPEG2-TrollHD", false)]
[TestCase("The Voice S01E11 The Finals 1080i HDTV DD5.1 MPEG2-TrollHD", false)]
[TestCase("Californication.S07E11.1080i.HDTV.DD5.1.MPEG2-NTb.ts", false)]
[TestCase("Game of Thrones S04E10 1080i HDTV MPEG2 DD5.1-CtrlHD.ts", false)]
[TestCase("VICE.S02E05.1080i.HDTV.DD2.0.MPEG2-NTb.ts", false)]
[TestCase("Show - S03E01 - Episode Title Raw-HD.ts", false)]
[TestCase("Saturday.Night.Live.Vintage.S10E09.Eddie.Murphy.The.Honeydrippers.1080i.UPSCALE.HDTV.DD5.1.MPEG2-zebra", false)]
[TestCase("The.Colbert.Report.2011-08-04.1080i.HDTV.MPEG-2-CtrlHD", false)]
public void should_parse_raw_quality(string title, bool proper)
{
ParseAndVerifyQuality(title, Quality.RAWHD, proper);
}
//[TestCase("POI S02E11 1080i HDTV DD5.1 MPEG2-TrollHD", false)]
//[TestCase("How I Met Your Mother S01E18 Nothing Good Happens After 2 A.M. 720p HDTV DD5.1 MPEG2-TrollHD", false)]
//[TestCase("The Voice S01E11 The Finals 1080i HDTV DD5.1 MPEG2-TrollHD", false)]
//[TestCase("Californication.S07E11.1080i.HDTV.DD5.1.MPEG2-NTb.ts", false)]
//[TestCase("Game of Thrones S04E10 1080i HDTV MPEG2 DD5.1-CtrlHD.ts", false)]
//[TestCase("VICE.S02E05.1080i.HDTV.DD2.0.MPEG2-NTb.ts", false)]
//[TestCase("Show - S03E01 - Episode Title Raw-HD.ts", false)]
//[TestCase("Saturday.Night.Live.Vintage.S10E09.Eddie.Murphy.The.Honeydrippers.1080i.UPSCALE.HDTV.DD5.1.MPEG2-zebra", false)]
//[TestCase("The.Colbert.Report.2011-08-04.1080i.HDTV.MPEG-2-CtrlHD", false)]
//public void should_parse_raw_quality(string title, bool proper)
//{
// ParseAndVerifyQuality(title, Quality.RAWHD, proper);
//}
[TestCase("Sonny.With.a.Chance.S02E15", false)]
[TestCase("Law & Order: Special Victims Unit - 11x11 - Quickie", false)]

View File

@ -23,7 +23,7 @@ namespace NzbDrone.Core.Test.Qualities
new object[] {7, Quality.Bluray1080p},
new object[] {8, Quality.WEBDL480p},
new object[] {9, Quality.HDTV1080p},
new object[] {10, Quality.RAWHD},
//new object[] {10, Quality.RAWHD},
new object[] {16, Quality.HDTV2160p},
new object[] {18, Quality.WEBDL2160p},
new object[] {19, Quality.Bluray2160p},
@ -41,7 +41,7 @@ namespace NzbDrone.Core.Test.Qualities
new object[] {Quality.Bluray1080p, 7},
new object[] {Quality.WEBDL480p, 8},
new object[] {Quality.HDTV1080p, 9},
new object[] {Quality.RAWHD, 10},
//new object[] {Quality.RAWHD, 10},
new object[] {Quality.HDTV2160p, 16},
new object[] {Quality.WEBDL2160p, 18},
new object[] {Quality.Bluray2160p, 19},
@ -65,20 +65,27 @@ namespace NzbDrone.Core.Test.Qualities
{
var qualities = new List<Quality>
{
Quality.Unknown,
Quality.CAM,
Quality.TELECINE,
Quality.DVDSCR,
Quality.REGIONAL,
Quality.SDTV,
Quality.WEBDL480p,
Quality.DVD,
Quality.DVDR,
Quality.HDTV720p,
Quality.HDTV1080p,
Quality.HDTV2160p,
Quality.RAWHD,
Quality.WEBDL480p,
Quality.WEBDL720p,
Quality.WEBDL1080p,
Quality.WEBDL2160p,
Quality.Bluray480p,
Quality.Bluray576p,
Quality.Bluray720p,
Quality.Bluray1080p,
Quality.Bluray2160p,
Quality.BRDISK,
Quality.RAWHD
};
if (allowed.Length == 0)

View File

@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.TvTests.EpisodeRepositoryTests
{
new ProfileQualityItem { Allowed = true, Quality = Quality.SDTV },
new ProfileQualityItem { Allowed = true, Quality = Quality.WEBDL480p },
new ProfileQualityItem { Allowed = true, Quality = Quality.RAWHD }
//new ProfileQualityItem { Allowed = true, Quality = Quality.RAWHD }
}
};
@ -71,13 +71,13 @@ namespace NzbDrone.Core.Test.TvTests.EpisodeRepositoryTests
var qualityMet = new EpisodeFile { RelativePath = "a", Quality = new QualityModel { Quality = Quality.WEBDL480p } };
var qualityUnmet = new EpisodeFile { RelativePath = "b", Quality = new QualityModel { Quality = Quality.SDTV } };
var qualityRawHD = new EpisodeFile { RelativePath = "c", Quality = new QualityModel { Quality = Quality.RAWHD } };
//var qualityRawHD = new EpisodeFile { RelativePath = "c", Quality = new QualityModel { Quality = Quality.RAWHD } };
MediaFileRepository fileRepository = Mocker.Resolve<MediaFileRepository>();
qualityMet = fileRepository.Insert(qualityMet);
qualityUnmet = fileRepository.Insert(qualityUnmet);
qualityRawHD = fileRepository.Insert(qualityRawHD);
//qualityRawHD = fileRepository.Insert(qualityRawHD);
var monitoredSeriesEpisodes = Builder<Episode>.CreateListOfSize(4)
.All()
@ -90,8 +90,8 @@ namespace NzbDrone.Core.Test.TvTests.EpisodeRepositoryTests
.With(e => e.Monitored = false)
.With(e => e.EpisodeFileId = qualityMet.Id)
.TheNext(1)
.With(e => e.EpisodeFileId = qualityRawHD.Id)
.TheLast(1)
//.With(e => e.EpisodeFileId = qualityRawHD.Id)
//.TheLast(1)
.With(e => e.SeasonNumber = 0)
.Build();

View File

@ -0,0 +1,35 @@
using System.Data;
using FluentMigrator;
using NzbDrone.Core.Datastore.Migration.Framework;
namespace NzbDrone.Core.Datastore.Migration
{
[Migration(126)]
public class update_qualities_and_profiles : NzbDroneMigrationBase
{
protected override void MainDbUpgrade()
{
Execute.WithConnection(ConvertProfile);
}
private void ConvertProfile(IDbConnection conn, IDbTransaction tran)
{
var updater = new ProfileUpdater70(conn, tran);
updater.SplitQualityAppend(0, 27); // TELECINE AFTER Unknown
updater.SplitQualityAppend(0, 26); // TELESYNC AFTER Unknown
updater.SplitQualityAppend(0, 25); // CAM AFTER Unknown
updater.SplitQualityAppend(0, 24); // WORKPRINT AFTER Unknown
updater.SplitQualityPrepend(2, 23); // DVDR BEFORE DVD
updater.SplitQualityPrepend(2, 28); // DVDSCR BEFORE DVD
updater.SplitQualityPrepend(2, 29); // REGIONAL BEFORE DVD
updater.SplitQualityAppend(2, 21); // Bluray576p AFTER SDTV
updater.SplitQualityAppend(2, 20); // Bluray480p AFTER SDTV
updater.AppendQuality(22);
updater.Commit();
}
}
}

View File

@ -44,6 +44,9 @@ namespace NzbDrone.Core.Indexers.PassThePopcorn
[FieldDefinition(4, Type = FieldType.Checkbox, Label = "Require Approved", HelpText = "Require staff-approval for releases to be accepted.")]
public bool Approved { get; set; }
[FieldDefinition(5, Type = FieldType.Checkbox, Label = "Require Golden", HelpText = "Require Golden Popcorn-releases for releases to be accepted.")]
public bool RequireGolden { get; set; }
public NzbDroneValidationResult Validate()
{
return new NzbDroneValidationResult(Validator.Validate(this));

View File

@ -219,6 +219,7 @@
<Compile Include="Datastore\Migration\002_remove_tvrage_imdb_unique_constraint.cs" />
<Compile Include="Datastore\Migration\003_remove_clean_title_from_scene_mapping.cs" />
<Compile Include="Datastore\Migration\004_updated_history.cs" />
<Compile Include="Datastore\Migration\126_update_qualities_and_profiles.cs" />
<Compile Include="Datastore\Migration\125_fix_imdb_unique.cs" />
<Compile Include="Datastore\Migration\124_add_preferred_tags_to_profile.cs" />
<Compile Include="Datastore\Migration\122_add_movieid_to_blacklist.cs" />

View File

@ -14,14 +14,34 @@ namespace NzbDrone.Core.Parser
{
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(QualityParser));
//private static readonly Regex SourceRegex = new Regex(@"\b(?:
// (?<bluray>BluRay|Blu-Ray|HDDVD|BD)|
// (?<webdl>WEB[-_. ]DL|WEBDL|WebRip|iTunesHD|WebHD|[. ]WEB[. ](?:[xh]26[45]|DD5[. ]1)|\d+0p[. ]WEB[. ])|
// (?<hdtv>HDTV)|
// (?<bdrip>BDRip)|
// (?<brrip>BRRip)|
// (?<dvd>DVD|DVDRip|NTSC|PAL|xvidvd)|
// (?<dsr>WS[-_. ]DSR|DSR)|
// (?<pdtv>PDTV)|
// (?<sdtv>SDTV)|
// (?<tvrip>TVRip)
// )\b",
// RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
private static readonly Regex SourceRegex = new Regex(@"\b(?:
(?<bluray>BluRay|Blu-Ray|HDDVD|BD)|
(?<webdl>WEB[-_. ]DL|WEBDL|WebRip|iTunesHD|WebHD|[. ]WEB[. ](?:[xh]26[45]|DD5[. ]1)|\d+0p[. ]WEB[. ])|
(?<webdl>WEB[-_. ]DL|HDRIP|WEBDL|WebRip|Web-Rip|iTunesHD|WebHD|[. ]WEB[. ](?:[xh]26[45]|DD5[. ]1)|\d+0p[. ]WEB[. ])|
(?<hdtv>HDTV)|
(?<bdrip>BDRip)|
(?<brrip>BRRip)|
(?<bdrip>BDRip)|(?<brrip>BRRip)|
(?<dvdr>DVD-R|DVDR)|
(?<dvd>DVD|DVDRip|NTSC|PAL|xvidvd)|
(?<dsr>WS[-_. ]DSR|DSR)|
(?<regional>R[0-9]{1})|
(?<scr>SCR|SCREENER|DVDSCR|DVDSCREENER)|
(?<ts>TS|TELESYNC|HD-TS|HDTS|PDVD)|
(?<tc>TC|TELECINE|HD-TC|HDTC)|
(?<cam>CAMRIP|CAM|HDCAM|HD-CAM)|
(?<wp>WORKPRINT|WP)|
(?<pdtv>PDTV)|
(?<sdtv>SDTV)|
(?<tvrip>TVRip)
@ -75,11 +95,11 @@ namespace NzbDrone.Core.Parser
}
}
if (RawHDRegex.IsMatch(normalizedName))
{
result.Quality = Quality.RAWHD;
return result;
}
//if (RawHDRegex.IsMatch(normalizedName))
//{
// result.Quality = Quality.RAWHD;
// return result;
//}
var sourceMatch = SourceRegex.Matches(normalizedName).OfType<Match>().LastOrDefault();
var resolution = ParseResolution(normalizedName);
@ -108,7 +128,13 @@ namespace NzbDrone.Core.Parser
return result;
}
if (resolution == Resolution.R480P || resolution == Resolution.R576p)
if (resolution == Resolution.R576p)
{
result.Quality = Quality.Bluray576p;
return result;
}
if (resolution == Resolution.R480P)
{
result.Quality = Quality.DVD;
return result;
@ -195,12 +221,54 @@ namespace NzbDrone.Core.Parser
}
}
if (sourceMatch.Groups["wp"].Success)
{
result.Quality = Quality.WORKPRINT;
return result;
}
if (sourceMatch.Groups["dvd"].Success)
{
result.Quality = Quality.DVD;
return result;
}
if (sourceMatch.Groups["dvdr"].Success)
{
result.Quality = Quality.DVDR;
return result;
}
if (sourceMatch.Groups["scr"].Success)
{
result.Quality = Quality.DVDSCR;
return result;
}
if (sourceMatch.Groups["regional"].Success)
{
result.Quality = Quality.REGIONAL;
return result;
}
if (sourceMatch.Groups["cam"].Success)
{
result.Quality = Quality.CAM;
return result;
}
if (sourceMatch.Groups["ts"].Success)
{
result.Quality = Quality.TELESYNC;
return result;
}
if (sourceMatch.Groups["tc"].Success)
{
result.Quality = Quality.TELECINE;
return result;
}
if (sourceMatch.Groups["pdtv"].Success ||
sourceMatch.Groups["sdtv"].Success ||
sourceMatch.Groups["dsr"].Success ||

View File

@ -85,38 +85,59 @@ namespace NzbDrone.Core.Profiles
_logger.Info("Setting up default quality profiles");
AddDefaultProfile("Any", Quality.SDTV,
AddDefaultProfile("Any", Quality.Bluray480p,
Quality.WORKPRINT,
Quality.CAM,
Quality.TELESYNC,
Quality.TELECINE,
Quality.DVDSCR,
Quality.REGIONAL,
Quality.SDTV,
Quality.WEBDL480p,
Quality.DVD,
Quality.DVDR,
Quality.HDTV720p,
Quality.HDTV1080p,
Quality.HDTV2160p,
Quality.WEBDL480p,
Quality.WEBDL720p,
Quality.WEBDL1080p,
Quality.WEBDL2160p,
Quality.Bluray480p,
Quality.Bluray576p,
Quality.Bluray720p,
Quality.Bluray1080p);
Quality.Bluray1080p,
Quality.Bluray2160p,
Quality.BRDISK);
AddDefaultProfile("SD", Quality.SDTV,
AddDefaultProfile("SD", Quality.Bluray480p,
Quality.WORKPRINT,
Quality.CAM,
Quality.TELESYNC,
Quality.TELECINE,
Quality.DVDSCR,
Quality.REGIONAL,
Quality.SDTV,
Quality.DVD,
Quality.WEBDL480p,
Quality.DVD);
Quality.Bluray480p,
Quality.Bluray576p);
AddDefaultProfile("HD-720p", Quality.HDTV720p,
AddDefaultProfile("HD-720p", Quality.Bluray720p,
Quality.HDTV720p,
Quality.WEBDL720p,
Quality.Bluray720p);
AddDefaultProfile("HD-1080p", Quality.HDTV1080p,
AddDefaultProfile("HD-1080p", Quality.Bluray1080p,
Quality.HDTV1080p,
Quality.WEBDL1080p,
Quality.Bluray1080p);
AddDefaultProfile("Ultra-HD", Quality.HDTV2160p,
AddDefaultProfile("Ultra-HD", Quality.Bluray2160p,
Quality.HDTV2160p,
Quality.WEBDL2160p,
Quality.Bluray2160p);
AddDefaultProfile("HD - 720p/1080p", Quality.HDTV720p,
AddDefaultProfile("HD - 720p/1080p", Quality.Bluray720p,
Quality.HDTV720p,
Quality.HDTV1080p,
Quality.WEBDL720p,

View File

@ -55,45 +55,72 @@ namespace NzbDrone.Core.Qualities
return !Equals(left, right);
}
public static Quality Unknown => new Quality(0, "Unknown");
public static Quality SDTV => new Quality(1, "SDTV");
public static Quality DVD => new Quality(2, "DVD");
public static Quality WEBDL1080p => new Quality(3, "WEBDL-1080p");
public static Quality HDTV720p => new Quality(4, "HDTV-720p");
public static Quality WEBDL720p => new Quality(5, "WEBDL-720p");
public static Quality Bluray720p => new Quality(6, "Bluray-720p");
public static Quality Bluray1080p => new Quality(7, "Bluray-1080p");
public static Quality WEBDL480p => new Quality(8, "WEBDL-480p");
public static Quality HDTV1080p => new Quality(9, "HDTV-1080p");
public static Quality RAWHD => new Quality(10, "Raw-HD");
//public static Quality HDTV480p { get { return new Quality(11, "HDTV-480p"); } }
//public static Quality WEBRip480p { get { return new Quality(12, "WEBRip-480p"); } }
//public static Quality Bluray480p { get { return new Quality(13, "Bluray-480p"); } }
//public static Quality WEBRip720p { get { return new Quality(14, "WEBRip-720p"); } }
//public static Quality WEBRip1080p { get { return new Quality(15, "WEBRip-1080p"); } }
// Unable to determine
public static Quality Unknown => new Quality(0, "Unknown");
// Pre-release
public static Quality WORKPRINT => new Quality(24, "WORKPRINT"); // new
public static Quality CAM => new Quality(25, "CAM"); // new
public static Quality TELESYNC => new Quality(26, "TELESYNC"); // new
public static Quality TELECINE => new Quality(27, "TELECINE"); // new
public static Quality DVDSCR => new Quality(28, "DVDSCR"); // new
public static Quality REGIONAL => new Quality(29, "REGIONAL"); // new
// SD
public static Quality SDTV => new Quality(1, "SDTV");
public static Quality DVD => new Quality(2, "DVD");
public static Quality DVDR => new Quality(23, "DVD-R"); // new
// HDTV
public static Quality HDTV720p => new Quality(4, "HDTV-720p");
public static Quality HDTV1080p => new Quality(9, "HDTV-1080p");
public static Quality HDTV2160p => new Quality(16, "HDTV-2160p");
//public static Quality WEBRip2160p { get { return new Quality(17, "WEBRip-2160p"); } }
// Web-DL
public static Quality WEBDL480p => new Quality(8, "WEBDL-480p");
public static Quality WEBDL720p => new Quality(5, "WEBDL-720p");
public static Quality WEBDL1080p => new Quality(3, "WEBDL-1080p");
public static Quality WEBDL2160p => new Quality(18, "WEBDL-2160p");
// Bluray
public static Quality Bluray480p => new Quality(20, "Bluray-480p"); // new
public static Quality Bluray576p => new Quality(21, "Bluray-576p"); // new
public static Quality Bluray720p => new Quality(6, "Bluray-720p");
public static Quality Bluray1080p => new Quality(7, "Bluray-1080p");
public static Quality Bluray2160p => new Quality(19, "Bluray-2160p");
public static Quality BRDISK => new Quality(22, "BR-DISK"); // new
// Others
public static Quality RAWHD => new Quality(10, "Raw-HD");
static Quality()
{
All = new List<Quality>
{
Unknown,
WORKPRINT,
CAM,
TELESYNC,
TELECINE,
DVDSCR,
REGIONAL,
SDTV,
DVD,
WEBDL1080p,
DVDR,
HDTV720p,
HDTV1080p,
HDTV2160p,
WEBDL480p,
WEBDL720p,
WEBDL1080p,
WEBDL2160p,
Bluray480p,
Bluray576p,
Bluray720p,
Bluray1080p,
WEBDL480p,
HDTV1080p,
RAWHD,
HDTV2160p,
WEBDL2160p,
Bluray2160p,
BRDISK,
RAWHD
};
AllLookup = new Quality[All.Select(v => v.Id).Max() + 1];
@ -105,19 +132,34 @@ namespace NzbDrone.Core.Qualities
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 = null },
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 },
new QualityDefinition(Quality.WORKPRINT) { Weight = 2, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.CAM) { Weight = 3, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.TELESYNC) { Weight = 4, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.TELECINE) { Weight = 5, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.REGIONAL) { Weight = 6, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.DVDSCR) { Weight = 7, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.SDTV) { Weight = 8, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.DVD) { Weight = 9, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.DVDR) { Weight = 10, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.WEBDL480p) { Weight = 11, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.Bluray480p) { Weight = 12, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.Bluray576p) { Weight = 13, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.HDTV720p) { Weight = 14, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.WEBDL720p) { Weight = 15, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.Bluray720p) { Weight = 16, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.HDTV1080p) { Weight = 17, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.WEBDL1080p) { Weight = 18, MinSize = 0, MaxSize = 100 },
new QualityDefinition(Quality.Bluray1080p) { Weight = 19, MinSize = 0, MaxSize = null },
new QualityDefinition(Quality.HDTV2160p) { Weight = 20, MinSize = 0, MaxSize = null },
new QualityDefinition(Quality.WEBDL2160p) { Weight = 21, MinSize = 0, MaxSize = null },
new QualityDefinition(Quality.Bluray2160p) { Weight = 22, MinSize = 0, MaxSize = null },
new QualityDefinition(Quality.BRDISK) { Weight = 23, MinSize = 0, MaxSize = null },
new QualityDefinition(Quality.RAWHD) { Weight = 24, MinSize = 0, MaxSize = null }
};
}

View File

@ -6,7 +6,7 @@
.clickable;
width: 300px;
height: 158px;
//height: 158px;
padding: 10px 15px;
&.add-card {