using LME.JackTor.Models;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Shared;
using Shared.Models.Module;
using Shared.Models.Module.Interfaces;
using System;
using System.Net.Http;
using System.Net.Mime;
using System.Net.Security;
using System.Security.Authentication;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace LME.JackTor
{
public class ModInit : IModuleLoaded
{
public static double Version => 2.2;
public static JackTorSettings JackTor;
public static JackTorSettings Settings
{
get => JackTor;
set => JackTor = value;
}
///
/// Модуль завантажено.
///
public void Loaded(InitspaceModel initspace)
{
JackTor = new JackTorSettings("LME.JackTor", "http://127.0.0.1:9117", streamproxy: false, useproxy: false)
{
displayname = "JackTor",
displayindex = 0,
group = 0,
group_hide = true,
jackett = "http://127.0.0.1:9117",
apikey = string.Empty,
min_sid = 5,
min_peers = 0,
max_size = 0,
max_serial_size = 0,
emptyVoice = true,
forceAll = false,
sort = "sid",
max_age_days = 0,
quality_allow = new[] { 2160, 1080, 720 },
trackers_allow = Array.Empty(),
trackers_block = Array.Empty(),
hdr_mode = "any",
codec_allow = "any",
audio_pref = new[] { "ukr", "eng", "rus" },
year_tolerance = 1,
query_mode = "both",
proxy = new Shared.Models.Base.ProxySettings()
{
useAuth = true,
username = "",
password = "",
list = new string[] { "socks5://ip:port" }
}
};
var defaults = JObject.FromObject(JackTor);
defaults["enabled"] = true;
var conf = ModuleInvoke.Init("LME.JackTor", defaults) ?? defaults;
JackTor = conf.ToObject();
if (string.IsNullOrWhiteSpace(JackTor.jackett))
JackTor.jackett = JackTor.host;
if (string.IsNullOrWhiteSpace(JackTor.host))
JackTor.host = JackTor.jackett;
// Показувати «уточнити пошук».
OnlineRegistry.RegisterWithSearch("lme_jacktor");
}
public void Dispose()
{
}
}
public static class UpdateService
{
private static readonly ModuleUpdateService _service = new(
() => ModInit.Settings?.plugin,
() => ModInit.Version);
public static Task ConnectAsync(string host, CancellationToken cancellationToken = default)
=> _service.ConnectAsync(host, cancellationToken);
public static bool IsDisconnected()
=> _service.IsDisconnected();
public static ActionResult Validate(ActionResult result)
=> _service.Validate(result);
}
}