Parse RPL_MYINFO

This commit is contained in:
Simon Ser 2020-06-26 12:08:14 +02:00
parent 57ed3a13a3
commit 1807f29d2d
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48
3 changed files with 20 additions and 5 deletions

View File

@ -122,6 +122,7 @@ export default class App extends Component {
buffers.set(name, { buffers.set(name, {
name, name,
type, type,
serverInfo: null, // if server
topic: null, // if channel topic: null, // if channel
who: null, // if nick who: null, // if nick
members: new Map(), members: new Map(),
@ -219,6 +220,14 @@ export default class App extends Component {
}); });
} }
break; break;
case irc.RPL_MYINFO:
// TODO: parse available modes
var serverInfo = {
name: msg.params[1],
version: msg.params[2],
};
this.setBufferState(SERVER_BUFFER, { serverInfo });
break;
case irc.RPL_TOPIC: case irc.RPL_TOPIC:
var channel = msg.params[1]; var channel = msg.params[1];
var topic = msg.params[2]; var topic = msg.params[2];
@ -488,7 +497,7 @@ export default class App extends Component {
} }
var topbar = null; var topbar = null;
if (activeBuffer && activeBuffer.type != BufferType.SERVER) { if (activeBuffer) {
topbar = html` topbar = html`
<section id="topbar"> <section id="topbar">
<${BufferHeader} buffer=${activeBuffer} onClose=${() => this.close(activeBuffer.name)}/> <${BufferHeader} buffer=${activeBuffer} onClose=${() => this.close(activeBuffer.name)}/>

View File

@ -8,11 +8,14 @@ export default function BufferHeader(props) {
} }
var description = null; var description = null;
if (props.buffer.topic) { if (props.buffer.serverInfo) {
description = html`<span class="description">${props.buffer.topic}</span>`; var serverInfo = props.buffer.serverInfo;
description = `Connected to ${serverInfo.name}`;
} else if (props.buffer.topic) {
description = props.buffer.topic;
} else if (props.buffer.who) { } else if (props.buffer.who) {
var who = props.buffer.who; var who = props.buffer.who;
description = html`<span class="description">${who.realname} (${who.username}@${who.hostname})</span>`; description = `${who.realname} (${who.username}@${who.hostname})`;
} }
var closeText = "Close"; var closeText = "Close";
@ -26,7 +29,7 @@ export default function BufferHeader(props) {
} }
return html` return html`
${description} <span class="description">${description}</span>
<span class="actions"> <span class="actions">
<a href="#" onClick=${handlePartClick}>${closeText}</a> <a href="#" onClick=${handlePartClick}>${closeText}</a>
</span> </span>

View File

@ -1,4 +1,7 @@
export const RPL_WELCOME = "001"; export const RPL_WELCOME = "001";
export const RPL_YOURHOST = "002";
export const RPL_CREATED = "003";
export const RPL_MYINFO = "004";
export const RPL_ENDOFWHO = "315"; export const RPL_ENDOFWHO = "315";
export const RPL_TOPIC = "332"; export const RPL_TOPIC = "332";
export const RPL_WHOREPLY = "352"; export const RPL_WHOREPLY = "352";