lib/irc: rename IRC prefix utilities

This commit is contained in:
Simon Ser 2021-06-03 13:18:28 +02:00
parent 04c9f0211a
commit 283f8af4b1
2 changed files with 10 additions and 9 deletions

View File

@ -708,8 +708,8 @@ export default class App extends Component {
this.setBufferState({ server: serverID, name: channel }, (buf) => {
var members = new irc.CaseMapMap(buf.members);
membersList.forEach((s) => {
var member = irc.parseMembership(s);
members.set(member.nick, member.prefix);
var member = irc.parseTargetPrefix(s);
members.set(member.name, member.prefix);
});
return { members };
@ -1321,7 +1321,7 @@ export default class App extends Component {
var chanmodes = client.isupport.get("CHANMODES") || irc.STD_CHANMODES;
var prefix = client.isupport.get("PREFIX") || "";
var prefixByMode = new Map(irc.parseMemberships(prefix).map((membership) => {
var prefixByMode = new Map(irc.parseMembershipModes(prefix).map((membership) => {
return [membership.mode, membership.prefix];
}));
@ -1376,7 +1376,7 @@ export default class App extends Component {
var client = this.clients.get(serverID);
var prefix = client.isupport.get("PREFIX") || "";
var prefixPrivs = new Map(irc.parseMemberships(prefix).map((membership, i) => {
var prefixPrivs = new Map(irc.parseMembershipModes(prefix).map((membership, i) => {
return [membership.prefix, i];
}));

View File

@ -42,6 +42,7 @@ export const ERR_SASLTOOLONG = "905";
export const ERR_SASLABORTED = "906";
export const ERR_SASLALREADY = "907";
export const STD_MEMBERSHIPS = "~&@%+";
export const STD_CHANNEL_TYPES = "#&+!";
export const STD_CHANMODES = "beI,k,l,imnst";
@ -208,10 +209,9 @@ export function formatMessage(msg) {
return s;
}
export function parseMembership(s) {
/** Split a prefix and a name out of a target. */
export function parseTargetPrefix(s) {
// TODO: use the PREFIX token from RPL_ISUPPORT
const STD_MEMBERSHIPS = "~&@%+";
var i;
for (i = 0; i < s.length; i++) {
if (STD_MEMBERSHIPS.indexOf(s[i]) < 0) {
@ -221,7 +221,7 @@ export function parseMembership(s) {
return {
prefix: s.slice(0, i),
nick: s.slice(i),
name: s.slice(i),
};
}
@ -514,7 +514,8 @@ export class CaseMapMap {
}
}
export function parseMemberships(str) {
/** Parse the ISUPPORT PREFIX token */
export function parseMembershipModes(str) {
if (str[0] !== "(") {
throw new Error("malformed ISUPPORT PREFIX value: expected opening parenthesis");
}