mirror of
https://github.com/lampame/lampac-ukraine.git
synced 2026-04-16 09:22:21 +00:00
BREAKING CHANGE: All module routes changed from /{module} to /lite/{module}
- Implement IModuleLoaded and IModuleOnline interfaces across all modules
- Add HttpHydra support to all Invoke classes for HTTP request handling
- Replace ModuleInvoke.Conf() with ModuleInvoke.Init() in all ModInit classes
- Convert loadKit() from async to synchronous calls in all controllers
- Replace direct AppInit.conf.online.with_search.Add() with reflection-based
RegisterWithSearch() method for decoupled module registration
- Simplify cacheTime() logic by removing mikrotik/multiaccess conditionals
- Add GlobalUsings.cs to all modules for shared namespace imports
- Update OnlineApi to use ModuleOnlineItem instead of value tuples
- Bump all module versions to new major versions
50 lines
2.3 KiB
C#
50 lines
2.3 KiB
C#
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.Extensions.Caching.Memory;
|
|
using Shared.Models;
|
|
using Shared.Models.Module;
|
|
using Shared.Models.Module.Interfaces;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace NMoonAnime
|
|
{
|
|
public class OnlineApi : IModuleOnline
|
|
{
|
|
public List<ModuleOnlineItem> 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 Task<List<ModuleOnlineItem>> InvokeAsync(HttpContext httpContext, IMemoryCache memoryCache, RequestModel requestInfo, string host, OnlineEventsModel args)
|
|
=> Task.FromResult(default(List<ModuleOnlineItem>));
|
|
|
|
public List<ModuleOnlineSpiderItem> Spider(HttpContext httpContext, IMemoryCache memoryCache, RequestModel requestInfo, string host, OnlineSpiderModel args)
|
|
=> null;
|
|
|
|
public Task<List<ModuleOnlineSpiderItem>> SpiderAsync(HttpContext httpContext, IMemoryCache memoryCache, RequestModel requestInfo, string host, OnlineSpiderModel args)
|
|
=> Task.FromResult(default(List<ModuleOnlineSpiderItem>));
|
|
|
|
private static List<ModuleOnlineItem> 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<ModuleOnlineItem>();
|
|
|
|
var init = ModInit.NMoonAnime;
|
|
|
|
bool hasLang = !string.IsNullOrEmpty(original_language);
|
|
bool isAnime = hasLang && (original_language == "ja" || original_language == "zh");
|
|
|
|
if (init.enable && !init.rip && (serial == -1 || isAnime || !hasLang))
|
|
{
|
|
string url = init.overridehost;
|
|
if (string.IsNullOrEmpty(url) || UpdateService.IsDisconnected())
|
|
url = $"{host}/lite/nmoonanime";
|
|
|
|
online.Add(new ModuleOnlineItem(init.displayname, url, "nmoonanime", init.displayindex));
|
|
}
|
|
|
|
return online;
|
|
}
|
|
}
|
|
}
|