mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-20 21:43:33 -07:00
Only detect the .cue file encoding for the manual import service.
(cherry picked from commit a3ccf87b01f071e2bf9db89e4248c730226d059c) (cherry picked from commit e1ab63906ac4761e0ae2ebfe040854f335f46476)
This commit is contained in:
parent
a7ab35fa14
commit
a581e64cd3
4 changed files with 21 additions and 10 deletions
|
@ -107,7 +107,7 @@ namespace NzbDrone.Core.MediaFiles
|
|||
var cueSheetInfos = new List<CueSheetInfo>();
|
||||
foreach (var cueFile in cueFiles)
|
||||
{
|
||||
var cueSheetInfo = GetCueSheetInfo(cueFile, mediaFileList);
|
||||
var cueSheetInfo = GetCueSheetInfo(cueFile, mediaFileList, itemInfo.DetectCueFileEncoding);
|
||||
if (idOverrides != null)
|
||||
{
|
||||
cueSheetInfo.IdOverrides = idOverrides;
|
||||
|
@ -246,19 +246,26 @@ namespace NzbDrone.Core.MediaFiles
|
|||
return title;
|
||||
}
|
||||
|
||||
private CueSheet LoadCueSheet(IFileInfo fileInfo)
|
||||
private CueSheet LoadCueSheet(IFileInfo fileInfo, bool detectCueFileEncoding)
|
||||
{
|
||||
using (var fs = fileInfo.OpenRead())
|
||||
{
|
||||
var bytes = new byte[fileInfo.Length];
|
||||
var result = CharsetDetector.DetectFromFile(fileInfo.FullName); // or pass FileInfo
|
||||
var encoding = result.Detected.Encoding;
|
||||
_logger.Debug("Detected encoding {0} for {1}", encoding.WebName, fileInfo.FullName);
|
||||
|
||||
string content;
|
||||
while (fs.Read(bytes, 0, bytes.Length) > 0)
|
||||
{
|
||||
content = encoding.GetString(bytes);
|
||||
string content;
|
||||
if (detectCueFileEncoding)
|
||||
{
|
||||
var result = CharsetDetector.DetectFromFile(fileInfo.FullName); // or pass FileInfo
|
||||
var encoding = result.Detected.Encoding;
|
||||
_logger.Debug("Detected encoding {0} for {1}", encoding.WebName, fileInfo.FullName);
|
||||
content = encoding.GetString(bytes);
|
||||
}
|
||||
else
|
||||
{
|
||||
content = Encoding.UTF8.GetString(bytes);
|
||||
}
|
||||
|
||||
var lines = content.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
|
||||
var cueSheet = ParseLines(lines);
|
||||
|
||||
|
@ -425,10 +432,10 @@ namespace NzbDrone.Core.MediaFiles
|
|||
return null;
|
||||
}
|
||||
|
||||
private CueSheetInfo GetCueSheetInfo(IFileInfo cueFile, List<IFileInfo> musicFiles)
|
||||
private CueSheetInfo GetCueSheetInfo(IFileInfo cueFile, List<IFileInfo> musicFiles, bool detectCueFileEncoding)
|
||||
{
|
||||
var cueSheetInfo = new CueSheetInfo();
|
||||
var cueSheet = LoadCueSheet(cueFile);
|
||||
var cueSheet = LoadCueSheet(cueFile, detectCueFileEncoding);
|
||||
if (cueSheet == null)
|
||||
{
|
||||
return cueSheetInfo;
|
||||
|
|
|
@ -102,6 +102,7 @@ namespace NzbDrone.Core.MediaFiles
|
|||
|
||||
var decisions = new List<ImportDecision<LocalTrack>>();
|
||||
|
||||
itemInfo.DetectCueFileEncoding = false;
|
||||
decisions.AddRange(_cueSheetService.GetImportDecisions(ref mediaFileList, null, itemInfo, config));
|
||||
decisions.AddRange(_importDecisionMaker.GetImportDecisions(mediaFileList, null, itemInfo, config));
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ namespace NzbDrone.Core.MediaFiles.TrackImport
|
|||
public DownloadClientItem DownloadClientItem { get; set; }
|
||||
public ParsedAlbumInfo ParsedAlbumInfo { get; set; }
|
||||
public List<CueSheetInfo> CueSheetInfos { get; set; } = new List<CueSheetInfo>();
|
||||
public bool DetectCueFileEncoding { get; set; }
|
||||
}
|
||||
|
||||
public class ImportDecisionMakerConfig
|
||||
|
|
|
@ -174,6 +174,7 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Manual
|
|||
{
|
||||
DownloadClientItem = downloadClientItem,
|
||||
ParsedAlbumInfo = Parser.Parser.ParseAlbumTitle(albumTitle),
|
||||
DetectCueFileEncoding = true,
|
||||
};
|
||||
|
||||
var config = new ImportDecisionMakerConfig
|
||||
|
@ -251,6 +252,7 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Manual
|
|||
AlbumRelease = group.First().Release
|
||||
};
|
||||
|
||||
itemInfo.DetectCueFileEncoding = true;
|
||||
var decisions = _cueSheetService.GetImportDecisions(ref audioFiles, idOverride, itemInfo, config);
|
||||
if (audioFiles.Count > 0)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue