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) => {
|
this.setBufferState({ server: serverID, name: channel }, (buf) => {
|
||||||
var members = new irc.CaseMapMap(buf.members);
|
var members = new irc.CaseMapMap(buf.members);
|
||||||
membersList.forEach((s) => {
|
membersList.forEach((s) => {
|
||||||
var member = irc.parseMembership(s);
|
var member = irc.parseTargetPrefix(s);
|
||||||
members.set(member.nick, member.prefix);
|
members.set(member.name, member.prefix);
|
||||||
});
|
});
|
||||||
|
|
||||||
return { members };
|
return { members };
|
||||||
@ -1321,7 +1321,7 @@ export default class App extends Component {
|
|||||||
var chanmodes = client.isupport.get("CHANMODES") || irc.STD_CHANMODES;
|
var chanmodes = client.isupport.get("CHANMODES") || irc.STD_CHANMODES;
|
||||||
var prefix = client.isupport.get("PREFIX") || "";
|
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];
|
return [membership.mode, membership.prefix];
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@ -1376,7 +1376,7 @@ export default class App extends Component {
|
|||||||
var client = this.clients.get(serverID);
|
var client = this.clients.get(serverID);
|
||||||
var prefix = client.isupport.get("PREFIX") || "";
|
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];
|
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_SASLABORTED = "906";
|
||||||
export const ERR_SASLALREADY = "907";
|
export const ERR_SASLALREADY = "907";
|
||||||
|
|
||||||
|
export const STD_MEMBERSHIPS = "~&@%+";
|
||||||
export const STD_CHANNEL_TYPES = "#&+!";
|
export const STD_CHANNEL_TYPES = "#&+!";
|
||||||
export const STD_CHANMODES = "beI,k,l,imnst";
|
export const STD_CHANMODES = "beI,k,l,imnst";
|
||||||
|
|
||||||
@ -208,10 +209,9 @@ export function formatMessage(msg) {
|
|||||||
return s;
|
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
|
// TODO: use the PREFIX token from RPL_ISUPPORT
|
||||||
const STD_MEMBERSHIPS = "~&@%+";
|
|
||||||
|
|
||||||
var i;
|
var i;
|
||||||
for (i = 0; i < s.length; i++) {
|
for (i = 0; i < s.length; i++) {
|
||||||
if (STD_MEMBERSHIPS.indexOf(s[i]) < 0) {
|
if (STD_MEMBERSHIPS.indexOf(s[i]) < 0) {
|
||||||
@ -221,7 +221,7 @@ export function parseMembership(s) {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
prefix: s.slice(0, i),
|
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] !== "(") {
|
if (str[0] !== "(") {
|
||||||
throw new Error("malformed ISUPPORT PREFIX value: expected opening parenthesis");
|
throw new Error("malformed ISUPPORT PREFIX value: expected opening parenthesis");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user