Merge pull request #8 from NoiTheCat/features/text-processing
Rudimentary text processing for kicks, etc
This commit is contained in:
commit
ae9851d26f
5 changed files with 16 additions and 12 deletions
|
@ -89,6 +89,18 @@ public static class Utilities {
|
||||||
return result ?? input;
|
return result ?? input;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Given an input string, replaces certain special character combinations with information
|
||||||
|
/// from the specified message.
|
||||||
|
/// </summary>
|
||||||
|
public static string ProcessTextTokens(string input, SocketMessage m) {
|
||||||
|
// TODO elaborate on this
|
||||||
|
// For now, replaces all instances of @_ with the message sender.
|
||||||
|
return input
|
||||||
|
.Replace("@_", m.Author.Mention)
|
||||||
|
.Replace("@\\_", "@_");
|
||||||
|
}
|
||||||
|
|
||||||
/// <inheritdoc cref="GetDisplayableUsernameCommon"/>
|
/// <inheritdoc cref="GetDisplayableUsernameCommon"/>
|
||||||
public static string GetDisplayableUsername(this SocketUser user)
|
public static string GetDisplayableUsername(this SocketUser user)
|
||||||
=> GetDisplayableUsernameCommon(user.Username, user.Discriminator, user.GlobalName);
|
=> GetDisplayableUsernameCommon(user.Username, user.Discriminator, user.GlobalName);
|
||||||
|
|
|
@ -14,7 +14,7 @@ class Ban : BanKick {
|
||||||
// Ban: Unlike kick, the minimum required is just the target ID
|
// Ban: Unlike kick, the minimum required is just the target ID
|
||||||
var result = await Module.Bot.BanAsync(g, msg.Author.ToString(), targetId, PurgeDays, reason, SendNotify);
|
var result = await Module.Bot.BanAsync(g, msg.Author.ToString(), targetId, PurgeDays, reason, SendNotify);
|
||||||
if (result.OperationSuccess && SuccessMessage != null) {
|
if (result.OperationSuccess && SuccessMessage != null) {
|
||||||
var success = ProcessText(SuccessMessage, msg);
|
var success = Utilities.ProcessTextTokens(SuccessMessage, msg);
|
||||||
await msg.Channel.SendMessageAsync($"{success}\n{result.GetResultString(Module.Bot)}");
|
await msg.Channel.SendMessageAsync($"{success}\n{result.GetResultString(Module.Bot)}");
|
||||||
} else {
|
} else {
|
||||||
await msg.Channel.SendMessageAsync(result.GetResultString(Module.Bot));
|
await msg.Channel.SendMessageAsync(result.GetResultString(Module.Bot));
|
||||||
|
@ -35,7 +35,7 @@ class Kick : BanKick {
|
||||||
|
|
||||||
var result = await Module.Bot.KickAsync(g, msg.Author.ToString(), targetId, reason, SendNotify);
|
var result = await Module.Bot.KickAsync(g, msg.Author.ToString(), targetId, reason, SendNotify);
|
||||||
if (result.OperationSuccess && SuccessMessage != null) {
|
if (result.OperationSuccess && SuccessMessage != null) {
|
||||||
var success = ProcessText(SuccessMessage, msg);
|
var success = Utilities.ProcessTextTokens(SuccessMessage, msg);
|
||||||
await msg.Channel.SendMessageAsync($"{success}\n{result.GetResultString(Module.Bot)}");
|
await msg.Channel.SendMessageAsync($"{success}\n{result.GetResultString(Module.Bot)}");
|
||||||
} else {
|
} else {
|
||||||
await msg.Channel.SendMessageAsync(result.GetResultString(Module.Bot));
|
await msg.Channel.SendMessageAsync(result.GetResultString(Module.Bot));
|
||||||
|
|
|
@ -36,12 +36,4 @@ abstract class CommandConfig {
|
||||||
};
|
};
|
||||||
await target.SendMessageAsync(message ?? "", embed: usageEmbed.Build());
|
await target.SendMessageAsync(message ?? "", embed: usageEmbed.Build());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static string ProcessText(string input, SocketMessage m) {
|
|
||||||
// TODO elaborate on this
|
|
||||||
// For now, replaces all instances of @_ with the message sender.
|
|
||||||
return input
|
|
||||||
.Replace("@_", m.Author.Mention)
|
|
||||||
.Replace("@\\_", "@_");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ class Timeout : CommandConfig {
|
||||||
var result = await Module.Bot.SetTimeoutAsync(g, msg.Author.AsEntityNameString(), targetUser,
|
var result = await Module.Bot.SetTimeoutAsync(g, msg.Author.AsEntityNameString(), targetUser,
|
||||||
TimeSpan.FromMinutes(timeParam), reason, SendNotify);
|
TimeSpan.FromMinutes(timeParam), reason, SendNotify);
|
||||||
if (result.Success && SuccessMessage != null) {
|
if (result.Success && SuccessMessage != null) {
|
||||||
var success = ProcessText(SuccessMessage, msg);
|
var success = Utilities.ProcessTextTokens(SuccessMessage, msg);
|
||||||
await msg.Channel.SendMessageAsync($"{success}\n{result.ToResultString()}");
|
await msg.Channel.SendMessageAsync($"{success}\n{result.ToResultString()}");
|
||||||
} else {
|
} else {
|
||||||
await msg.Channel.SendMessageAsync(result.ToResultString());
|
await msg.Channel.SendMessageAsync(result.ToResultString());
|
||||||
|
|
|
@ -229,7 +229,7 @@ class ResponseExecutor {
|
||||||
return FromError("Channel or user were not correctly set in configuration.");
|
return FromError("Channel or user were not correctly set in configuration.");
|
||||||
}
|
}
|
||||||
if (targetCh == null) return FromError("Could not acquire target channel.");
|
if (targetCh == null) return FromError("Could not acquire target channel.");
|
||||||
await targetCh.SendMessageAsync(param[1]);
|
await targetCh.SendMessageAsync(Utilities.ProcessTextTokens(param[1], _msg));
|
||||||
return FromSuccess($"Sent to {(isUser ? "user DM" : $"<#{targetCh.Id}>")}.");
|
return FromSuccess($"Sent to {(isUser ? "user DM" : $"<#{targetCh.Id}>")}.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue