From b6105ad10968d037ef572bf419068f405e0c23b6 Mon Sep 17 00:00:00 2001 From: kodjomoustapha <107993382+kodjodevf@users.noreply.github.com> Date: Wed, 3 Jan 2024 10:21:42 +0100 Subject: [PATCH] Fix sortVideos --- anime/multisrc/zorotheme/zorotheme.dart | 25 +++++++---------------- anime/src/en/aniwave/aniwave.dart | 24 +++++++--------------- anime/src/en/gogoanime/gogoanime.dart | 15 ++------------ anime/src/en/nineanimetv/nineanimetv.dart | 25 +++++++---------------- 4 files changed, 23 insertions(+), 66 deletions(-) diff --git a/anime/multisrc/zorotheme/zorotheme.dart b/anime/multisrc/zorotheme/zorotheme.dart index 2f734ec8..5a6759b1 100644 --- a/anime/multisrc/zorotheme/zorotheme.dart +++ b/anime/multisrc/zorotheme/zorotheme.dart @@ -434,17 +434,18 @@ class ZoroTheme extends MProvider { String quality = getPreferenceValue(sourceId, "preferred_quality"); String server = getPreferenceValue(sourceId, "preferred_server"); String type = getPreferenceValue(sourceId, "preferred_type"); - videos = videos - .where( - (MVideo e) => e.quality.toLowerCase().contains(type.toLowerCase())) - .toList(); videos.sort((MVideo a, MVideo b) { int qualityMatchA = 0; - if (a.quality.contains(quality)) { + + if (a.quality.contains(quality) && + a.quality.toLowerCase().contains(type.toLowerCase()) && + a.quality.toLowerCase().contains(server.toLowerCase())) { qualityMatchA = 1; } int qualityMatchB = 0; - if (b.quality.contains(quality)) { + if (b.quality.contains(quality) && + b.quality.toLowerCase().contains(type.toLowerCase()) && + b.quality.toLowerCase().contains(server.toLowerCase())) { qualityMatchB = 1; } if (qualityMatchA != qualityMatchB) { @@ -458,18 +459,6 @@ class ZoroTheme extends MProvider { final int qualityNumB = int.tryParse(matchB?.group(1) ?? '0') ?? 0; return qualityNumB - qualityNumA; }); - - videos.sort((MVideo a, MVideo b) { - int serverMatchA = 0; - if (a.quality.toLowerCase().contains(server.toLowerCase())) { - serverMatchA = 1; - } - int serverMatchB = 0; - if (b.quality.toLowerCase().contains(server.toLowerCase())) { - serverMatchB = 1; - } - return serverMatchB - serverMatchA; - }); return videos; } diff --git a/anime/src/en/aniwave/aniwave.dart b/anime/src/en/aniwave/aniwave.dart index 6689eac0..9c55b9d0 100644 --- a/anime/src/en/aniwave/aniwave.dart +++ b/anime/src/en/aniwave/aniwave.dart @@ -655,17 +655,18 @@ class Aniwave extends MProvider { String quality = getPreferenceValue(sourceId, "preferred_quality"); String server = getPreferenceValue(sourceId, "preferred_server"); String lang = getPreferenceValue(sourceId, "preferred_language"); - videos = videos - .where( - (MVideo e) => e.quality.toLowerCase().contains(lang.toLowerCase())) - .toList(); videos.sort((MVideo a, MVideo b) { int qualityMatchA = 0; - if (a.quality.contains(quality)) { + + if (a.quality.contains(quality) && + a.quality.toLowerCase().contains(lang.toLowerCase()) && + a.quality.toLowerCase().contains(server.toLowerCase())) { qualityMatchA = 1; } int qualityMatchB = 0; - if (b.quality.contains(quality)) { + if (b.quality.contains(quality) && + b.quality.toLowerCase().contains(lang.toLowerCase()) && + b.quality.toLowerCase().contains(server.toLowerCase())) { qualityMatchB = 1; } if (qualityMatchA != qualityMatchB) { @@ -680,17 +681,6 @@ class Aniwave extends MProvider { return qualityNumB - qualityNumA; }); - videos.sort((MVideo a, MVideo b) { - int serverMatchA = 0; - if (a.quality.toLowerCase().contains(server.toLowerCase())) { - serverMatchA = 1; - } - int serverMatchB = 0; - if (b.quality.toLowerCase().contains(server.toLowerCase())) { - serverMatchB = 1; - } - return serverMatchB - serverMatchA; - }); return videos; } diff --git a/anime/src/en/gogoanime/gogoanime.dart b/anime/src/en/gogoanime/gogoanime.dart index 4ae2c1b2..e7e854dc 100644 --- a/anime/src/en/gogoanime/gogoanime.dart +++ b/anime/src/en/gogoanime/gogoanime.dart @@ -1117,11 +1117,11 @@ class GogoAnime extends MProvider { videos.sort((MVideo a, MVideo b) { int qualityMatchA = 0; - if (a.quality.contains(quality)) { + if (a.quality.contains(quality) && a.quality.contains(server)) { qualityMatchA = 1; } int qualityMatchB = 0; - if (b.quality.contains(quality)) { + if (b.quality.contains(quality) && b.quality.contains(server)) { qualityMatchB = 1; } if (qualityMatchA != qualityMatchB) { @@ -1136,17 +1136,6 @@ class GogoAnime extends MProvider { return qualityNumB - qualityNumA; }); - videos.sort((MVideo a, MVideo b) { - int serverMatchA = 0; - if (a.quality.contains(server)) { - serverMatchA = 1; - } - int serverMatchB = 0; - if (b.quality.contains(server)) { - serverMatchB = 1; - } - return serverMatchB - serverMatchA; - }); return videos; } } diff --git a/anime/src/en/nineanimetv/nineanimetv.dart b/anime/src/en/nineanimetv/nineanimetv.dart index 897b5223..e55a42d2 100644 --- a/anime/src/en/nineanimetv/nineanimetv.dart +++ b/anime/src/en/nineanimetv/nineanimetv.dart @@ -360,17 +360,18 @@ class NineAnimeTv extends MProvider { String quality = getPreferenceValue(sourceId, "preferred_quality"); String server = getPreferenceValue(sourceId, "preferred_server"); String type = getPreferenceValue(sourceId, "preferred_type"); - videos = videos - .where( - (MVideo e) => e.quality.toLowerCase().contains(type.toLowerCase())) - .toList(); videos.sort((MVideo a, MVideo b) { int qualityMatchA = 0; - if (a.quality.contains(quality)) { + + if (a.quality.contains(quality) && + a.quality.toLowerCase().contains(type.toLowerCase()) && + a.quality.toLowerCase().contains(server.toLowerCase())) { qualityMatchA = 1; } int qualityMatchB = 0; - if (b.quality.contains(quality)) { + if (b.quality.contains(quality) && + b.quality.toLowerCase().contains(type.toLowerCase()) && + b.quality.toLowerCase().contains(server.toLowerCase())) { qualityMatchB = 1; } if (qualityMatchA != qualityMatchB) { @@ -384,18 +385,6 @@ class NineAnimeTv extends MProvider { final int qualityNumB = int.tryParse(matchB?.group(1) ?? '0') ?? 0; return qualityNumB - qualityNumA; }); - - videos.sort((MVideo a, MVideo b) { - int serverMatchA = 0; - if (a.quality.toLowerCase().contains(server.toLowerCase())) { - serverMatchA = 1; - } - int serverMatchB = 0; - if (b.quality.toLowerCase().contains(server.toLowerCase())) { - serverMatchB = 1; - } - return serverMatchB - serverMatchA; - }); return videos; }