mirror of https://github.com/Sonarr/Sonarr
parent
78af4823cf
commit
11e6e12676
|
@ -1,12 +1,12 @@
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import Icon from 'Components/Icon';
|
import Icon from 'Components/Icon';
|
||||||
import Label from 'Components/Label';
|
|
||||||
import IconButton from 'Components/Link/IconButton';
|
import IconButton from 'Components/Link/IconButton';
|
||||||
import ConfirmModal from 'Components/Modal/ConfirmModal';
|
import ConfirmModal from 'Components/Modal/ConfirmModal';
|
||||||
import TableRowCell from 'Components/Table/Cells/TableRowCell';
|
import TableRowCell from 'Components/Table/Cells/TableRowCell';
|
||||||
import TableRow from 'Components/Table/TableRow';
|
import TableRow from 'Components/Table/TableRow';
|
||||||
import Popover from 'Components/Tooltip/Popover';
|
import Popover from 'Components/Tooltip/Popover';
|
||||||
|
import EpisodeFormats from 'Episode/EpisodeFormats';
|
||||||
import EpisodeLanguages from 'Episode/EpisodeLanguages';
|
import EpisodeLanguages from 'Episode/EpisodeLanguages';
|
||||||
import EpisodeQuality from 'Episode/EpisodeQuality';
|
import EpisodeQuality from 'Episode/EpisodeQuality';
|
||||||
import { icons, kinds, tooltipPositions } from 'Helpers/Props';
|
import { icons, kinds, tooltipPositions } from 'Helpers/Props';
|
||||||
|
@ -123,15 +123,9 @@ class EpisodeFileRow extends Component {
|
||||||
key={name}
|
key={name}
|
||||||
className={styles.customFormats}
|
className={styles.customFormats}
|
||||||
>
|
>
|
||||||
{
|
<EpisodeFormats
|
||||||
customFormats.map((format) => {
|
formats={customFormats}
|
||||||
return (
|
/>
|
||||||
<Label key={format.id}>
|
|
||||||
{format.name}
|
|
||||||
</Label>
|
|
||||||
);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
</TableRowCell>
|
</TableRowCell>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using NzbDrone.Core.CustomFormats;
|
||||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||||
using NzbDrone.Core.Tv;
|
using NzbDrone.Core.Tv;
|
||||||
using NzbDrone.SignalR;
|
using NzbDrone.SignalR;
|
||||||
|
@ -16,8 +17,9 @@ namespace Sonarr.Api.V3.Calendar
|
||||||
public CalendarController(IBroadcastSignalRMessage signalR,
|
public CalendarController(IBroadcastSignalRMessage signalR,
|
||||||
IEpisodeService episodeService,
|
IEpisodeService episodeService,
|
||||||
ISeriesService seriesService,
|
ISeriesService seriesService,
|
||||||
IUpgradableSpecification qualityUpgradableSpecification)
|
IUpgradableSpecification qualityUpgradableSpecification,
|
||||||
: base(episodeService, seriesService, qualityUpgradableSpecification, signalR)
|
ICustomFormatCalculationService formatCalculator)
|
||||||
|
: base(episodeService, seriesService, qualityUpgradableSpecification, formatCalculator, signalR)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Resources;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using NzbDrone.Core.CustomFormats;
|
using NzbDrone.Core.CustomFormats;
|
||||||
using NzbDrone.Core.Datastore.Events;
|
using NzbDrone.Core.Datastore.Events;
|
||||||
|
@ -51,8 +52,7 @@ namespace Sonarr.Api.V3.EpisodeFiles
|
||||||
var episodeFile = _mediaFileService.Get(id);
|
var episodeFile = _mediaFileService.Get(id);
|
||||||
var series = _seriesService.GetSeries(episodeFile.SeriesId);
|
var series = _seriesService.GetSeries(episodeFile.SeriesId);
|
||||||
|
|
||||||
var resource = episodeFile.ToResource(series, _upgradableSpecification);
|
var resource = episodeFile.ToResource(series, _upgradableSpecification, _formatCalculator);
|
||||||
resource.CustomFormats = _formatCalculator.ParseCustomFormat(episodeFile).ToResource();
|
|
||||||
|
|
||||||
return resource;
|
return resource;
|
||||||
}
|
}
|
||||||
|
@ -76,19 +76,8 @@ namespace Sonarr.Api.V3.EpisodeFiles
|
||||||
return new List<EpisodeFileResource>();
|
return new List<EpisodeFileResource>();
|
||||||
}
|
}
|
||||||
|
|
||||||
var resources = new List<EpisodeFileResource>();
|
return files.ConvertAll(e => e.ToResource(series, _upgradableSpecification, _formatCalculator))
|
||||||
|
.ToList();
|
||||||
foreach (var file in files)
|
|
||||||
{
|
|
||||||
var resource = file.ToResource(series, _upgradableSpecification);
|
|
||||||
file.Series = series;
|
|
||||||
|
|
||||||
resource.CustomFormats = _formatCalculator.ParseCustomFormat(file).ToResource();
|
|
||||||
|
|
||||||
resources.Add(resource);
|
|
||||||
}
|
|
||||||
|
|
||||||
return resources;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -96,7 +85,7 @@ namespace Sonarr.Api.V3.EpisodeFiles
|
||||||
|
|
||||||
return episodeFiles.GroupBy(e => e.SeriesId)
|
return episodeFiles.GroupBy(e => e.SeriesId)
|
||||||
.SelectMany(f => f.ToList()
|
.SelectMany(f => f.ToList()
|
||||||
.ConvertAll(e => e.ToResource(_seriesService.GetSeries(f.Key), _upgradableSpecification)))
|
.ConvertAll(e => e.ToResource(_seriesService.GetSeries(f.Key), _upgradableSpecification, _formatCalculator)))
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -155,7 +144,7 @@ namespace Sonarr.Api.V3.EpisodeFiles
|
||||||
|
|
||||||
var series = _seriesService.GetSeries(episodeFiles.First().SeriesId);
|
var series = _seriesService.GetSeries(episodeFiles.First().SeriesId);
|
||||||
|
|
||||||
return Accepted(episodeFiles.ConvertAll(f => f.ToResource(series, _upgradableSpecification)));
|
return Accepted(episodeFiles.ConvertAll(f => f.ToResource(series, _upgradableSpecification, _formatCalculator)));
|
||||||
}
|
}
|
||||||
|
|
||||||
[RestDeleteById]
|
[RestDeleteById]
|
||||||
|
@ -221,7 +210,7 @@ namespace Sonarr.Api.V3.EpisodeFiles
|
||||||
|
|
||||||
_mediaFileService.Update(episodeFiles);
|
_mediaFileService.Update(episodeFiles);
|
||||||
var series = _seriesService.GetSeries(episodeFiles.First().SeriesId);
|
var series = _seriesService.GetSeries(episodeFiles.First().SeriesId);
|
||||||
return Accepted(episodeFiles.ConvertAll(f => f.ToResource(series, _upgradableSpecification)));
|
return Accepted(episodeFiles.ConvertAll(f => f.ToResource(series, _upgradableSpecification, _formatCalculator)));
|
||||||
}
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using NzbDrone.Core.CustomFormats;
|
||||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||||
using NzbDrone.Core.Languages;
|
using NzbDrone.Core.Languages;
|
||||||
using NzbDrone.Core.MediaFiles;
|
using NzbDrone.Core.MediaFiles;
|
||||||
|
@ -58,13 +59,15 @@ namespace Sonarr.Api.V3.EpisodeFiles
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static EpisodeFileResource ToResource(this EpisodeFile model, NzbDrone.Core.Tv.Series series, IUpgradableSpecification upgradableSpecification)
|
public static EpisodeFileResource ToResource(this EpisodeFile model, NzbDrone.Core.Tv.Series series, IUpgradableSpecification upgradableSpecification, ICustomFormatCalculationService formatCalculationService)
|
||||||
{
|
{
|
||||||
if (model == null)
|
if (model == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
model.Series = series;
|
||||||
|
|
||||||
return new EpisodeFileResource
|
return new EpisodeFileResource
|
||||||
{
|
{
|
||||||
Id = model.Id,
|
Id = model.Id,
|
||||||
|
@ -81,6 +84,7 @@ namespace Sonarr.Api.V3.EpisodeFiles
|
||||||
Quality = model.Quality,
|
Quality = model.Quality,
|
||||||
MediaInfo = model.MediaInfo.ToResource(model.SceneName),
|
MediaInfo = model.MediaInfo.ToResource(model.SceneName),
|
||||||
QualityCutoffNotMet = upgradableSpecification.QualityCutoffNotMet(series.QualityProfile.Value, model.Quality),
|
QualityCutoffNotMet = upgradableSpecification.QualityCutoffNotMet(series.QualityProfile.Value, model.Quality),
|
||||||
|
CustomFormats = formatCalculationService.ParseCustomFormat(model).ToResource()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using NzbDrone.Core.CustomFormats;
|
||||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||||
using NzbDrone.Core.Tv;
|
using NzbDrone.Core.Tv;
|
||||||
using NzbDrone.SignalR;
|
using NzbDrone.SignalR;
|
||||||
|
@ -18,8 +19,9 @@ namespace Sonarr.Api.V3.Episodes
|
||||||
public EpisodeController(ISeriesService seriesService,
|
public EpisodeController(ISeriesService seriesService,
|
||||||
IEpisodeService episodeService,
|
IEpisodeService episodeService,
|
||||||
IUpgradableSpecification upgradableSpecification,
|
IUpgradableSpecification upgradableSpecification,
|
||||||
|
ICustomFormatCalculationService formatCalculator,
|
||||||
IBroadcastSignalRMessage signalRBroadcaster)
|
IBroadcastSignalRMessage signalRBroadcaster)
|
||||||
: base(episodeService, seriesService, upgradableSpecification, signalRBroadcaster)
|
: base(episodeService, seriesService, upgradableSpecification, formatCalculator, signalRBroadcaster)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using NzbDrone.Core.CustomFormats;
|
||||||
using NzbDrone.Core.Datastore.Events;
|
using NzbDrone.Core.Datastore.Events;
|
||||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||||
using NzbDrone.Core.Download;
|
using NzbDrone.Core.Download;
|
||||||
|
@ -21,21 +22,25 @@ namespace Sonarr.Api.V3.Episodes
|
||||||
protected readonly IEpisodeService _episodeService;
|
protected readonly IEpisodeService _episodeService;
|
||||||
protected readonly ISeriesService _seriesService;
|
protected readonly ISeriesService _seriesService;
|
||||||
protected readonly IUpgradableSpecification _upgradableSpecification;
|
protected readonly IUpgradableSpecification _upgradableSpecification;
|
||||||
|
protected readonly ICustomFormatCalculationService _formatCalculator;
|
||||||
|
|
||||||
protected EpisodeControllerWithSignalR(IEpisodeService episodeService,
|
protected EpisodeControllerWithSignalR(IEpisodeService episodeService,
|
||||||
ISeriesService seriesService,
|
ISeriesService seriesService,
|
||||||
IUpgradableSpecification upgradableSpecification,
|
IUpgradableSpecification upgradableSpecification,
|
||||||
|
ICustomFormatCalculationService formatCalculator,
|
||||||
IBroadcastSignalRMessage signalRBroadcaster)
|
IBroadcastSignalRMessage signalRBroadcaster)
|
||||||
: base(signalRBroadcaster)
|
: base(signalRBroadcaster)
|
||||||
{
|
{
|
||||||
_episodeService = episodeService;
|
_episodeService = episodeService;
|
||||||
_seriesService = seriesService;
|
_seriesService = seriesService;
|
||||||
_upgradableSpecification = upgradableSpecification;
|
_upgradableSpecification = upgradableSpecification;
|
||||||
|
_formatCalculator = formatCalculator;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected EpisodeControllerWithSignalR(IEpisodeService episodeService,
|
protected EpisodeControllerWithSignalR(IEpisodeService episodeService,
|
||||||
ISeriesService seriesService,
|
ISeriesService seriesService,
|
||||||
IUpgradableSpecification upgradableSpecification,
|
IUpgradableSpecification upgradableSpecification,
|
||||||
|
ICustomFormatCalculationService formatCalculator,
|
||||||
IBroadcastSignalRMessage signalRBroadcaster,
|
IBroadcastSignalRMessage signalRBroadcaster,
|
||||||
string resource)
|
string resource)
|
||||||
: base(signalRBroadcaster)
|
: base(signalRBroadcaster)
|
||||||
|
@ -43,6 +48,7 @@ namespace Sonarr.Api.V3.Episodes
|
||||||
_episodeService = episodeService;
|
_episodeService = episodeService;
|
||||||
_seriesService = seriesService;
|
_seriesService = seriesService;
|
||||||
_upgradableSpecification = upgradableSpecification;
|
_upgradableSpecification = upgradableSpecification;
|
||||||
|
_formatCalculator = formatCalculator;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override EpisodeResource GetResourceById(int id)
|
protected override EpisodeResource GetResourceById(int id)
|
||||||
|
@ -67,7 +73,7 @@ namespace Sonarr.Api.V3.Episodes
|
||||||
|
|
||||||
if (includeEpisodeFile && episode.EpisodeFileId != 0)
|
if (includeEpisodeFile && episode.EpisodeFileId != 0)
|
||||||
{
|
{
|
||||||
resource.EpisodeFile = episode.EpisodeFile.Value.ToResource(series, _upgradableSpecification);
|
resource.EpisodeFile = episode.EpisodeFile.Value.ToResource(series, _upgradableSpecification, _formatCalculator);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (includeImages)
|
if (includeImages)
|
||||||
|
@ -101,7 +107,7 @@ namespace Sonarr.Api.V3.Episodes
|
||||||
|
|
||||||
if (includeEpisodeFile && episode.EpisodeFileId != 0)
|
if (includeEpisodeFile && episode.EpisodeFileId != 0)
|
||||||
{
|
{
|
||||||
resource.EpisodeFile = episode.EpisodeFile.Value.ToResource(series, _upgradableSpecification);
|
resource.EpisodeFile = episode.EpisodeFile.Value.ToResource(series, _upgradableSpecification, _formatCalculator);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (includeImages)
|
if (includeImages)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using NzbDrone.Core.CustomFormats;
|
||||||
using NzbDrone.Core.Datastore;
|
using NzbDrone.Core.Datastore;
|
||||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||||
using NzbDrone.Core.Tv;
|
using NzbDrone.Core.Tv;
|
||||||
|
@ -19,8 +20,9 @@ namespace Sonarr.Api.V3.Wanted
|
||||||
IEpisodeService episodeService,
|
IEpisodeService episodeService,
|
||||||
ISeriesService seriesService,
|
ISeriesService seriesService,
|
||||||
IUpgradableSpecification upgradableSpecification,
|
IUpgradableSpecification upgradableSpecification,
|
||||||
|
ICustomFormatCalculationService formatCalculator,
|
||||||
IBroadcastSignalRMessage signalRBroadcaster)
|
IBroadcastSignalRMessage signalRBroadcaster)
|
||||||
: base(episodeService, seriesService, upgradableSpecification, signalRBroadcaster)
|
: base(episodeService, seriesService, upgradableSpecification, formatCalculator, signalRBroadcaster)
|
||||||
{
|
{
|
||||||
_episodeCutoffService = episodeCutoffService;
|
_episodeCutoffService = episodeCutoffService;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using NzbDrone.Core.CustomFormats;
|
||||||
using NzbDrone.Core.Datastore;
|
using NzbDrone.Core.Datastore;
|
||||||
using NzbDrone.Core.DecisionEngine;
|
using NzbDrone.Core.DecisionEngine;
|
||||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||||
|
@ -17,8 +18,9 @@ namespace Sonarr.Api.V3.Wanted
|
||||||
public MissingController(IEpisodeService episodeService,
|
public MissingController(IEpisodeService episodeService,
|
||||||
ISeriesService seriesService,
|
ISeriesService seriesService,
|
||||||
IUpgradableSpecification upgradableSpecification,
|
IUpgradableSpecification upgradableSpecification,
|
||||||
|
ICustomFormatCalculationService formatCalculator,
|
||||||
IBroadcastSignalRMessage signalRBroadcaster)
|
IBroadcastSignalRMessage signalRBroadcaster)
|
||||||
: base(episodeService, seriesService, upgradableSpecification, signalRBroadcaster)
|
: base(episodeService, seriesService, upgradableSpecification, formatCalculator, signalRBroadcaster)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue