lampac-ukraine/Bamboo/OnlineApi.cs
baliasnyifeliks 470437990c feat(bamboo): restrict online api to asian languages
Added language validation to only allow online API calls for Japanese and
Chinese language variants. Early return for unsupported languages prevents
unnecessary API calls.
2026-02-01 18:33:11 +02:00

48 lines
1.9 KiB
C#

using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Caching.Memory;
using Shared.Models;
using Shared.Models.Base;
using Shared.Models.Module;
using System.Collections.Generic;
namespace Bamboo
{
public class OnlineApi
{
public static List<(string name, string url, string plugin, int index)> Invoke(
HttpContext httpContext,
IMemoryCache memoryCache,
RequestModel requestInfo,
string host,
OnlineEventsModel args)
{
long.TryParse(args.id, out long tmdbid);
return Events(host, tmdbid, args.imdb_id, args.kinopoisk_id, args.title, args.original_title, args.original_language, args.year, args.source, args.serial, args.account_email);
}
public static List<(string name, string url, string plugin, int index)> Events(string host, long id, string imdb_id, long kinopoisk_id, string title, string original_title, string original_language, int year, string source, int serial, string account_email)
{
var online = new List<(string name, string url, string plugin, int index)>();
var init = ModInit.Bamboo;
if (init.enable && !init.rip)
{
if (!string.IsNullOrEmpty(original_language))
{
var lang = original_language.ToLowerInvariant();
if (lang != "ja" && lang != "jp" && lang != "zh" && lang != "zh-cn" && lang != "zh-hans" && lang != "zh-hant" && lang != "zh-tw" && lang != "zh-hk")
return online;
}
string url = init.overridehost;
if (string.IsNullOrEmpty(url) || UpdateService.IsDisconnected())
url = $"{host}/bamboo";
online.Add((init.displayname, url, "bamboo", init.displayindex));
}
return online;
}
}
}