main
parent
44ee45df5b
commit
970e408aa9
@ -0,0 +1,80 @@
|
|||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace STranslateDLL;
|
||||||
|
|
||||||
|
public class Response
|
||||||
|
{
|
||||||
|
public int Code { get; set; }
|
||||||
|
public string Data { get; set; } = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DeepLRequest
|
||||||
|
{
|
||||||
|
[JsonPropertyName("jsonrpc")] public string Jsonrpc { get; set; } = "";
|
||||||
|
|
||||||
|
[JsonPropertyName("method")] public string Method { get; set; } = "";
|
||||||
|
|
||||||
|
[JsonPropertyName("params")] public ReqParams? Params { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("id")] public long Id { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReqParams
|
||||||
|
{
|
||||||
|
[JsonPropertyName("commonJobParams")] public ReqParamsCommonJobParams? CommonJobParams { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("lang")] public ReqParamsLang? Lang { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("texts")] public string[]? Texts { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("textType")] public string? TextType { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("jobs")] public Job[]? Jobs { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("priority")] public int Priority { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("timestamp")] public long Timestamp { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReqParamsLang
|
||||||
|
{
|
||||||
|
[JsonPropertyName("source_lang_user_selected")]
|
||||||
|
public string? SourceLangUserSelected { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("source_lang_computed")]
|
||||||
|
public string? SourceLangComputed { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("target_lang")] public string TargetLang { get; set; } = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReqParamsCommonJobParams
|
||||||
|
{
|
||||||
|
[JsonPropertyName("mode")] public string Mode { get; set; } = "";
|
||||||
|
|
||||||
|
[JsonPropertyName("regionalVariant")] public string? RegionalVariant { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Job
|
||||||
|
{
|
||||||
|
[JsonPropertyName("kind")] public string Kind { get; set; } = "";
|
||||||
|
|
||||||
|
[JsonPropertyName("preferred_num_beams")]
|
||||||
|
public int PreferredNumBeams { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("raw_en_context_before")]
|
||||||
|
public string[]? RawEnContextBefore { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("raw_en_context_after")]
|
||||||
|
public string[]? RawEnContextAfter { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("sentences")] public Sentence[]? Sentences { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Sentence
|
||||||
|
{
|
||||||
|
[JsonPropertyName("id")] public int Id { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("prefix")] public string Prefix { get; set; } = "";
|
||||||
|
|
||||||
|
[JsonPropertyName("text")] public string Text { get; set; } = "";
|
||||||
|
}
|
@ -0,0 +1,67 @@
|
|||||||
|
using System.Text.Encodings.Web;
|
||||||
|
using System.Text.Json;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace STranslateDLL;
|
||||||
|
|
||||||
|
public static class Utilities
|
||||||
|
{
|
||||||
|
private static long _nextId;
|
||||||
|
private static bool _hasInit;
|
||||||
|
|
||||||
|
public static readonly Dictionary<bool, string> TextTypeDic = new()
|
||||||
|
{
|
||||||
|
{ true, "richtext" },
|
||||||
|
{ false, "plaintext" }
|
||||||
|
};
|
||||||
|
|
||||||
|
private static JsonSerializerOptions GetOptions =>
|
||||||
|
new()
|
||||||
|
{
|
||||||
|
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
|
||||||
|
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault
|
||||||
|
};
|
||||||
|
|
||||||
|
public static string Serialize(object data)
|
||||||
|
{
|
||||||
|
return JsonSerializer.Serialize(data, GetOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Initial()
|
||||||
|
{
|
||||||
|
if (_hasInit) return;
|
||||||
|
|
||||||
|
var rand = new Random();
|
||||||
|
var number = rand.NextInt64(99999) + 8300000;
|
||||||
|
_nextId = number * 1000;
|
||||||
|
|
||||||
|
_hasInit = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsRichText(string text)
|
||||||
|
{
|
||||||
|
return text.Contains('<') && text.Contains('>');
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long GenerateTimestamp(string texts)
|
||||||
|
{
|
||||||
|
long iCount = texts.Split('i').Length - 1;
|
||||||
|
var ts = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
||||||
|
return iCount != 0 ? ts - ts % (iCount + 1) + iCount + 1 : ts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long CreateId()
|
||||||
|
{
|
||||||
|
return Interlocked.Increment(ref _nextId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string AdjustJsonContent(string json, long id)
|
||||||
|
{
|
||||||
|
string method;
|
||||||
|
if ((id + 3) % 13 == 0 || (id + 5) % 29 == 0)
|
||||||
|
method = "\"method\" : \"";
|
||||||
|
else
|
||||||
|
method = "\"method\": \"";
|
||||||
|
return json.Replace("\"method\":\"", method);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue