X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fircparser.cpp;h=ccd395056e8eb89d2f0ec524c61701688ca9890e;hb=95f6cd0e720266733858d56b295548418cb86039;hp=2add78d7a689a255297ee4dcbd125c5b97737f48;hpb=edc55b1f86cf613a332eeeb5d85537a54120dfa5;p=quassel.git diff --git a/src/core/ircparser.cpp b/src/core/ircparser.cpp index 2add78d7..ccd39505 100644 --- a/src/core/ircparser.cpp +++ b/src/core/ircparser.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2019 by the Quassel Project * + * Copyright (C) 2005-2020 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -119,6 +119,16 @@ void IrcParser::processNetworkIncoming(NetworkDataEvent* e) qDebug() << "IRC net" << net->networkId() << "<<" << tags << prefix << cmd << params; } + if (net->capEnabled(IrcCap::SERVER_TIME) && tags.contains(IrcTags::SERVER_TIME)) { + QDateTime serverTime = QDateTime::fromString(tags[IrcTags::SERVER_TIME], "yyyy-MM-ddThh:mm:ss.zzzZ"); + serverTime.setTimeSpec(Qt::UTC); + if (serverTime.isValid()) { + e->setTimestamp(serverTime); + } else { + qDebug() << "Invalid timestamp from server-time tag:" << tags[IrcTags::SERVER_TIME]; + } + } + QList events; EventManager::EventType type = EventManager::Invalid;