Add /me command

This commit is contained in:
Laura Hausmann 2023-01-15 03:08:14 +01:00
parent 35ec0d3f31
commit 6382f10dae
Signed by: zotan
GPG key ID: D044E84C5BE01605

View file

@ -29,6 +29,7 @@ namespace tgcli {
new CloseCommand(),
new EditCommand(),
new ReplyCommand(),
new MeCommand(),
new ReplyOffsetCommand(),
new ReplyDirectCommand(),
new HistoryCommand(),
@ -670,6 +671,43 @@ namespace tgcli {
}
}
public class MeCommand : Command {
public MeCommand() : base("me", "", "sends an action message", "<message>", -1) { }
public override void Handler(List<string> inputParams) {
try {
if (inputParams.Count == 0) {
lock (@lock)
messageQueue.Add($"{Ansi.Red}[tgcli] Invalid syntax, check /help for more information.");
return;
}
var message = inputParams.Aggregate((current, param) => current + " " + param).Trim();
if (currentChatId == 0) {
lock (@lock)
messageQueue.Add($"{Ansi.Red}[tgcli] No open chat, cannot continue.");
return;
}
if (string.IsNullOrWhiteSpace(message)) {
lock (@lock)
messageQueue.Add($"{Ansi.Red}[tgcli] No message specified, cannot continue.");
return;
}
var user = client.GetMeAsync().Result;
var username = user.Usernames?.ActiveUsernames?.FirstOrDefault() ?? user.FirstName;
SendMessage($"* {username} {message}", currentChatId);
}
catch {
lock (@lock)
messageQueue.Add($"{Ansi.Red}[tgcli] Unknown error sending action messsage.");
}
}
}
public class ReplyCommand : Command {
public ReplyCommand() : base("r", "", "matches message in history to reply to", "<message query>", -1) { }
@ -692,9 +730,7 @@ namespace tgcli {
var query = inputParams.Aggregate((current, param) => current + " " + param).Trim();
var result = history.Where(m => m.Content is TdApi.MessageContent.MessageText)
.FirstOrDefault(m => ((TdApi.MessageContent.MessageText) m.Content)
.Text.Text.ToLowerInvariant()
.Contains(query.ToLower()));
.FirstOrDefault(m => ((TdApi.MessageContent.MessageText)m.Content).Text.Text.ToLowerInvariant().Contains(query.ToLower()));
if (result == null) {
lock (@lock)