core: Remove slots from storage APIs
[quassel.git] / src / core / ircparser.cpp
index 2add78d..3be0a3f 100644 (file)
@@ -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,17 @@ void IrcParser::processNetworkIncoming(NetworkDataEvent* e)
         qDebug() << "IRC net" << net->networkId() << "<<" << tags << prefix << cmd << params;
     }
 
+    IrcTagKey serverTimeTag{"", "time", false};
+    if (tags.contains(serverTimeTag)) {
+        QDateTime serverTime = QDateTime::fromString(tags[serverTimeTag], "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[serverTimeTag];
+        }
+    }
+
     QList<Event*> events;
     EventManager::EventType type = EventManager::Invalid;