mirror of
https://git.sr.ht/~emersion/gamja
synced 2024-11-14 19:25:26 -05:00
Add support for RPL_ISUPPORT
This commit is contained in:
parent
4acacc1f22
commit
b3f8b0c97d
2 changed files with 28 additions and 0 deletions
|
@ -450,6 +450,7 @@ export default class App extends Component {
|
|||
networks.set(netID, {
|
||||
id: netID,
|
||||
status: Status.CONNECTING,
|
||||
isupport: new Map(),
|
||||
});
|
||||
return { networks };
|
||||
});
|
||||
|
@ -548,6 +549,14 @@ export default class App extends Component {
|
|||
};
|
||||
this.setBufferState({ network: netID, name: SERVER_BUFFER}, { serverInfo });
|
||||
break;
|
||||
case irc.RPL_ISUPPORT:
|
||||
var tokens = msg.params.slice(1, -1);
|
||||
this.setNetworkState(netID, (network) => {
|
||||
var isupport = new Map(network.isupport);
|
||||
irc.parseISUPPORT(tokens, isupport);
|
||||
return { isupport };
|
||||
});
|
||||
break;
|
||||
case irc.RPL_NOTOPIC:
|
||||
var channel = msg.params[1];
|
||||
|
||||
|
|
19
lib/irc.js
19
lib/irc.js
|
@ -3,6 +3,7 @@ export const RPL_WELCOME = "001";
|
|||
export const RPL_YOURHOST = "002";
|
||||
export const RPL_CREATED = "003";
|
||||
export const RPL_MYINFO = "004";
|
||||
export const RPL_ISUPPORT = "005";
|
||||
export const RPL_ENDOFWHO = "315";
|
||||
export const RPL_NOTOPIC = "331";
|
||||
export const RPL_TOPIC = "332";
|
||||
|
@ -313,3 +314,21 @@ export function parseCTCP(msg) {
|
|||
ctcp.command = ctcp.command.toUpperCase();
|
||||
return ctcp;
|
||||
}
|
||||
|
||||
export function parseISUPPORT(tokens, params) {
|
||||
tokens.forEach((tok) => {
|
||||
if (tok.startsWith("-")) {
|
||||
var k = tok.slice(1);
|
||||
params.delete(k.toUpperCase());
|
||||
return;
|
||||
}
|
||||
|
||||
var i = tok.indexOf("=");
|
||||
var k = tok, v = "";
|
||||
if (i >= 0) {
|
||||
k = tok.slice(0, i);
|
||||
v = tok.slice(i + 1);
|
||||
}
|
||||
params.set(k.toUpperCase(), v);
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue