mirror of
https://codeberg.org/emersion/gamja
synced 2025-03-13 07:48:37 +01:00
lib/irc: rename IRC prefix utilities
This commit is contained in:
parent
04c9f0211a
commit
283f8af4b1
@ -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];
|
||||
}));
|
||||
|
||||
|
11
lib/irc.js
11
lib/irc.js
@ -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");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user