2using System.Text.RegularExpressions;
3using System.Threading.Tasks;
19 : base(
"^create\\s+key\\s+(?'Accounts'[1-9]\\d{0,7})\\s+\"(?'Owner'[^\"]+)\"(\\s+(?'EMail'[^\\s]+))?$")
26 public override string Name =>
"Create";
36 public override async Task
Execute(
ChatState State,
string[] Arguments,
string OrgMessage, Match Details,
39 int c = Arguments.Length;
41 if (c < 2 || !
int.TryParse(Arguments[1], out
int Accounts))
43 await ResponseCallback(
"Invalid number of accounts: \"" + Arguments[2] +
"\"",
string.Empty);
49 if (c < 3 ||
string.IsNullOrEmpty(Owner = Arguments[2]))
51 await ResponseCallback(
"Owner must be specified.",
string.Empty);
55 string EMail = c < 4 ? string.Empty : Arguments[3];
61 StringBuilder Markdown =
new StringBuilder();
63 Markdown.AppendLine(
"Information for user:");
64 Markdown.AppendLine();
65 Markdown.AppendLine(
"| API Key ||");
66 Markdown.AppendLine(
"|:----|:----|");
67 Markdown.Append(
"| Key: | `");
68 Markdown.Append(Key.Key);
69 Markdown.AppendLine(
"` |");
70 Markdown.Append(
"| Secret: | `");
71 Markdown.Append(Key.Secret);
72 Markdown.AppendLine(
"` |");
73 Markdown.Append(
"| \\#Accounts: | `");
74 Markdown.Append(Key.MaxAccounts.ToString());
75 Markdown.AppendLine(
"` |");
77 await ResponseCallback(Markdown.ToString(),
string.Empty);
88 new HelpItem(
"create key NRACCOUNTS \"OWNER\"[ EMAIL]",
"Creates a new API key. It can be used to create `NRACCOUNTS` accounts. The `OWNER` and `EMAIL` parameters provide extra information.")
Component managing accounts.
Contains information about one XMPP address.
CaseInsensitiveString BareJid
Bare JID
CreateKey()
Creates an API key.
override HelpItem[] GetHelp()
Gets help about the command.
override string Name
Command name
override async Task Execute(ChatState State, string[] Arguments, string OrgMessage, Match Details, ResponseCallbackHandler ResponseCallback)
Executes the command.
An administrative command whose syntax is validated with a regular expression.
Contains an item of information about a command.
delegate Task< string > ResponseCallbackHandler(string Markdown, string MessageId)
Delegate for response callback handler methods.