From 55e263bfac5cdbd429e5d6710cf9e7e7b996bd4d Mon Sep 17 00:00:00 2001 From: Fabio31456 Date: Sat, 22 Jun 2024 23:14:36 +0100 Subject: [PATCH] Fix for multiple languages --- src/N_m3u8DL-RE.sln | 4 +++- src/N_m3u8DL-RE/FodyWeavers.xml | 3 +++ src/N_m3u8DL-RE/N_m3u8DL-RE.csproj | 7 ++++++- src/N_m3u8DL-RE/Util/FilterUtil.cs | 10 +++++++++- 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 src/N_m3u8DL-RE/FodyWeavers.xml diff --git a/src/N_m3u8DL-RE.sln b/src/N_m3u8DL-RE.sln index 89547415..91d48763 100644 --- a/src/N_m3u8DL-RE.sln +++ b/src/N_m3u8DL-RE.sln @@ -9,6 +9,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "N_m3u8DL-RE.Common", "N_m3u EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "N_m3u8DL-RE.Parser", "N_m3u8DL-RE.Parser\N_m3u8DL-RE.Parser.csproj", "{0DA02925-AF3A-4598-AF01-91AE5539FCA1}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{820D2D99-1227-46BB-BEC3-FAF241CE426B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -32,7 +34,7 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - RESX_NeutralResourcesLanguage = en-US SolutionGuid = {87F963D4-EA06-413D-9372-C726711C32B5} + RESX_NeutralResourcesLanguage = en-US EndGlobalSection EndGlobal diff --git a/src/N_m3u8DL-RE/FodyWeavers.xml b/src/N_m3u8DL-RE/FodyWeavers.xml new file mode 100644 index 00000000..5029e706 --- /dev/null +++ b/src/N_m3u8DL-RE/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/N_m3u8DL-RE/N_m3u8DL-RE.csproj b/src/N_m3u8DL-RE/N_m3u8DL-RE.csproj index 5eaf0fb7..ecc2c5fc 100644 --- a/src/N_m3u8DL-RE/N_m3u8DL-RE.csproj +++ b/src/N_m3u8DL-RE/N_m3u8DL-RE.csproj @@ -2,13 +2,14 @@ Exe - net8.0 + net7.0 N_m3u8DL_RE enable preview enable 0.2.0 AnyCPU;x64 + full @@ -16,6 +17,10 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/src/N_m3u8DL-RE/Util/FilterUtil.cs b/src/N_m3u8DL-RE/Util/FilterUtil.cs index f89a595a..f65851cc 100644 --- a/src/N_m3u8DL-RE/Util/FilterUtil.cs +++ b/src/N_m3u8DL-RE/Util/FilterUtil.cs @@ -57,7 +57,15 @@ public static List DoFilterKeep(IEnumerable lists, Strea else if (filter.For == "worst" && inputs.Count() > 0) inputs = inputs.TakeLast(1).ToList(); else if (int.TryParse(bestNumberStr, out int bestNumber) && inputs.Count() > 0) - inputs = inputs.Take(bestNumber).ToList(); + { + var langs = inputs.DistinctBy(x => x.Language).Select(x => x.Language); + var tmp = new List(); + foreach (var l in langs) + { + tmp.Add(inputs.Where(x => x.Language == l).OrderByDescending(a => a.Bandwidth).First()); + } + inputs = tmp.Take(bestNumber).ToList(); + } else if (int.TryParse(worstNumberStr, out int worstNumber) && inputs.Count() > 0) inputs = inputs.TakeLast(worstNumber).ToList();