add:一言API
新增名言种类
This commit is contained in:
@@ -1215,6 +1215,7 @@
|
||||
<ComboBoxItem Content="osu!玩家语录" FontFamily="Microsoft YaHei UI" />
|
||||
<ComboBoxItem Content="励志立志的名言警句" FontFamily="Microsoft YaHei UI" />
|
||||
<ComboBoxItem Content="高考祝福语" FontFamily="Microsoft YaHei UI" />
|
||||
<ComboBoxItem Content="一言(Hitokoto API)" FontFamily="Microsoft YaHei UI" />
|
||||
</ComboBox>
|
||||
</ui:SimpleStackPanel>
|
||||
<Line HorizontalAlignment="Center" X1="0" Y1="0" X2="400" Y2="0"
|
||||
|
||||
@@ -702,21 +702,7 @@ namespace Ink_Canvas
|
||||
BlackBoardWaterMark.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
if (Settings.Appearance.ChickenSoupSource == 0)
|
||||
{
|
||||
int randChickenSoupIndex = new Random().Next(ChickenSoup.OSUPlayerYuLu.Length);
|
||||
BlackBoardWaterMark.Text = ChickenSoup.OSUPlayerYuLu[randChickenSoupIndex];
|
||||
}
|
||||
else if (Settings.Appearance.ChickenSoupSource == 1)
|
||||
{
|
||||
int randChickenSoupIndex = new Random().Next(ChickenSoup.MingYanJingJu.Length);
|
||||
BlackBoardWaterMark.Text = ChickenSoup.MingYanJingJu[randChickenSoupIndex];
|
||||
}
|
||||
else if (Settings.Appearance.ChickenSoupSource == 2)
|
||||
{
|
||||
int randChickenSoupIndex = new Random().Next(ChickenSoup.GaoKaoPhrases.Length);
|
||||
BlackBoardWaterMark.Text = ChickenSoup.GaoKaoPhrases[randChickenSoupIndex];
|
||||
}
|
||||
_ = UpdateChickenSoupTextAsync();
|
||||
|
||||
if (Settings.Canvas.UsingWhiteboard)
|
||||
{
|
||||
|
||||
@@ -6,6 +6,7 @@ using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using System.Net.Http;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Forms;
|
||||
@@ -297,26 +298,86 @@ namespace Ink_Canvas
|
||||
}
|
||||
}
|
||||
|
||||
private void ComboBoxChickenSoupSource_SelectionChanged(object sender, RoutedEventArgs e)
|
||||
private static readonly HttpClient HitokotoHttpClient = CreateHitokotoClient();
|
||||
|
||||
private static HttpClient CreateHitokotoClient()
|
||||
{
|
||||
var client = new HttpClient
|
||||
{
|
||||
Timeout = TimeSpan.FromSeconds(5)
|
||||
};
|
||||
try
|
||||
{
|
||||
client.DefaultRequestHeaders.UserAgent.ParseAdd("InkCanvas-Hitokoto/1.0");
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
return client;
|
||||
}
|
||||
|
||||
private async Task UpdateChickenSoupTextAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!Settings.Appearance.EnableChickenSoupInWhiteboardMode)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (Settings.Appearance.ChickenSoupSource == 0)
|
||||
{
|
||||
int randChickenSoupIndex = new Random().Next(ChickenSoup.OSUPlayerYuLu.Length);
|
||||
BlackBoardWaterMark.Text = ChickenSoup.OSUPlayerYuLu[randChickenSoupIndex];
|
||||
}
|
||||
else if (Settings.Appearance.ChickenSoupSource == 1)
|
||||
{
|
||||
int randChickenSoupIndex = new Random().Next(ChickenSoup.MingYanJingJu.Length);
|
||||
BlackBoardWaterMark.Text = ChickenSoup.MingYanJingJu[randChickenSoupIndex];
|
||||
}
|
||||
else if (Settings.Appearance.ChickenSoupSource == 2)
|
||||
{
|
||||
int randChickenSoupIndex = new Random().Next(ChickenSoup.GaoKaoPhrases.Length);
|
||||
BlackBoardWaterMark.Text = ChickenSoup.GaoKaoPhrases[randChickenSoupIndex];
|
||||
}
|
||||
else if (Settings.Appearance.ChickenSoupSource == 3)
|
||||
{
|
||||
BlackBoardWaterMark.Text = "正在获取一言...";
|
||||
|
||||
try
|
||||
{
|
||||
var response = await HitokotoHttpClient.GetAsync("https://v1.hitokoto.cn/?encode=text");
|
||||
response.EnsureSuccessStatusCode();
|
||||
|
||||
var text = await response.Content.ReadAsStringAsync();
|
||||
if (!string.IsNullOrWhiteSpace(text))
|
||||
{
|
||||
BlackBoardWaterMark.Text = text.Trim();
|
||||
}
|
||||
else
|
||||
{
|
||||
BlackBoardWaterMark.Text = "一言暂时没有返回内容";
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.WriteLogToFile($"Hitokoto API 请求失败: {ex.Message}", LogHelper.LogType.Warning);
|
||||
BlackBoardWaterMark.Text = "一言获取失败,请稍后重试";
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.WriteLogToFile($"更新白板名言时出错: {ex.Message}", LogHelper.LogType.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
private async void ComboBoxChickenSoupSource_SelectionChanged(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!isLoaded) return;
|
||||
Settings.Appearance.ChickenSoupSource = ComboBoxChickenSoupSource.SelectedIndex;
|
||||
SaveSettingsToFile();
|
||||
if (Settings.Appearance.ChickenSoupSource == 0)
|
||||
{
|
||||
int randChickenSoupIndex = new Random().Next(ChickenSoup.OSUPlayerYuLu.Length);
|
||||
BlackBoardWaterMark.Text = ChickenSoup.OSUPlayerYuLu[randChickenSoupIndex];
|
||||
}
|
||||
else if (Settings.Appearance.ChickenSoupSource == 1)
|
||||
{
|
||||
int randChickenSoupIndex = new Random().Next(ChickenSoup.MingYanJingJu.Length);
|
||||
BlackBoardWaterMark.Text = ChickenSoup.MingYanJingJu[randChickenSoupIndex];
|
||||
}
|
||||
else if (Settings.Appearance.ChickenSoupSource == 2)
|
||||
{
|
||||
int randChickenSoupIndex = new Random().Next(ChickenSoup.GaoKaoPhrases.Length);
|
||||
BlackBoardWaterMark.Text = ChickenSoup.GaoKaoPhrases[randChickenSoupIndex];
|
||||
}
|
||||
await UpdateChickenSoupTextAsync();
|
||||
}
|
||||
|
||||
private void ToggleSwitchEnableViewboxBlackBoardScaleTransform_Toggled(object sender, RoutedEventArgs e)
|
||||
|
||||
Reference in New Issue
Block a user