diff --git a/AnimeON/Controller.cs b/AnimeON/Controller.cs index ef8ca26..a4307db 100644 --- a/AnimeON/Controller.cs +++ b/AnimeON/Controller.cs @@ -28,7 +28,7 @@ namespace AnimeON.Controllers [HttpGet] [Route("animeon")] - async public Task Index(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, string t, int s = -1, bool rjson = false) + async public Task Index(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, string t, int s = -1, bool rjson = false, bool checksearch = false) { await UpdateService.ConnectAsync(host); @@ -37,6 +37,19 @@ namespace AnimeON.Controllers return Forbid(); var invoke = new AnimeONInvoke(init, hybridCache, OnLog, proxyManager); + + if (checksearch) + { + if (AppInit.conf?.online?.checkOnlineSearch != true) + return OnError("animeon", proxyManager); + + var seasons = await invoke.Search(imdb_id, kinopoisk_id, title, original_title, year, serial); + if (seasons != null && seasons.Count > 0) + return Content("data-json=", "text/plain; charset=utf-8"); + + return OnError("animeon", proxyManager); + } + OnLog($"AnimeON Index: title={title}, original_title={original_title}, serial={serial}, s={s}, t={t}, year={year}, imdb_id={imdb_id}, kp={kinopoisk_id}"); var seasons = await invoke.Search(imdb_id, kinopoisk_id, title, original_title, year, serial); diff --git a/Bamboo/Controller.cs b/Bamboo/Controller.cs index 2d069db..f2a993b 100644 --- a/Bamboo/Controller.cs +++ b/Bamboo/Controller.cs @@ -24,7 +24,7 @@ namespace Bamboo.Controllers [HttpGet] [Route("bamboo")] - async public Task Index(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, string t, int s = -1, bool rjson = false, string href = null) + async public Task Index(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, string t, int s = -1, bool rjson = false, string href = null, bool checksearch = false) { await UpdateService.ConnectAsync(host); @@ -34,6 +34,18 @@ namespace Bamboo.Controllers var invoke = new BambooInvoke(init, hybridCache, OnLog, proxyManager); + if (checksearch) + { + if (AppInit.conf?.online?.checkOnlineSearch != true) + return OnError("bamboo", proxyManager); + + var searchResults = await invoke.Search(title, original_title); + if (searchResults != null && searchResults.Count > 0) + return Content("data-json=", "text/plain; charset=utf-8"); + + return OnError("bamboo", proxyManager); + } + string itemUrl = href; if (string.IsNullOrEmpty(itemUrl)) { diff --git a/CikavaIdeya/Controller.cs b/CikavaIdeya/Controller.cs index 25fb9c3..e0612dd 100644 --- a/CikavaIdeya/Controller.cs +++ b/CikavaIdeya/Controller.cs @@ -27,7 +27,7 @@ namespace CikavaIdeya.Controllers [HttpGet] [Route("cikavaideya")] - async public Task Index(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, string t, int s = -1, int e = -1, bool play = false, bool rjson = false) + async public Task Index(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, string t, int s = -1, int e = -1, bool play = false, bool rjson = false, bool checksearch = false) { await UpdateService.ConnectAsync(host); @@ -37,6 +37,18 @@ namespace CikavaIdeya.Controllers var invoke = new CikavaIdeyaInvoke(init, hybridCache, OnLog, proxyManager); + if (checksearch) + { + if (AppInit.conf?.online?.checkOnlineSearch != true) + return OnError("cikavaideya", proxyManager); + + var episodesInfo = await invoke.Search(imdb_id, kinopoisk_id, title, original_title, year, serial == 0); + if (episodesInfo != null && episodesInfo.Count > 0) + return Content("data-json=", "text/plain; charset=utf-8"); + + return OnError("cikavaideya", proxyManager); + } + var episodesInfo = await invoke.Search(imdb_id, kinopoisk_id, title, original_title, year, serial == 0); if (episodesInfo == null) return Content("CikavaIdeya", "text/html; charset=utf-8"); diff --git a/Makhno/Controller.cs b/Makhno/Controller.cs index 810e86e..c320836 100644 --- a/Makhno/Controller.cs +++ b/Makhno/Controller.cs @@ -27,7 +27,12 @@ namespace Makhno public async Task Index(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, string t, int s = -1, int season = -1, bool rjson = false, bool checksearch = false) { if (checksearch) - return Content("data-json="); + { + if (AppInit.conf?.online?.checkOnlineSearch != true) + return OnError(); + + return Content("data-json=", "text/plain; charset=utf-8"); + } await UpdateService.ConnectAsync(host); diff --git a/Mikai/Controller.cs b/Mikai/Controller.cs index 90fdaef..d0384d5 100644 --- a/Mikai/Controller.cs +++ b/Mikai/Controller.cs @@ -24,7 +24,7 @@ namespace Mikai.Controllers [HttpGet] [Route("mikai")] - public async Task Index(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, string t, int s = -1, bool rjson = false) + public async Task Index(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, string t, int s = -1, bool rjson = false, bool checksearch = false) { await UpdateService.ConnectAsync(host); @@ -33,6 +33,19 @@ namespace Mikai.Controllers return Forbid(); var invoke = new MikaiInvoke(init, hybridCache, OnLog, _proxyManager); + + if (checksearch) + { + if (AppInit.conf?.online?.checkOnlineSearch != true) + return OnError("mikai", _proxyManager); + + var searchResults = await invoke.Search(title, original_title, year); + if (searchResults != null && searchResults.Count > 0) + return Content("data-json=", "text/plain; charset=utf-8"); + + return OnError("mikai", _proxyManager); + } + OnLog($"Mikai Index: title={title}, original_title={original_title}, serial={serial}, s={s}, t={t}, year={year}"); var searchResults = await invoke.Search(title, original_title, year); diff --git a/StarLight/Controller.cs b/StarLight/Controller.cs index 0dadfb4..cc15189 100644 --- a/StarLight/Controller.cs +++ b/StarLight/Controller.cs @@ -25,7 +25,7 @@ namespace StarLight.Controllers [HttpGet] [Route("starlight")] - async public Task Index(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, int s = -1, bool rjson = false, string href = null) + async public Task Index(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, int s = -1, bool rjson = false, string href = null, bool checksearch = false) { await UpdateService.ConnectAsync(host); @@ -35,6 +35,18 @@ namespace StarLight.Controllers var invoke = new StarLightInvoke(init, hybridCache, OnLog, proxyManager); + if (checksearch) + { + if (AppInit.conf?.online?.checkOnlineSearch != true) + return OnError("starlight", proxyManager); + + var searchResults = await invoke.Search(title, original_title); + if (searchResults != null && searchResults.Count > 0) + return Content("data-json=", "text/plain; charset=utf-8"); + + return OnError("starlight", proxyManager); + } + string itemUrl = href; if (string.IsNullOrEmpty(itemUrl)) { diff --git a/UAKino/Controller.cs b/UAKino/Controller.cs index f10ea6e..3df6ad4 100644 --- a/UAKino/Controller.cs +++ b/UAKino/Controller.cs @@ -23,7 +23,7 @@ namespace UAKino.Controllers [HttpGet] [Route("uakino")] - async public Task Index(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, string t, bool rjson = false, string href = null) + async public Task Index(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, string t, bool rjson = false, string href = null, bool checksearch = false) { await UpdateService.ConnectAsync(host); @@ -33,6 +33,18 @@ namespace UAKino.Controllers var invoke = new UAKinoInvoke(init, hybridCache, OnLog, proxyManager); + if (checksearch) + { + if (AppInit.conf?.online?.checkOnlineSearch != true) + return OnError("uakino", proxyManager); + + var searchResults = await invoke.Search(title, original_title, serial); + if (searchResults != null && searchResults.Count > 0) + return Content("data-json=", "text/plain; charset=utf-8"); + + return OnError("uakino", proxyManager); + } + string itemUrl = href; if (string.IsNullOrEmpty(itemUrl)) { diff --git a/UaTUT/Controller.cs b/UaTUT/Controller.cs index 13dac3a..ecb64f3 100644 --- a/UaTUT/Controller.cs +++ b/UaTUT/Controller.cs @@ -25,7 +25,7 @@ namespace UaTUT } [HttpGet] - async public Task Index(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, string t, int s = -1, int season = -1, bool rjson = false) + async public Task Index(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, string t, int s = -1, int season = -1, bool rjson = false, bool checksearch = false) { await UpdateService.ConnectAsync(host); @@ -45,6 +45,17 @@ namespace UaTUT return await invoke.Search(original_title ?? title, imdb_id); }); + if (checksearch) + { + if (AppInit.conf?.online?.checkOnlineSearch != true) + return OnError(); + + if (searchResults != null && searchResults.Any()) + return Content("data-json=", "text/plain; charset=utf-8"); + + return OnError(); + } + if (searchResults == null || !searchResults.Any()) { OnLog("UaTUT: No search results found"); diff --git a/Uaflix/Controller.cs b/Uaflix/Controller.cs index 4ca2558..7512907 100644 --- a/Uaflix/Controller.cs +++ b/Uaflix/Controller.cs @@ -47,6 +47,9 @@ namespace Uaflix.Controllers // Обробка параметра checksearch - повертаємо спеціальну відповідь для валідації if (checksearch) { + if (AppInit.conf?.online?.checkOnlineSearch != true) + return OnError("uaflix", proxyManager); + try { string filmTitle = !string.IsNullOrEmpty(title) ? title : original_title; diff --git a/Unimay/Controllers/Controller.cs b/Unimay/Controllers/Controller.cs index 0c692f9..5242090 100644 --- a/Unimay/Controllers/Controller.cs +++ b/Unimay/Controllers/Controller.cs @@ -23,7 +23,7 @@ namespace Unimay.Controllers [HttpGet] [Route("unimay")] - async public ValueTask Index(string title, string original_title, string code, int serial = -1, int s = -1, int e = -1, bool play = false, bool rjson = false) + async public ValueTask Index(string title, string original_title, string code, int serial = -1, int s = -1, int e = -1, bool play = false, bool rjson = false, bool checksearch = false) { await UpdateService.ConnectAsync(host); @@ -33,6 +33,18 @@ namespace Unimay.Controllers var invoke = new UnimayInvoke(init, hybridCache, OnLog, proxyManager); + if (checksearch) + { + if (AppInit.conf?.online?.checkOnlineSearch != true) + return OnError("unimay"); + + var searchResults = await invoke.Search(title, original_title, serial); + if (searchResults?.Content != null && searchResults.Content.Count > 0) + return Content("data-json=", "text/plain; charset=utf-8"); + + return OnError("unimay"); + } + if (!string.IsNullOrEmpty(code)) { // Fetch release details