+/* RPL_LIST - "<channel> <# visible> :<topic>" */
+void EventStringifier::processIrcEvent322(IrcEvent *e) {
+ QString channelName;
+ quint32 userCount = 0;
+ QString topic;
+
+ switch(e->params().count()) {
+ case 3:
+ topic = e->params()[2];
+ case 2:
+ userCount = e->params()[1].toUInt();
+ case 1:
+ channelName = e->params()[0];
+ default:
+ break;
+ }
+ displayMsg(e, Message::Server, tr("Channel %1 has %2 users. Topic is: \"%3\"")
+ .arg(channelName).arg(userCount).arg(topic));
+}
+
+/* RPL_LISTEND ":End of LIST" */
+void EventStringifier::processIrcEvent323(IrcEvent *e) {
+ displayMsg(e, Message::Server, tr("End of channel list"));
+}
+
+/* RPL_??? - "<channel> <homepage> */
+void EventStringifier::processIrcEvent328(IrcEvent *e) {
+ if(!checkParamCount(e, 2))
+ return;
+
+ QString channel = e->params()[0];
+ displayMsg(e, Message::Topic, tr("Homepage for %1 is %2").arg(channel, e->params()[1]), QString(), channel);
+}
+
+/* RPL_??? - "<channel> <creation time (unix)>" */
+void EventStringifier::processIrcEvent329(IrcEvent *e) {
+ if(!checkParamCount(e, 2))
+ return;
+
+ QString channel = e->params()[0];
+ uint unixtime = e->params()[1].toUInt();
+ if(!unixtime) {
+ qWarning() << Q_FUNC_INFO << "received invalid timestamp:" << e->params()[1];
+ return;
+ }
+ QDateTime time = QDateTime::fromTime_t(unixtime);
+ displayMsg(e, Message::Topic, tr("Channel %1 created on %2").arg(channel, time.toString()), QString(), channel);
+}
+