lampac/SISI/Controllers/Xhamster/ViewController.cs
lampac-talks f843f04fd4 chore: initial commit 154.3
Signed-off-by: lampac-talks <lampac-talks@users.noreply.github.com>
2026-01-30 16:23:09 +03:00

48 lines
1.5 KiB
C#

using Microsoft.AspNetCore.Mvc;
namespace SISI.Controllers.Xhamster
{
public class ViewController : BaseSisiController
{
public ViewController() : base(AppInit.conf.Xhamster) { }
[HttpGet]
[Route("xmr/vidosik")]
async public Task<ActionResult> Index(string uri, bool related)
{
if (await IsRequestBlocked(rch: true))
return badInitMsg;
rhubFallback:
var cache = await InvokeCacheResult<StreamItem>($"xhamster:view:{uri}", 20, async e =>
{
string targetHost = init.corsHost();
string url = XhamsterTo.StreamLinksUri(targetHost, uri);
if (url == null)
return e.Fail("uri");
StreamItem stream_links = null;
await httpHydra.GetSpan(url, span =>
{
stream_links = XhamsterTo.StreamLinks(targetHost, "xmr/vidosik", span);
});
if (stream_links?.qualitys == null || stream_links.qualitys.Count == 0)
return e.Fail("stream_links", refresh_proxy: true);
return e.Success(stream_links);
});
if (IsRhubFallback(cache))
goto rhubFallback;
if (related)
return await PlaylistResult(cache.Value?.recomends, cache.ISingleCache, null, total_pages: 1);
return OnResult(cache);
}
}
}