修正點歌顯示,指令接收回傳

This commit is contained in:
jasonchenwork 2025-05-19 14:27:48 +08:00
parent 706daa0080
commit 4e6d6242fe
3 changed files with 13 additions and 5 deletions

View File

@ -64,8 +64,9 @@ namespace DBObj
} }
public List<SongData> SearchSongsBySinger(string keyword) public List<SongData> SearchSongsBySinger(string keyword)
{ {
Console.WriteLine("keyword : " + keyword);
var keywordLower = keyword.ToLower(); var keywordLower = keyword.ToLower();
string query = $"SELECT * FROM song_library_cache WHERE artistA ='{keywordLower}' OR artistB='{keywordLower}'"; string query = $"SELECT * FROM song_library_cache WHERE artistA LIKE '%{keywordLower}%' OR artistB LIKE'%{keywordLower}%'";
return PrimaryForm.Instance.SearchSongs_Mysql(query); return PrimaryForm.Instance.SearchSongs_Mysql(query);
} }
public List<SongData> SearchSongsByName(string keyword) public List<SongData> SearchSongsByName(string keyword)

View File

@ -31,12 +31,12 @@ namespace DualScreenDemo
private static CancellationTokenSource _cts; private static CancellationTokenSource _cts;
private static Task _serverTask; private static Task _serverTask;
private static string _baseDirectory = @"themes\superstar\_www"; // 根據實際情況設定 private static string _baseDirectory = @"themes\superstar\_www"; // 根據實際情況設定
private static SongListManager _songListManager;
private static TaskCompletionSource<string> _qrReadyTcs; private static TaskCompletionSource<string> _qrReadyTcs;
public static async Task StartServer(string baseDirectory, int port, SongListManager manager, CancellationToken token) public static async Task StartServer(string baseDirectory, int port, SongListManager manager, CancellationToken token)
{ {
_songListManager = manager; songListManager = manager;
string randomFolderName = CreateRandomFolderAndRedirectHTML(baseDirectory); string randomFolderName = CreateRandomFolderAndRedirectHTML(baseDirectory);
randomFolderPath = randomFolderName; randomFolderPath = randomFolderName;
@ -116,7 +116,7 @@ namespace DualScreenDemo
// ✅ 等 QR code 跑完 // ✅ 等 QR code 跑完
_qrReadyTcs = new TaskCompletionSource<string>(); _qrReadyTcs = new TaskCompletionSource<string>();
_serverTask = StartServer(_baseDirectory, _port, _songListManager, _cts.Token); _serverTask = StartServer(_baseDirectory, _port, songListManager, _cts.Token);
string readyFolder = await _qrReadyTcs.Task; string readyFolder = await _qrReadyTcs.Task;
// ✅ 等 QR Code 圖片準備好之後再處理 UI 更新 // ✅ 等 QR Code 圖片準備好之後再處理 UI 更新
@ -344,7 +344,7 @@ namespace DualScreenDemo
context.Response.StatusCode = 500; context.Response.StatusCode = 500;
} }
} }
// 點歌問題
private static async Task HandleSearchRequest(HttpListenerContext context) private static async Task HandleSearchRequest(HttpListenerContext context)
{ {
try try
@ -361,6 +361,7 @@ namespace DualScreenDemo
searchResults = songListManager.SearchHotSongs(); searchResults = songListManager.SearchHotSongs();
break; break;
case "singer": case "singer":
Console.WriteLine("Query : " + searchRequest.Query);
searchResults = songListManager.SearchSongsBySinger(searchRequest.Query); searchResults = songListManager.SearchSongsBySinger(searchRequest.Query);
break; break;
case "song": case "song":

View File

@ -200,6 +200,8 @@ namespace DualScreenDemo
}); });
UpdateStateFile(stateFilePath, "CLOSE"); UpdateStateFile(stateFilePath, "CLOSE");
byte[] okResponse = Encoding.UTF8.GetBytes("OK\n");
stream.Write(okResponse, 0, okResponse.Length);
continue; continue;
} }
@ -219,6 +221,8 @@ namespace DualScreenDemo
VideoPlayerForm.Instance.PlayPublicPlaylist(); VideoPlayerForm.Instance.PlayPublicPlaylist();
UpdateStateFile(stateFilePath, "OPEN"); UpdateStateFile(stateFilePath, "OPEN");
byte[] okResponse = Encoding.UTF8.GetBytes("OK\n");
stream.Write(okResponse, 0, okResponse.Length);
continue; continue;
} }
if (command.Trim().Equals("F", StringComparison.OrdinalIgnoreCase)) if (command.Trim().Equals("F", StringComparison.OrdinalIgnoreCase))
@ -233,6 +237,8 @@ namespace DualScreenDemo
// 更新狀態檔案(可選,若你要記錄狀態) // 更新狀態檔案(可選,若你要記錄狀態)
UpdateStateFile(stateFilePath, "PAUSE"); UpdateStateFile(stateFilePath, "PAUSE");
byte[] okResponse = Encoding.UTF8.GetBytes("OK\n");
stream.Write(okResponse, 0, okResponse.Length);
continue; continue;
} }