feat(makhno): support multiple language variants for categories

Add support for Ukrainian, Russian, and English category names in both
Makhno and UaTUT controllers. This improves internationalization by
recognizing category names in different languages.

Supported categories now include:
- Series: Серіал, Сериал, Аніме, Аниме, Мультсеріал, Мультсериал, TV
- Movies: Фільм, Фильм, Мультфільм, Мультфильм, Movie

Refactored filtering logic to use dedicated helper methods for better
code maintainability.
This commit is contained in:
baliasnyifeliks 2026-02-04 14:20:58 +02:00
parent 43808b819f
commit fed0472514
2 changed files with 29 additions and 3 deletions

View File

@ -344,7 +344,12 @@ namespace Makhno
return false;
return category.Equals("Серіал", StringComparison.OrdinalIgnoreCase)
|| category.Equals("Аніме", StringComparison.OrdinalIgnoreCase);
|| category.Equals("Сериал", StringComparison.OrdinalIgnoreCase)
|| category.Equals("Аніме", StringComparison.OrdinalIgnoreCase)
|| category.Equals("Аниме", StringComparison.OrdinalIgnoreCase)
|| category.Equals("Мультсеріал", StringComparison.OrdinalIgnoreCase)
|| category.Equals("Мультсериал", StringComparison.OrdinalIgnoreCase)
|| category.Equals("TV", StringComparison.OrdinalIgnoreCase);
}
private bool IsSerialByUrl(string url, int serial)

View File

@ -66,7 +66,7 @@ namespace UaTUT
var init = ModInit.UaTUT;
// Фільтруємо тільки серіали та аніме
var seriesResults = searchResults.Where(r => r.Category == "Серіал" || r.Category == "Аніме").ToList();
var seriesResults = searchResults.Where(r => IsSeriesCategory(r.Category)).ToList();
if (!seriesResults.Any())
{
@ -249,7 +249,7 @@ namespace UaTUT
var init = ModInit.UaTUT;
// Фільтруємо тільки фільми
var movieResults = searchResults.Where(r => r.Category == "Фільм").ToList();
var movieResults = searchResults.Where(r => IsMovieCategory(r.Category)).ToList();
if (!movieResults.Any())
{
@ -456,6 +456,27 @@ namespace UaTUT
return cleaned;
}
private static bool IsMovieCategory(string category)
{
if (string.IsNullOrWhiteSpace(category))
return false;
var value = category.Trim().ToLowerInvariant();
return value == "фільм" || value == "фильм" || value == "мультфільм" || value == "мультфильм" || value == "movie";
}
private static bool IsSeriesCategory(string category)
{
if (string.IsNullOrWhiteSpace(category))
return false;
var value = category.Trim().ToLowerInvariant();
return value == "серіал" || value == "сериал"
|| value == "аніме" || value == "аниме"
|| value == "мультсеріал" || value == "мультсериал"
|| value == "tv";
}
string BuildStreamUrl(OnlinesSettings init, string streamLink)
{
string link = streamLink?.Trim();