diff options
Diffstat (limited to 'events/event.cpp')
-rw-r--r-- | events/event.cpp | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/events/event.cpp b/events/event.cpp index 9a48108c..d05d666f 100644 --- a/events/event.cpp +++ b/events/event.cpp @@ -23,6 +23,7 @@ #include <QtCore/QDateTime> #include <QtCore/QDebug> +#include "../logging_util.h" #include "roommessageevent.h" #include "roomnameevent.h" #include "roomaliasesevent.h" @@ -110,36 +111,38 @@ Event* Event::fromJson(const QJsonObject& obj) } if( obj.value("type").toString() == "m.typing" ) { - qDebug() << "m.typing..."; return TypingEvent::fromJson(obj); } if( obj.value("type").toString() == "m.receipt" ) { return ReceiptEvent::fromJson(obj); } - //qDebug() << "Unknown event"; return UnknownEvent::fromJson(obj); } bool Event::parseJson(const QJsonObject& obj) { d->originalJson = QString::fromUtf8(QJsonDocument(obj).toJson()); - bool correct = true; - if( obj.contains("event_id") ) + bool correct = (d->type != EventType::Unknown); + if ( d->type != EventType::Unknown && d->type != EventType::Typing ) { - d->id = obj.value("event_id").toString(); - } else { - correct = false; - qDebug() << "Event: can't find event_id"; - } - if( obj.contains("origin_server_ts") ) - { - d->timestamp = QDateTime::fromMSecsSinceEpoch( - static_cast<qint64>(obj.value("origin_server_ts").toDouble()), Qt::UTC ); - } else { - correct = false; - qDebug() << "Event: can't find ts"; - //qDebug() << obj; + if( obj.contains("event_id") ) + { + d->id = obj.value("event_id").toString(); + } else { + correct = false; + qDebug() << "Event: can't find event_id"; + qDebug() << formatJson << obj; + } + if( obj.contains("origin_server_ts") ) + { + d->timestamp = QDateTime::fromMSecsSinceEpoch( + static_cast<qint64>(obj.value("origin_server_ts").toDouble()), Qt::UTC ); + } else { + correct = false; + qDebug() << "Event: can't find ts"; + qDebug() << formatJson << obj; + } } if( obj.contains("room_id") ) { |