make sure nicks are always unique

This commit is contained in:
emerson 2022-02-01 16:32:16 -05:00
parent ac936f8c11
commit 0d91166f01

View file

@ -52,16 +52,24 @@ export class IRCUser {
if (maybeMatrixUser) { if (maybeMatrixUser) {
return maybeMatrixUser; return maybeMatrixUser;
} }
let potentialNick = mxid.split(":")[0].substring(1); const localPart = mxid.split(":")[0].substring(1)
if (!this.nickToMatrixUser.has(localPart)) {
const newMatrixUser = new MatrixUser(mxid, localPart);
this.matrixUsers.set(mxid, newMatrixUser);
this.nickToMatrixUser.set(localPart, newMatrixUser);
return newMatrixUser;
}
const homeserver = mxid.split(":")[1];
const homeserverArray = homeserver.split('.');
const baseDomainNum = homeserverArray.length - 2;
let potentialNick = `${localPart}-${homeserverArray[baseDomainNum]}`;
if (!this.nickToMatrixUser.has(potentialNick)) { if (!this.nickToMatrixUser.has(potentialNick)) {
const newMatrixUser = new MatrixUser(mxid, potentialNick); const newMatrixUser = new MatrixUser(mxid, potentialNick);
this.matrixUsers.set(mxid, newMatrixUser); this.matrixUsers.set(mxid, newMatrixUser);
this.nickToMatrixUser.set(potentialNick, newMatrixUser); this.nickToMatrixUser.set(potentialNick, newMatrixUser);
return newMatrixUser; return newMatrixUser;
} }
const homeserverArray = mxid.split(":")[1].split('.'); potentialNick = `${localPart}-${homeserver}`;
const baseDomainNum = homeserverArray.length - 2;
potentialNick = `${potentialNick}-${homeserverArray[baseDomainNum]}`;
const newMatrixUser = new MatrixUser(mxid, potentialNick); const newMatrixUser = new MatrixUser(mxid, potentialNick);
this.matrixUsers.set(mxid, newMatrixUser); this.matrixUsers.set(mxid, newMatrixUser);
this.nickToMatrixUser.set(potentialNick, newMatrixUser); this.nickToMatrixUser.set(potentialNick, newMatrixUser);