From 80c23580696356c649ff30de131e9be7d504058f Mon Sep 17 00:00:00 2001
From: jack-mil <62065280+jack-mil@users.noreply.github.com>
Date: Wed, 12 Jul 2023 16:41:35 +0000
Subject: [PATCH] New: Show CF Score in episode row
---
frontend/src/Series/Details/EpisodeRow.css | 6 ++++++
frontend/src/Series/Details/EpisodeRow.css.d.ts | 1 +
frontend/src/Series/Details/EpisodeRow.js | 14 ++++++++++++++
frontend/src/Series/Details/EpisodeRowConnector.js | 1 +
frontend/src/Store/Actions/episodeActions.js | 13 ++++++++++++-
.../EpisodeFiles/EpisodeFileResource.cs | 6 +++++-
6 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/frontend/src/Series/Details/EpisodeRow.css b/frontend/src/Series/Details/EpisodeRow.css
index b27a69f1a..4a0940362 100644
--- a/frontend/src/Series/Details/EpisodeRow.css
+++ b/frontend/src/Series/Details/EpisodeRow.css
@@ -56,3 +56,9 @@
width: 120px;
}
+
+.customFormatScore {
+ composes: cell from '~Components/Table/Cells/TableRowCell.css';
+
+ width: 55px;
+}
diff --git a/frontend/src/Series/Details/EpisodeRow.css.d.ts b/frontend/src/Series/Details/EpisodeRow.css.d.ts
index 138000856..d4a5cfe93 100644
--- a/frontend/src/Series/Details/EpisodeRow.css.d.ts
+++ b/frontend/src/Series/Details/EpisodeRow.css.d.ts
@@ -3,6 +3,7 @@
interface CssExports {
'audio': string;
'audioLanguages': string;
+ 'customFormatScore': string;
'episodeNumber': string;
'episodeNumberAnime': string;
'languages': string;
diff --git a/frontend/src/Series/Details/EpisodeRow.js b/frontend/src/Series/Details/EpisodeRow.js
index eba223b16..45f737495 100644
--- a/frontend/src/Series/Details/EpisodeRow.js
+++ b/frontend/src/Series/Details/EpisodeRow.js
@@ -13,6 +13,7 @@ import EpisodeFileLanguageConnector from 'EpisodeFile/EpisodeFileLanguageConnect
import MediaInfoConnector from 'EpisodeFile/MediaInfoConnector';
import * as mediaInfoTypes from 'EpisodeFile/mediaInfoTypes';
import formatBytes from 'Utilities/Number/formatBytes';
+import formatPreferredWordScore from 'Utilities/Number/formatPreferredWordScore';
import formatRuntime from 'Utilities/Number/formatRuntime';
import styles from './EpisodeRow.css';
@@ -72,6 +73,7 @@ class EpisodeRow extends Component {
episodeFileSize,
releaseGroup,
customFormats,
+ customFormatScore,
alternateTitles,
columns
} = this.props;
@@ -193,6 +195,17 @@ class EpisodeRow extends Component {
);
}
+ if (name === 'customFormatScore') {
+ return (
+
+ {formatPreferredWordScore(customFormatScore)}
+
+ );
+ }
+
if (name === 'languages') {
return (
Languages { get; set; }
public QualityModel Quality { get; set; }
public List CustomFormats { get; set; }
+ public int CustomFormatScore { get; set; }
public MediaInfoResource MediaInfo { get; set; }
public bool QualityCutoffNotMet { get; set; }
@@ -67,6 +68,8 @@ namespace Sonarr.Api.V3.EpisodeFiles
}
model.Series = series;
+ var customFormats = formatCalculationService?.ParseCustomFormat(model, model.Series);
+ var customFormatScore = series?.QualityProfile.Value.CalculateCustomFormatScore(customFormats) ?? 0;
return new EpisodeFileResource
{
@@ -84,7 +87,8 @@ namespace Sonarr.Api.V3.EpisodeFiles
Quality = model.Quality,
MediaInfo = model.MediaInfo.ToResource(model.SceneName),
QualityCutoffNotMet = upgradableSpecification.QualityCutoffNotMet(series.QualityProfile.Value, model.Quality),
- CustomFormats = formatCalculationService.ParseCustomFormat(model).ToResource(false)
+ CustomFormats = customFormats.ToResource(false),
+ CustomFormatScore = customFormatScore
};
}
}