forked from cadence/out-of-your-element
Compare commits
2 commits
e146faced1
...
5a0e7f6a66
| Author | SHA1 | Date | |
|---|---|---|---|
| 5a0e7f6a66 | |||
| ea261e825b |
3 changed files with 14 additions and 5 deletions
|
|
@ -20,10 +20,10 @@ const SPECIAL_USER_MAPPINGS = new Map([
|
|||
function downcaseUsername(user) {
|
||||
// First, try to convert the username to the set of allowed characters
|
||||
let downcased = user.username.toLowerCase()
|
||||
// spaces to underscores...
|
||||
.replace(/ /g, "_")
|
||||
// spaces and slashes to underscores...
|
||||
.replace(/[ /]/g, "_")
|
||||
// remove disallowed characters...
|
||||
.replace(/[^a-z0-9._=/-]*/g, "")
|
||||
.replace(/[^a-z0-9._=-]*/g, "")
|
||||
// remove leading and trailing dashes and underscores...
|
||||
.replace(/(?:^[_-]*|[_-]*$)/g, "")
|
||||
// If requested, also make the Discord user ID part of the username
|
||||
|
|
|
|||
|
|
@ -21,8 +21,12 @@ test("user2name: works on single emoji at the end", t => {
|
|||
t.equal(userToSimName({username: "Melody 🎵", discriminator: "2192"}), "melody")
|
||||
})
|
||||
|
||||
test("user2name: works on crazy name", t => {
|
||||
t.equal(userToSimName({username: "*** D3 &W (89) _7//-", discriminator: "0001"}), "d3_w_89__7//")
|
||||
test("user2name: works on really weird name", t => {
|
||||
t.equal(userToSimName({username: "*** D3 &W (89) _7//-", discriminator: "0001"}), "d3_w_89__7")
|
||||
})
|
||||
|
||||
test("user2name: treats slashes", t => {
|
||||
t.equal(userToSimName({username: "Evil Lillith (she/her)", discriminator: "5892"}), "evil_lillith_she_her")
|
||||
})
|
||||
|
||||
test("user2name: adds discriminator if name is unavailable (old tag format)", t => {
|
||||
|
|
|
|||
5
src/db/migrations/0034-slash-not-allowed-in-mxid.sql
Normal file
5
src/db/migrations/0034-slash-not-allowed-in-mxid.sql
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
BEGIN TRANSACTION;
|
||||
|
||||
DELETE FROM sim WHERE sim_name like '%/%';
|
||||
|
||||
COMMIT;
|
||||
Loading…
Add table
Add a link
Reference in a new issue