Skip to content

Commit d0711ca

Browse files
committed
update
1 parent dd622e2 commit d0711ca

File tree

7 files changed

+56
-22
lines changed

7 files changed

+56
-22
lines changed

Pixeval.Extensions.Translators.Baidu/Client/BaiduTranslatorClient.cs

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.Text.Json.Serialization;
66
using System.Text;
77
using System.Security.Cryptography;
8+
using System.Web;
89

910
namespace Pixeval.Extensions.Translators.Baidu.Client;
1011
#nullable disable
@@ -94,30 +95,35 @@ public async Task<BaiduTranslateResult> Translate(string text, string toLanguage
9495
/// <param name="salt">设置后将使用传入的随机数</param>
9596
/// <param name="sign">设置后将使用传入的签名结果</param>
9697
/// <returns></returns>
97-
public async Task<BaiduTranslateResult> Translate(string text, string toLanguage, string fromLanguage = "auto", string salt = "", string sign = "")
98+
public async Task<BaiduTranslateResult> Translate(string text, string toLanguage, string fromLanguage = "auto")
9899
{
99-
// 使用时间戳
100-
if (string.IsNullOrWhiteSpace(salt))
101-
{
102-
salt = DateTimeOffset.Now.ToUnixTimeSeconds().ToString();
103-
}
104-
// 使用MD5加密
105-
if (string.IsNullOrWhiteSpace(sign))
106-
{
107-
sign = (_appId + text + salt + _secretKey).MD5();
108-
}
109-
// 拼接URL
110-
string url = $"{_endpoint}?q={text}&from={fromLanguage}&to={toLanguage}&appid={_appId}&salt={salt}&sign={sign}";
111-
// 发送请求
100+
101+
var salt = new Random()
102+
.NextInt64(10000000000)
103+
.ToString()
104+
.PadLeft(10, '0');
105+
var sign = BitConverter.ToString(
106+
MD5.Create().ComputeHash(Encoding.Default.GetBytes(
107+
_appId + text + salt + _secretKey)))
108+
.Replace("-", "")
109+
.ToLower();
110+
111+
var query = new StringBuilder()
112+
.Append($"?q={HttpUtility.UrlEncode(text)}")
113+
.Append($"&from={fromLanguage}")
114+
.Append($"&to={toLanguage}")
115+
.Append($"&appid={_appId}")
116+
.Append($"&salt={salt}")
117+
.Append($"&sign={sign}")
118+
.ToString();
119+
var url = _endpoint + query;
120+
121+
112122
try
113123
{
114124
#if NET6_0_OR_GREATER
115125
//return await _httpClient.GetFromJsonAsync<BaiduTranslateResult>(url);
116126
var response = await _httpClient.GetAsync(url);
117-
var options = new JsonSerializerOptions
118-
{
119-
TypeInfoResolver = SourceGenerationContext.Default,
120-
};
121127
if (response.IsSuccessStatusCode)
122128
{
123129
var str = await response.Content.ReadAsStringAsync();
@@ -265,7 +271,7 @@ public static string MD5(this string str, bool isUpper = false, bool isBig = tru
265271
var result = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
266272
var strResult = isBig ? BitConverter.ToString(result) : BitConverter.ToString(result, 4, 8);
267273
return isUpper ? strResult.Replace("-", "") : strResult.Replace("-", "").ToLower();
268-
}
274+
}
269275
}
270276

271277
/// <summary>

Pixeval.Extensions.Translators.Baidu/ExtensionsHost.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,6 @@ public override void Initialize(string cultureName, string tempDirectory, string
5959
public ExtensionsHost()
6060
{
6161
Translator = new BaiduTranslator();
62-
Extensions = [Translator,new AppIdSettingsExtension(),new ApiKeySettingsExtension()];
62+
Extensions = [Translator, new AppIdSettingsExtension(), new ApiKeySettingsExtension()];
6363
}
6464
}

Pixeval.Extensions.Translators.Baidu/Settings/ApiKeySettingsExtension.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public partial class ApiKeySettingsExtension:StringSettingsExtensionBase
1111

1212
public override void OnValueChanged(string value)
1313
{
14-
ExtensionsHost.Current.Translator.AuthKey = value;
14+
ExtensionsHost.Current.Translator.AuthKey = value.TrimStart('"');
1515
}
1616

1717
public override string? Placeholder { get; }

Pixeval.Extensions.Translators.Baidu/Settings/AppIdSettingsExtension.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public partial class AppIdSettingsExtension : StringSettingsExtensionBase
1111

1212
public override void OnValueChanged(string value)
1313
{
14-
ExtensionsHost.Current.Translator.AppId = value;
14+
ExtensionsHost.Current.Translator.AppId = value.TrimStart('"');
1515
}
1616

1717
public override string? Placeholder { get; }

Pixeval.Extensions.Translators.sln

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pixeval.Extensions.Translat
77
EndProject
88
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pixeval.Extensions.Translators.DeepL", "Pixeval.Extensions.Translators.DeepL\Pixeval.Extensions.Translators.DeepL.csproj", "{32DE6BD8-CB0E-4261-86A4-A0CB123606FB}"
99
EndProject
10+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{A8F9C5AD-244B-4797-8450-63F7453BE3AC}"
11+
EndProject
1012
Global
1113
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1214
Debug|Any CPU = Debug|Any CPU
@@ -21,6 +23,10 @@ Global
2123
{32DE6BD8-CB0E-4261-86A4-A0CB123606FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
2224
{32DE6BD8-CB0E-4261-86A4-A0CB123606FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
2325
{32DE6BD8-CB0E-4261-86A4-A0CB123606FB}.Release|Any CPU.Build.0 = Release|Any CPU
26+
{A8F9C5AD-244B-4797-8450-63F7453BE3AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
27+
{A8F9C5AD-244B-4797-8450-63F7453BE3AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
28+
{A8F9C5AD-244B-4797-8450-63F7453BE3AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
29+
{A8F9C5AD-244B-4797-8450-63F7453BE3AC}.Release|Any CPU.Build.0 = Release|Any CPU
2430
EndGlobalSection
2531
GlobalSection(SolutionProperties) = preSolution
2632
HideSolutionNode = FALSE

TestConsole/Program.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
using Pixeval.Extensions.Translators.Baidu.Client;
2+
3+
var translator = new BaiduTranslatorClient("", "");
4+
var result = await translator.Translate("かーわいいー!", "zh");
5+
Console.WriteLine(result.Trans_Result.First().Dst);

TestConsole/TestConsole.csproj

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net9.0</TargetFramework>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
<PublishAot>true</PublishAot>
9+
<InvariantGlobalization>true</InvariantGlobalization>
10+
</PropertyGroup>
11+
12+
<ItemGroup>
13+
<ProjectReference Include="..\Pixeval.Extensions.Translators.Baidu\Pixeval.Extensions.Translators.Baidu.csproj" />
14+
<ProjectReference Include="..\Pixeval.Extensions.Translators.DeepL\Pixeval.Extensions.Translators.DeepL.csproj" />
15+
</ItemGroup>
16+
17+
</Project>

0 commit comments

Comments
 (0)