refactor(controller): restructure Ashdi stream handling logic

Move the foreach loop inside the null/empty check for ashdiStreams to ensure
proper iteration only when streams are available. This improves code readability
and prevents potential issues with iterating over null or empty collections.
This commit is contained in:
Felix 2026-05-02 16:08:27 +03:00
parent 04bb7d48b5
commit b00795c464

View File

@ -247,19 +247,18 @@ namespace LME.AnimeON.Controllers
if (streamLink.Contains("ashdi.vip/vod", StringComparison.OrdinalIgnoreCase))
{
var ashdiStreams = await invoke.ParseAshdiPageStreams(streamLink);
if (ashdiStreams != null && ashdiStreams.Count > 0)
{
foreach (var ashdiStream in ashdiStreams)
if (ashdiStreams != null && ashdiStreams.Count > 0)
{
string optionName = $"{translationName} {ashdiStream.Title}";
string subtitlesParam = ashdiStream.Subtitles != null ? $"&subtitles={HttpUtility.UrlEncode(JsonSerializer.Serialize(ashdiStream.Subtitles.ToObject()))}" : string.Empty;
string callUrl = $"{host}/lite/lme_animeon/play?url={HttpUtility.UrlEncode(ashdiStream.Link)}{subtitlesParam}";
movieTpl.Append(optionName, accsArgs(callUrl), "call");
foreach (var ashdiStream in ashdiStreams)
{
string optionName = $"{translationName} {ashdiStream.Title}";
string subtitlesParam = ashdiStream.Subtitles != null ? $"&subtitles={HttpUtility.UrlEncode(JsonSerializer.Serialize(ashdiStream.Subtitles.ToObject()))}" : string.Empty;
string callUrl = $"{host}/lite/lme_animeon/play?url={HttpUtility.UrlEncode(ashdiStream.Link)}{subtitlesParam}";
tpl.Append(optionName, accsArgs(callUrl), "call");
}
}
}
continue;
}
continue;
}
if (needsResolve || streamLink.Contains("moonanime.art/iframe/") || streamLink.Contains("ashdi.vip/vod"))