online users counter fix

master
const an teen 2021-12-18 00:18:54 -05:00
parent a7e3b99298
commit aed027c21c
2 changed files with 7 additions and 9 deletions

View File

@ -317,6 +317,7 @@ void HttpServer::ircUsersOnline(QString server, QString channel, QStringList use
std::sort(plainNicks.begin(), plainNicks.end());
sortedNicknames += plainNicks;
}
sortedNicknames.removeAll("");
m_onlineUsers[server][channel] = sortedNicknames;
}
@ -594,10 +595,7 @@ void HttpServer::writeMainPage(QTcpSocket *socket, QString &urlPath, bool isHead
}
}
int currentOnline = m_onlineUsers[originalServerName][originalChannelName].size();
if (currentOnline > 0) currentOnline -= 1;
replaceTag(page, "ONLINE", QString::number(currentOnline));
int currentOnline = 0;
QString onlineUserS;
for (const auto &user: m_onlineUsers[originalServerName][originalChannelName]) {
if (QRegularExpression("^(@|\\&|\\+|~)?"+m_botsNick[originalServerName]+"$").match(user).hasMatch()) {
@ -606,7 +604,9 @@ void HttpServer::writeMainPage(QTcpSocket *socket, QString &urlPath, bool isHead
QString onlineUser = HTML_ONLINE_POINT;
replaceTag(onlineUser, "NICKNAME", user);
onlineUserS += onlineUser;
currentOnline++;
}
replaceTag(page, "ONLINE", QString::number(currentOnline));
replaceTag(page, "ONLINE_LIST", onlineUserS);
if (middlePath == "/") {

View File

@ -457,11 +457,9 @@ void IrcClient::process(const QString &message)
'@' /*operator*/, '%' /*half-op*/,
'+' /*voiced*/};
for (auto &ch: m_online) {
int removed = ch.second.removeAll(nickname);
if (removed == 0) {
for (const auto& p: prefixes) {
ch.second.removeAll(p+nickname);
}
ch.second.removeAll(nickname);
for (const auto& p: prefixes) {
ch.second.removeAll(p+nickname);
}
emit userOnline(m_connectionData.displayName, ch.first, ch.second);
}