search: add --case-sensitive/--cs flag; show nicknames in the results
This commit is contained in:
parent
fdd9bd93c5
commit
fbcf5d7cb8
1 changed files with 19 additions and 6 deletions
|
@ -215,12 +215,17 @@ export class UtilityPlugin extends ZeppelinPlugin<IUtilityPluginConfig> {
|
||||||
name: "sort",
|
name: "sort",
|
||||||
type: "string",
|
type: "string",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "case-sensitive",
|
||||||
|
type: "boolean",
|
||||||
|
shortcut: "cs",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
@d.permission("can_search")
|
@d.permission("can_search")
|
||||||
async searchCmd(
|
async searchCmd(
|
||||||
msg: Message,
|
msg: Message,
|
||||||
args: { query?: string; role?: string; page?: number; voice?: boolean; sort?: string },
|
args: { query?: string; role?: string; page?: number; voice?: boolean; sort?: string; "case-sensitive"?: boolean },
|
||||||
) {
|
) {
|
||||||
let matchingMembers = Array.from(this.guild.members.values());
|
let matchingMembers = Array.from(this.guild.members.values());
|
||||||
|
|
||||||
|
@ -240,12 +245,18 @@ export class UtilityPlugin extends ZeppelinPlugin<IUtilityPluginConfig> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args.query) {
|
if (args.query) {
|
||||||
const query = args.query.toLowerCase();
|
const query = args["case-sensitive"] ? args.query : args.query.toLowerCase();
|
||||||
|
|
||||||
matchingMembers = matchingMembers.filter(member => {
|
matchingMembers = matchingMembers.filter(member => {
|
||||||
const fullUsername = `${member.user.username}#${member.user.discriminator}`;
|
const nick = args["case-sensitive"] ? member.nick : member.nick && member.nick.toLowerCase();
|
||||||
if (member.nick && member.nick.toLowerCase().indexOf(query) !== -1) return true;
|
|
||||||
if (fullUsername.toLowerCase().indexOf(query) !== -1) return true;
|
const fullUsername = args["case-sensitive"]
|
||||||
|
? `${member.user.username}#${member.user.discriminator}`
|
||||||
|
: `${member.user.username}#${member.user.discriminator}`.toLowerCase();
|
||||||
|
|
||||||
|
if (nick && nick.indexOf(query) !== -1) return true;
|
||||||
|
if (fullUsername.indexOf(query) !== -1) return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -285,7 +296,9 @@ export class UtilityPlugin extends ZeppelinPlugin<IUtilityPluginConfig> {
|
||||||
const longestId = pageMembers.reduce((longest, member) => Math.max(longest, member.id.length), 0);
|
const longestId = pageMembers.reduce((longest, member) => Math.max(longest, member.id.length), 0);
|
||||||
const lines = pageMembers.map(member => {
|
const lines = pageMembers.map(member => {
|
||||||
const paddedId = member.id.padEnd(longestId, " ");
|
const paddedId = member.id.padEnd(longestId, " ");
|
||||||
return `${paddedId} ${member.user.username}#${member.user.discriminator}`;
|
let line = `${paddedId} ${member.user.username}#${member.user.discriminator}`;
|
||||||
|
if (member.nick) line += ` (${member.nick})`;
|
||||||
|
return line;
|
||||||
});
|
});
|
||||||
|
|
||||||
const footer = paginated ? "Use --page=n to browse results" : "";
|
const footer = paginated ? "Use --page=n to browse results" : "";
|
||||||
|
|
Loading…
Add table
Reference in a new issue