add:一言API
新增名言种类
This commit is contained in:
@@ -1215,6 +1215,7 @@
|
|||||||
<ComboBoxItem Content="osu!玩家语录" FontFamily="Microsoft YaHei UI" />
|
<ComboBoxItem Content="osu!玩家语录" FontFamily="Microsoft YaHei UI" />
|
||||||
<ComboBoxItem Content="励志立志的名言警句" FontFamily="Microsoft YaHei UI" />
|
<ComboBoxItem Content="励志立志的名言警句" 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>
|
</ComboBox>
|
||||||
</ui:SimpleStackPanel>
|
</ui:SimpleStackPanel>
|
||||||
<Line HorizontalAlignment="Center" X1="0" Y1="0" X2="400" Y2="0"
|
<Line HorizontalAlignment="Center" X1="0" Y1="0" X2="400" Y2="0"
|
||||||
|
|||||||
@@ -702,21 +702,7 @@ namespace Ink_Canvas
|
|||||||
BlackBoardWaterMark.Visibility = Visibility.Collapsed;
|
BlackBoardWaterMark.Visibility = Visibility.Collapsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Settings.Appearance.ChickenSoupSource == 0)
|
_ = UpdateChickenSoupTextAsync();
|
||||||
{
|
|
||||||
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];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Settings.Canvas.UsingWhiteboard)
|
if (Settings.Canvas.UsingWhiteboard)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using System;
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System.Net.Http;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Forms;
|
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;
|
if (!isLoaded) return;
|
||||||
Settings.Appearance.ChickenSoupSource = ComboBoxChickenSoupSource.SelectedIndex;
|
Settings.Appearance.ChickenSoupSource = ComboBoxChickenSoupSource.SelectedIndex;
|
||||||
SaveSettingsToFile();
|
SaveSettingsToFile();
|
||||||
if (Settings.Appearance.ChickenSoupSource == 0)
|
await UpdateChickenSoupTextAsync();
|
||||||
{
|
|
||||||
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];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ToggleSwitchEnableViewboxBlackBoardScaleTransform_Toggled(object sender, RoutedEventArgs e)
|
private void ToggleSwitchEnableViewboxBlackBoardScaleTransform_Toggled(object sender, RoutedEventArgs e)
|
||||||
|
|||||||
Reference in New Issue
Block a user