Skip to content
Extraits de code Groupes Projets
Valider 348dcb27 rédigé par Will Hunt's avatar Will Hunt
Parcourir les fichiers

Fix more mention match cases for issue 46

parent f8a8e575
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -106,9 +106,12 @@ export class MessageProcessor {
public FindMentionsInPlainBody(body: string, members: Discord.GuildMember[]): string {
for (const member of members) {
const regex = new RegExp(`\\b(${escapeStringRegexp(member.displayName)})(?=\\b)` , "mg");
const matcher = escapeStringRegexp(member.user.username + "#" + member.user.discriminator) + "|" +
escapeStringRegexp(member.displayName);
body = body.replace(
regex, `<@!${member.id}>`,
new RegExp(
`\\b(${matcher})(?=\\b)`
, "mig"), `<@!${member.id}>`,
);
}
return body;
......
export class MockUser {
public id = "";
public username: string;
public discriminator: string;
constructor(id: string, username: string = "") {
this.id = id;
this.username = username;
......
......@@ -122,11 +122,17 @@ describe("MessageProcessor", () => {
user: {
username: "TestUsername",
id: "12345",
discriminator: "54321",
},
})];
const msg = "Hello TestUsername";
const content = processor.FindMentionsInPlainBody(msg, members);
Chai.assert.equal(content, "Hello <@!12345>");
Chai.assert.equal(
processor.FindMentionsInPlainBody("Hello TestUsername", members),
"Hello <@!12345>",
);
Chai.assert.equal(
processor.FindMentionsInPlainBody("Hello TestUsername#54321", members),
"Hello <@!12345>",
);
});
it("processes mentioned nickname correctly", async () => {
const processor = new MessageProcessor(new MessageProcessorOpts("localhost"), <DiscordBot> bot);
......@@ -148,6 +154,7 @@ describe("MessageProcessor", () => {
Chai.assert.equal(processor.FindMentionsInPlainBody("TestNickname: Hello", members), "<@!12345>: Hello");
Chai.assert.equal(processor.FindMentionsInPlainBody("TestNickname, Hello", members), "<@!12345>, Hello");
Chai.assert.equal(processor.FindMentionsInPlainBody("TestNickname Hello", members), "<@!12345> Hello");
Chai.assert.equal(processor.FindMentionsInPlainBody("testNicKName Hello", members), "<@!12345> Hello");
Chai.assert.equal(
processor.FindMentionsInPlainBody("I wish TestNickname was here", members),
"I wish <@!12345> was here",
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter