feat: listen to named conversations in dedicated chat windows
This commit is contained in:
@@ -65,7 +65,7 @@ try
|
||||
case "inspect-ui":
|
||||
{
|
||||
var output = GetRequiredOption(args, "--output");
|
||||
var snapshot = await WechatUiInspector.CaptureAsync(output, cancellationToken);
|
||||
var snapshot = await WechatUiInspector.CaptureAsync(output, cancellationToken, GetOption(args, "--window-title"));
|
||||
WriteJson(new { output = Path.GetFullPath(output), nodes = CountNodes(snapshot), sanitized = true });
|
||||
return 0;
|
||||
}
|
||||
@@ -101,7 +101,7 @@ try
|
||||
}
|
||||
case "listener-smoke":
|
||||
{
|
||||
var result = await WechatChatClient.ListenerSmokeAsync(GetRequiredOption(args, "--output"), cancellationToken);
|
||||
var result = await WechatChatClient.ListenerSmokeAsync(GetRequiredOption(args, "--output"), cancellationToken, HasOption(args, "--independent"));
|
||||
WriteJson(result);
|
||||
return result.Sent && result.MatchingEvents == 1 && result.EventsAfterRestart == 0
|
||||
&& result.Snapshots >= 2 && result.CheckpointSaved ? 0 : 2;
|
||||
@@ -322,7 +322,9 @@ try
|
||||
await foreach (var messageEvent in WechatChatClient.ListenEventsAsync(
|
||||
TimeSpan.FromSeconds(seconds),
|
||||
stateFile,
|
||||
cancellationToken))
|
||||
cancellationToken,
|
||||
session: GetOption(args, "--session") ?? WechatLocators.FileTransferAssistant,
|
||||
independentWindow: HasOption(args, "--independent")))
|
||||
{
|
||||
Console.WriteLine(JsonSerializer.Serialize(ToEventOutput(messageEvent, includeContent), jsonLineOptions));
|
||||
}
|
||||
@@ -473,7 +475,7 @@ static int ValidateCommandLine(string[] values)
|
||||
|
||||
if (values[0] == "listener-smoke")
|
||||
{
|
||||
ValidateOptions(values, 1, ["--output", "--timeout"], []);
|
||||
ValidateOptions(values, 1, ["--output", "--timeout"], ["--independent"]);
|
||||
return 60;
|
||||
}
|
||||
|
||||
@@ -485,7 +487,7 @@ static int ValidateCommandLine(string[] values)
|
||||
|
||||
if (values[0] == "inspect-ui")
|
||||
{
|
||||
ValidateOptions(values, 1, ["--output", "--timeout"], []);
|
||||
ValidateOptions(values, 1, ["--output", "--window-title", "--timeout"], []);
|
||||
return 30;
|
||||
}
|
||||
|
||||
@@ -564,7 +566,7 @@ static int ValidateCommandLine(string[] values)
|
||||
ValidateOptions(values, 2, ["--limit", "--scrolls", "--timeout"], ["--include-content"]);
|
||||
return 60;
|
||||
case "monitor":
|
||||
ValidateOptions(values, 2, ["--seconds", "--state-file", "--timeout"], ["--include-content"]);
|
||||
ValidateOptions(values, 2, ["--seconds", "--state-file", "--session", "--timeout"], ["--include-content", "--independent"]);
|
||||
return GetPositiveIntOption(values, "--seconds", 60, 86400) + 30;
|
||||
case "listen":
|
||||
ValidateOptions(values, 2, ["--seconds", "--timeout"], ["--include-content"]);
|
||||
@@ -716,13 +718,13 @@ static void PrintHelp() => Console.WriteLine("""
|
||||
WxAgent.Host commands:
|
||||
doctor [--timeout 30]
|
||||
diagnose --output <dir> [--baseline <ui-tree.json>] [--timeout 60]
|
||||
inspect-ui --output <path> [--timeout 30]
|
||||
inspect-ui --output <path> [--window-title <title>] [--timeout 30]
|
||||
smoke [--output <path>] [--timeout 30]
|
||||
m4-smoke [--timeout 60]
|
||||
m5-smoke [--timeout 60]
|
||||
tray-status [--timeout 30]
|
||||
window-status [--timeout 30]
|
||||
listener-smoke --output <new-dir> [--timeout 60]
|
||||
listener-smoke --output <new-dir> [--independent] [--timeout 60]
|
||||
recovery-smoke [--timeout 30]
|
||||
recover-ui [--timeout 30]
|
||||
stability-smoke [--seconds 15] [--sample-seconds 5] [--output <dir>]
|
||||
@@ -737,7 +739,7 @@ WxAgent.Host commands:
|
||||
chat send-image --path <image> [--timeout 60]
|
||||
chat read [--limit 20] [--include-content] [--timeout 30]
|
||||
chat history [--limit 100] [--scrolls 10] [--include-content] [--timeout 60]
|
||||
chat monitor [--seconds 60] [--state-file <path>] [--include-content] [--timeout <seconds>]
|
||||
chat monitor [--seconds 60] [--session <name>] [--independent] [--state-file <path>] [--include-content] [--timeout <seconds>]
|
||||
chat listen [--seconds 30] [--include-content] [--timeout <seconds>]
|
||||
session list [--timeout 30]
|
||||
session search --query <text> [--exact] [--timeout 30]
|
||||
|
||||
Reference in New Issue
Block a user