From 170b5eeecd86b574bf3b6270f43c84ad62d015ea Mon Sep 17 00:00:00 2001 From: kssytsrk Date: Mon, 9 Aug 2021 19:33:56 +0300 Subject: [PATCH 01/11] added basic OMEMO-encrypted MUCs logging functionality, still has bugs --- generic/omemoplugin/src/omemoplugin.cpp | 63 +++++++++++++++++++++++++ generic/omemoplugin/src/omemoplugin.h | 1 + 2 files changed, 64 insertions(+) diff --git a/generic/omemoplugin/src/omemoplugin.cpp b/generic/omemoplugin/src/omemoplugin.cpp index 91e29327..7124fa21 100644 --- a/generic/omemoplugin/src/omemoplugin.cpp +++ b/generic/omemoplugin/src/omemoplugin.cpp @@ -235,6 +235,24 @@ bool OMEMOPlugin::decryptMessageElement(int account, QDomElement &message) processEncryptedFile(account, message); } + if (message.attribute("type") == "groupchat" && message.attribute("from") != m_accountInfo->getJid(account)) { + QString from = message.attribute("from"); + QStringList List = from.split("/"); + QString room = List.takeFirst(); + if (!List.isEmpty()) { + from = List.join("/"); + } + QString Stamp = ""; + Stamp = message.firstChildElement("x").attribute("stamp"); + QDomElement body = message.firstChildElement("body"); + if (!body.isNull()) { + QString Text = body.text(); + QString MyJid = m_accountInfo->getJid(account); + MyJid = MyJid.replace("@", "_at_"); + logMuc(room, from, MyJid, Text, Stamp); + } + } + return true; } @@ -330,6 +348,24 @@ bool OMEMOPlugin::encryptMessageElement(int account, QDomElement &message) return false; } + if (message.attribute("type") == "groupchat") { + QString from = message.attribute("from"); + QStringList List = from.split("/"); + QString room = List.takeFirst(); + if (!List.isEmpty()) { + from = List.join("/"); + } + QString Stamp = ""; + Stamp = message.firstChildElement("x").attribute("stamp"); + QDomElement body = message.firstChildElement("body"); + if (!body.isNull()) { + QString Text = body.text(); + QString MyJid = m_accountInfo->getJid(account); + MyJid = MyJid.replace("@", "_at_"); + logMuc(room, from, MyJid, Text, Stamp); + } + } + return m_omemo->encryptMessage(m_accountInfo->getJid(account), account, message); } @@ -544,4 +580,31 @@ bool OMEMOPlugin::execute(int account, const QHash &args, QHa return false; } + +void OMEMOPlugin::logMuc(QString room, const QString &from, const QString &myJid, + const QString &text, QString stamp) +{ + room = room.replace("@", "_at_"); + room = "_in_" + room; + if (stamp.isEmpty()) { + stamp = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); + } else { + stamp.insert(4, "-"); + stamp.insert(7, "-"); + stamp.replace("T", " "); + } + QFile file(m_applicationInfo->appHistoryDir() + QDir::separator() + myJid + room + ".conferencehistory"); + if (file.open(QIODevice::WriteOnly | QIODevice::Append)) { + QTextStream out(&file); + // out.seek(file.size()); + out.setCodec("UTF-8"); + out.setGenerateByteOrderMark(false); +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + out << stamp << " " << from << ": " << text << Qt::endl; +#else + out << stamp << " " << from << ": " << text << endl; +#endif + } + qDebug() << "OMEMO MUC logger: logged"; +} } diff --git a/generic/omemoplugin/src/omemoplugin.h b/generic/omemoplugin/src/omemoplugin.h index fd89eb6f..092426e1 100644 --- a/generic/omemoplugin/src/omemoplugin.h +++ b/generic/omemoplugin/src/omemoplugin.h @@ -133,6 +133,7 @@ private slots: void updateAction(int account, const QString &user); void processEncryptedFile(int account, QDomElement &xml); void showOwnFingerprint(int account, const QString &jid); + void logMuc(QString room, const QString &from, const QString &myJid, const QString &text, QString stamp); private: bool m_enabled = false; From 641a4467c6806960a4d20873907e8ebc1f2bcee5 Mon Sep 17 00:00:00 2001 From: kssytsrk Date: Tue, 10 Aug 2021 22:01:37 +0300 Subject: [PATCH 02/11] attempt to fix conference logger plugin --- generic/conferenceloggerplugin/conferenceloggerplugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/conferenceloggerplugin/conferenceloggerplugin.cpp b/generic/conferenceloggerplugin/conferenceloggerplugin.cpp index 695c0fb2..e7ad3e45 100644 --- a/generic/conferenceloggerplugin/conferenceloggerplugin.cpp +++ b/generic/conferenceloggerplugin/conferenceloggerplugin.cpp @@ -186,7 +186,7 @@ bool ConferenceLogger::incomingStanza(int account, const QDomElement &stanza) { if (enabled) { if (stanza.tagName() == "message") { - if (stanza.attribute("type") == "groupchat") { + if (stanza.attribute("type") == "groupchat" && !stanza.firstChildElement("encrypted")) { QString from = stanza.attribute("from"); QStringList List = from.split("/"); QString room = List.takeFirst(); From c3a7991ddeae32d0777214041f401ff96b7ebd69 Mon Sep 17 00:00:00 2001 From: kssytsrk Date: Tue, 10 Aug 2021 22:02:10 +0300 Subject: [PATCH 03/11] clean up --- generic/omemoplugin/src/omemoplugin.cpp | 55 +++++++++++-------------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/generic/omemoplugin/src/omemoplugin.cpp b/generic/omemoplugin/src/omemoplugin.cpp index 7124fa21..73487ed9 100644 --- a/generic/omemoplugin/src/omemoplugin.cpp +++ b/generic/omemoplugin/src/omemoplugin.cpp @@ -236,21 +236,21 @@ bool OMEMOPlugin::decryptMessageElement(int account, QDomElement &message) } if (message.attribute("type") == "groupchat" && message.attribute("from") != m_accountInfo->getJid(account)) { - QString from = message.attribute("from"); - QStringList List = from.split("/"); - QString room = List.takeFirst(); - if (!List.isEmpty()) { - from = List.join("/"); - } - QString Stamp = ""; - Stamp = message.firstChildElement("x").attribute("stamp"); - QDomElement body = message.firstChildElement("body"); - if (!body.isNull()) { - QString Text = body.text(); - QString MyJid = m_accountInfo->getJid(account); - MyJid = MyJid.replace("@", "_at_"); - logMuc(room, from, MyJid, Text, Stamp); - } + QString from = message.attribute("from"); + QStringList List = from.split("/"); + QString room = List.takeFirst(); + if (!List.isEmpty()) { + from = List.join("/"); + } + QString Stamp = ""; + Stamp = message.firstChildElement("x").attribute("stamp"); + QDomElement body = message.firstChildElement("body"); + if (!body.isNull()) { + QString Text = body.text(); + QString MyJid = m_accountInfo->getJid(account); + MyJid = MyJid.replace("@", "_at_"); + logMuc(room, from, MyJid, Text, Stamp); + } } return true; @@ -349,21 +349,16 @@ bool OMEMOPlugin::encryptMessageElement(int account, QDomElement &message) } if (message.attribute("type") == "groupchat") { - QString from = message.attribute("from"); - QStringList List = from.split("/"); - QString room = List.takeFirst(); - if (!List.isEmpty()) { - from = List.join("/"); - } - QString Stamp = ""; - Stamp = message.firstChildElement("x").attribute("stamp"); - QDomElement body = message.firstChildElement("body"); - if (!body.isNull()) { - QString Text = body.text(); - QString MyJid = m_accountInfo->getJid(account); - MyJid = MyJid.replace("@", "_at_"); - logMuc(room, from, MyJid, Text, Stamp); - } + QString from = m_accountInfo->getName(account); + QString room = message.attribute("to"); + QString Stamp = message.firstChildElement("x").attribute("stamp"); + QDomElement body = message.firstChildElement("body"); + if (!body.isNull()) { + QString Text = body.text(); + QString MyJid = m_accountInfo->getJid(account); + MyJid = MyJid.replace("@", "_at_"); + logMuc(room, from, MyJid, Text, Stamp); + } } return m_omemo->encryptMessage(m_accountInfo->getJid(account), account, message); From 09b46268e210471a365d5c68395cb1d6e1b667cb Mon Sep 17 00:00:00 2001 From: kssytsrk Date: Thu, 12 Aug 2021 18:24:49 +0300 Subject: [PATCH 04/11] fix logger plugin --- generic/conferenceloggerplugin/conferenceloggerplugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/conferenceloggerplugin/conferenceloggerplugin.cpp b/generic/conferenceloggerplugin/conferenceloggerplugin.cpp index e7ad3e45..dffed52a 100644 --- a/generic/conferenceloggerplugin/conferenceloggerplugin.cpp +++ b/generic/conferenceloggerplugin/conferenceloggerplugin.cpp @@ -186,7 +186,7 @@ bool ConferenceLogger::incomingStanza(int account, const QDomElement &stanza) { if (enabled) { if (stanza.tagName() == "message") { - if (stanza.attribute("type") == "groupchat" && !stanza.firstChildElement("encrypted")) { + if (stanza.attribute("type") == "groupchat" && stanza.firstChildElement("encrypted").isNull()) { QString from = stanza.attribute("from"); QStringList List = from.split("/"); QString room = List.takeFirst(); From 71a5e0ac51bd49b328c420bae0e0b4f7ab40fc02 Mon Sep 17 00:00:00 2001 From: kssytsrk Date: Thu, 12 Aug 2021 18:25:23 +0300 Subject: [PATCH 05/11] made OMEMO plugin display right MUC nicks --- generic/omemoplugin/src/omemoplugin.cpp | 34 +++++++++++++++---------- generic/omemoplugin/src/omemoplugin.h | 1 + 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/generic/omemoplugin/src/omemoplugin.cpp b/generic/omemoplugin/src/omemoplugin.cpp index 73487ed9..f786fa33 100644 --- a/generic/omemoplugin/src/omemoplugin.cpp +++ b/generic/omemoplugin/src/omemoplugin.cpp @@ -235,21 +235,23 @@ bool OMEMOPlugin::decryptMessageElement(int account, QDomElement &message) processEncryptedFile(account, message); } - if (message.attribute("type") == "groupchat" && message.attribute("from") != m_accountInfo->getJid(account)) { + if (message.attribute("type") == "groupchat") { QString from = message.attribute("from"); QStringList List = from.split("/"); QString room = List.takeFirst(); if (!List.isEmpty()) { from = List.join("/"); } - QString Stamp = ""; - Stamp = message.firstChildElement("x").attribute("stamp"); - QDomElement body = message.firstChildElement("body"); - if (!body.isNull()) { - QString Text = body.text(); - QString MyJid = m_accountInfo->getJid(account); - MyJid = MyJid.replace("@", "_at_"); - logMuc(room, from, MyJid, Text, Stamp); + if (from != m_mucNicks[room]) { + QString Stamp = ""; + Stamp = message.firstChildElement("x").attribute("stamp"); + QDomElement body = message.firstChildElement("body"); + if (!body.isNull()) { + QString Text = body.text(); + QString MyJid = m_accountInfo->getJid(account); + MyJid = MyJid.replace("@", "_at_"); + logMuc(room, from, MyJid, Text, Stamp); + } } } @@ -331,8 +333,15 @@ bool OMEMOPlugin::outgoingStanza(int account, QDomElement &xml) return false; } - if (xml.nodeName() == "presence" && !xml.hasAttributes()) { - m_omemo->accountConnected(account, m_accountInfo->getJid(account)); + if (xml.nodeName() == "presence") { + if (!xml.hasAttributes()) + m_omemo->accountConnected(account, m_accountInfo->getJid(account)); + else + { + QStringList room_nick = xml.attribute("to").split("/"); + m_mucNicks.insert(room_nick[0], room_nick[1]); + } + } return false; @@ -349,8 +358,8 @@ bool OMEMOPlugin::encryptMessageElement(int account, QDomElement &message) } if (message.attribute("type") == "groupchat") { - QString from = m_accountInfo->getName(account); QString room = message.attribute("to"); + QString from = m_mucNicks[room]; QString Stamp = message.firstChildElement("x").attribute("stamp"); QDomElement body = message.firstChildElement("body"); if (!body.isNull()) { @@ -591,7 +600,6 @@ void OMEMOPlugin::logMuc(QString room, const QString &from, const QString &myJid QFile file(m_applicationInfo->appHistoryDir() + QDir::separator() + myJid + room + ".conferencehistory"); if (file.open(QIODevice::WriteOnly | QIODevice::Append)) { QTextStream out(&file); - // out.seek(file.size()); out.setCodec("UTF-8"); out.setGenerateByteOrderMark(false); #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) diff --git a/generic/omemoplugin/src/omemoplugin.h b/generic/omemoplugin/src/omemoplugin.h index 092426e1..b6433b86 100644 --- a/generic/omemoplugin/src/omemoplugin.h +++ b/generic/omemoplugin/src/omemoplugin.h @@ -148,6 +148,7 @@ private slots: EventCreatingHost * m_eventCreator = nullptr; PsiAccountControllingHost * m_accountController = nullptr; OptionAccessingHost * m_optionHost = nullptr; + QMap m_mucNicks; }; } #endif // PSIOMEMO_OMEMOPLUGIN_H From 55b6939ac2e28d2c83e1678e294c6d6e762f5ecc Mon Sep 17 00:00:00 2001 From: kssytsrk Date: Thu, 12 Aug 2021 18:51:43 +0300 Subject: [PATCH 06/11] fixed bug where OMEMO logs outgoing message even if not supposed to be encrypted --- generic/omemoplugin/src/omemoplugin.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/generic/omemoplugin/src/omemoplugin.cpp b/generic/omemoplugin/src/omemoplugin.cpp index f786fa33..3fef715a 100644 --- a/generic/omemoplugin/src/omemoplugin.cpp +++ b/generic/omemoplugin/src/omemoplugin.cpp @@ -360,13 +360,15 @@ bool OMEMOPlugin::encryptMessageElement(int account, QDomElement &message) if (message.attribute("type") == "groupchat") { QString room = message.attribute("to"); QString from = m_mucNicks[room]; - QString Stamp = message.firstChildElement("x").attribute("stamp"); - QDomElement body = message.firstChildElement("body"); - if (!body.isNull()) { - QString Text = body.text(); - QString MyJid = m_accountInfo->getJid(account); - MyJid = MyJid.replace("@", "_at_"); - logMuc(room, from, MyJid, Text, Stamp); + if (m_omemo->isEnabledForUser(account, room)) { + QString Stamp = message.firstChildElement("x").attribute("stamp"); + QDomElement body = message.firstChildElement("body"); + if (!body.isNull()) { + QString Text = body.text(); + QString MyJid = m_accountInfo->getJid(account); + MyJid = MyJid.replace("@", "_at_"); + logMuc(room, from, MyJid, Text, Stamp); + } } } From 5d138f01cd452dde8df0f01a0793cab23f26278f Mon Sep 17 00:00:00 2001 From: kssytsrk Date: Thu, 12 Aug 2021 18:52:26 +0300 Subject: [PATCH 07/11] clean up --- generic/omemoplugin/src/omemoplugin.cpp | 39 ++++++++++++------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/generic/omemoplugin/src/omemoplugin.cpp b/generic/omemoplugin/src/omemoplugin.cpp index 3fef715a..adbc90c9 100644 --- a/generic/omemoplugin/src/omemoplugin.cpp +++ b/generic/omemoplugin/src/omemoplugin.cpp @@ -243,8 +243,7 @@ bool OMEMOPlugin::decryptMessageElement(int account, QDomElement &message) from = List.join("/"); } if (from != m_mucNicks[room]) { - QString Stamp = ""; - Stamp = message.firstChildElement("x").attribute("stamp"); + QString Stamp = message.firstChildElement("x").attribute("stamp"); QDomElement body = message.firstChildElement("body"); if (!body.isNull()) { QString Text = body.text(); @@ -590,26 +589,26 @@ bool OMEMOPlugin::execute(int account, const QHash &args, QHa void OMEMOPlugin::logMuc(QString room, const QString &from, const QString &myJid, const QString &text, QString stamp) { - room = room.replace("@", "_at_"); - room = "_in_" + room; - if (stamp.isEmpty()) { - stamp = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); - } else { - stamp.insert(4, "-"); - stamp.insert(7, "-"); - stamp.replace("T", " "); - } - QFile file(m_applicationInfo->appHistoryDir() + QDir::separator() + myJid + room + ".conferencehistory"); - if (file.open(QIODevice::WriteOnly | QIODevice::Append)) { - QTextStream out(&file); - out.setCodec("UTF-8"); - out.setGenerateByteOrderMark(false); + room = room.replace("@", "_at_"); + room = "_in_" + room; + if (stamp.isEmpty()) { + stamp = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); + } else { + stamp.insert(4, "-"); + stamp.insert(7, "-"); + stamp.replace("T", " "); + } + QFile file(m_applicationInfo->appHistoryDir() + QDir::separator() + myJid + room + ".conferencehistory"); + if (file.open(QIODevice::WriteOnly | QIODevice::Append)) { + QTextStream out(&file); + out.setCodec("UTF-8"); + out.setGenerateByteOrderMark(false); #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) - out << stamp << " " << from << ": " << text << Qt::endl; + out << stamp << " " << from << ": " << text << Qt::endl; #else - out << stamp << " " << from << ": " << text << endl; + out << stamp << " " << from << ": " << text << endl; #endif - } - qDebug() << "OMEMO MUC logger: logged"; + } + qDebug() << "OMEMO MUC logger: logged"; } } From 78801f0493633d901b92a1def7ab39aa7335830f Mon Sep 17 00:00:00 2001 From: kssytsrk Date: Thu, 12 Aug 2021 18:57:08 +0300 Subject: [PATCH 08/11] removed unneeded qdebug call --- generic/omemoplugin/src/omemoplugin.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/generic/omemoplugin/src/omemoplugin.cpp b/generic/omemoplugin/src/omemoplugin.cpp index adbc90c9..3f0d820f 100644 --- a/generic/omemoplugin/src/omemoplugin.cpp +++ b/generic/omemoplugin/src/omemoplugin.cpp @@ -609,6 +609,5 @@ void OMEMOPlugin::logMuc(QString room, const QString &from, const QString &myJid out << stamp << " " << from << ": " << text << endl; #endif } - qDebug() << "OMEMO MUC logger: logged"; } } From 05db4024c8e6ca96bae4b341a9012a01c8d18510 Mon Sep 17 00:00:00 2001 From: kssytsrk Date: Thu, 12 Aug 2021 19:03:42 +0300 Subject: [PATCH 09/11] added comments --- generic/omemoplugin/src/omemoplugin.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/generic/omemoplugin/src/omemoplugin.cpp b/generic/omemoplugin/src/omemoplugin.cpp index 3f0d820f..a7c3ff4d 100644 --- a/generic/omemoplugin/src/omemoplugin.cpp +++ b/generic/omemoplugin/src/omemoplugin.cpp @@ -235,6 +235,7 @@ bool OMEMOPlugin::decryptMessageElement(int account, QDomElement &message) processEncryptedFile(account, message); } + // logging functionality for OMEMO-encrypted groupchats if (message.attribute("type") == "groupchat") { QString from = message.attribute("from"); QStringList List = from.split("/"); @@ -335,8 +336,9 @@ bool OMEMOPlugin::outgoingStanza(int account, QDomElement &xml) if (xml.nodeName() == "presence") { if (!xml.hasAttributes()) m_omemo->accountConnected(account, m_accountInfo->getJid(account)); - else - { + // get all MUC nicks of the current account for groupchat logging + // functionality + else { QStringList room_nick = xml.attribute("to").split("/"); m_mucNicks.insert(room_nick[0], room_nick[1]); } @@ -356,10 +358,11 @@ bool OMEMOPlugin::encryptMessageElement(int account, QDomElement &message) return false; } + // logging functionality for OMEMO-encrypted groupchats if (message.attribute("type") == "groupchat") { QString room = message.attribute("to"); QString from = m_mucNicks[room]; - if (m_omemo->isEnabledForUser(account, room)) { + if (m_omemo->isEnabledForUser(account, room)) { // only log if encryption is enabled QString Stamp = message.firstChildElement("x").attribute("stamp"); QDomElement body = message.firstChildElement("body"); if (!body.isNull()) { @@ -586,6 +589,7 @@ bool OMEMOPlugin::execute(int account, const QHash &args, QHa return false; } +// the code partly taken from the Conference Logger plugin void OMEMOPlugin::logMuc(QString room, const QString &from, const QString &myJid, const QString &text, QString stamp) { From ecdd0255f7a4a7e0a89aeaf0af193d0a19a4fe4f Mon Sep 17 00:00:00 2001 From: kssytsrk Date: Fri, 13 Aug 2021 19:45:03 +0300 Subject: [PATCH 10/11] fixed review suggestions --- generic/omemoplugin/src/omemoplugin.cpp | 30 +++++++++++++------------ 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/generic/omemoplugin/src/omemoplugin.cpp b/generic/omemoplugin/src/omemoplugin.cpp index a7c3ff4d..573314cd 100644 --- a/generic/omemoplugin/src/omemoplugin.cpp +++ b/generic/omemoplugin/src/omemoplugin.cpp @@ -236,21 +236,18 @@ bool OMEMOPlugin::decryptMessageElement(int account, QDomElement &message) } // logging functionality for OMEMO-encrypted groupchats - if (message.attribute("type") == "groupchat") { - QString from = message.attribute("from"); - QStringList List = from.split("/"); - QString room = List.takeFirst(); - if (!List.isEmpty()) { - from = List.join("/"); - } - if (from != m_mucNicks[room]) { + if (message.attribute("type") == QLatin1String("groupchat")) { + QString from = message.attribute("from"); + QString room = from.section('/', 0, 0); + QString nickname = from.section('/', 1); + if (nickname != m_mucNicks.value(room)) { QString Stamp = message.firstChildElement("x").attribute("stamp"); QDomElement body = message.firstChildElement("body"); if (!body.isNull()) { QString Text = body.text(); QString MyJid = m_accountInfo->getJid(account); MyJid = MyJid.replace("@", "_at_"); - logMuc(room, from, MyJid, Text, Stamp); + logMuc(room, nickname, MyJid, Text, Stamp); } } } @@ -333,14 +330,17 @@ bool OMEMOPlugin::outgoingStanza(int account, QDomElement &xml) return false; } - if (xml.nodeName() == "presence") { + if (xml.nodeName() == QLatin1String("presence")) { if (!xml.hasAttributes()) m_omemo->accountConnected(account, m_accountInfo->getJid(account)); // get all MUC nicks of the current account for groupchat logging // functionality else { - QStringList room_nick = xml.attribute("to").split("/"); - m_mucNicks.insert(room_nick[0], room_nick[1]); + QString room = xml.attribute("to").section('/', 0, 0); + QString nick = xml.attribute("to").section('/', 1); + if (m_contactInfo->isConference(account, room)) { + m_mucNicks.insert(room, nick); + } } } @@ -359,9 +359,11 @@ bool OMEMOPlugin::encryptMessageElement(int account, QDomElement &message) } // logging functionality for OMEMO-encrypted groupchats - if (message.attribute("type") == "groupchat") { + if (message.attribute("type") == QLatin1String("groupchat")) { QString room = message.attribute("to"); - QString from = m_mucNicks[room]; + QString from = m_mucNicks.value(room, m_accountInfo->getJid(account)); + if (from==QLatin1String("")) + from = m_accountInfo->getJid(account); if (m_omemo->isEnabledForUser(account, room)) { // only log if encryption is enabled QString Stamp = message.firstChildElement("x").attribute("stamp"); QDomElement body = message.firstChildElement("body"); From fbc9d89eeb84aacf646255ab8cde7aecb899aad1 Mon Sep 17 00:00:00 2001 From: kssytsrk Date: Sat, 14 Aug 2021 00:41:15 +0300 Subject: [PATCH 11/11] update changelog.txt, bump versions --- generic/conferenceloggerplugin/changelog.txt | 4 ++++ generic/conferenceloggerplugin/psiplugin.json | 2 +- generic/omemoplugin/changelog.txt | 4 ++++ generic/omemoplugin/src/psiplugin.json | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/generic/conferenceloggerplugin/changelog.txt b/generic/conferenceloggerplugin/changelog.txt index cc950070..35e39bf2 100644 --- a/generic/conferenceloggerplugin/changelog.txt +++ b/generic/conferenceloggerplugin/changelog.txt @@ -1,3 +1,7 @@ +2021-08-14 +v0.2.4 - kssytsrk + * Prevent from logging OMEMO-encrypted messages + 2018-11-09 v0.2.3 - tehnick * Add ".conferencehistory" extension to log files diff --git a/generic/conferenceloggerplugin/psiplugin.json b/generic/conferenceloggerplugin/psiplugin.json index 3364a819..d4adf273 100644 --- a/generic/conferenceloggerplugin/psiplugin.json +++ b/generic/conferenceloggerplugin/psiplugin.json @@ -2,7 +2,7 @@ "name": "Conference Logger", "name:ru": "История Конференций", "shortname": "logger", - "version": "0.2.3", + "version": "0.2.4", "priority": 2, "icon": "base64:iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAvdQTFRF////X2BgZGVlU1VWcGhej3ZboHlSdWVXZ2dnVltfZmFdjnhitY5myplnsYhknH1gfWtaX1xYX2BhZ2JcjndftI5o0qN21aqA36Zy05deroZfjntohXZmW1ZQZGBcinVfw5Zj3Khx16d50qB0z6B01Kd62Kt70aFtuYpXiXlkgndpa2RbZ2BcinNfwpRn16t41Kx9zqN3059y0aF2xJhtv5BhxJViz6Z10qx2x5FXkXRaVVlcaGJcj3Vev41h1KR006V4zqF3z6F41KR3vI1emWg5hlIkiFMmn20/26t1qHlNbVdGOj5AAAAAbGdgkXliuIxl1p9t1qd30J900J510KB1wpRklmcziVcnjFkuiFQqfEcZo3lQYkYuNy0lICIkXV9fjntju5Jr2aV11aZ00Z9y16V6zZxvoXE/fk8an3BCwJJpvY1hjVwuSDMfTDIcSDktLC8wZWVmoIBayJdn06N71ah71ah21KV13K2Bx5hrilcjg1Qkv5Jm6buO88KOyJ1tBgUCg1czmntiUVRXZWZmRj0sZj8YqGs50J1u1q2A1qp92ax/zqFzqHZIdkQXoW481qNu87+N2al7SioCeFg9a1tRJSgpZmVmVEUxZU0yeF5Gc1M1oGkzypdk3LGD2rKEzKByqnlMdE4njmpEzaB02aVxfV44VEg8KSgoBAUFZmZnhGJEn3tYl4RucFtIdFU6gV89oXNFxpJe2ap+vIVQPSQQTTYfpX9VsY5nZVZGJSUjAQQGX19gk29Tsotpt5x8p4psiHhrZ1RAbkorjV03pXhQo3RCOCMTQy8af2NBbWFSJSYpAQMFZV5ab2dgiHRcuYxbyJ5yupl5jX91XVJMUDAUiXNdfGRCbFY2VEg3HyElJSUlQT47dm5lh3RisIldyJtmvp14o5GEt5h6nH9gYFNEICIjAQICOjo5Qz87cGdckHxlrIZgo4ZrZltPKSgmAwQGNztATktIb11Mk3VaaVxQAwUHOTs+T1NVJScpBQUG////R9sJXQAAAAF0Uk5TAEDm2GYAAAABYktHRACIBR1IAAAACXBIWXMAAABIAAAASABGyWs+AAABR0lEQVQY02NggAJGJmYGdMDCysbOwYkqxsXNw8vHLyAohCQmLCIqJi4hKSUtIwsXk5NXUFRSVlFVU9fQ1NKGiOno6ukbGBoZm5iamVtYWlmDxGxs7ewdHJ2cXVzd3D08vbx9fBkY/PwDAoOCQ0LDwiMio6JjYuPifRkSEpOSVVNS09IzMrOyc3Lz8gsKfRmKiktKy8orKquqa2rr6hsam5pbfBla29o7Oru6e3r7+idMnDR5ytRp030ZZsycNXvO3HnzFyxctHjJ0mXLV6xc5cuwes3ades3bNy0ecvWbdt37Ny1ew/QQXv37T9w8NDhI0ePHT9x8tTpM2fBTj93/sLFS5evXL12/cbNW7d9oZ68c/fe/QcPHz1+8vTZ8xeI8Hj56vWbt3bv3n/4iBJ0nz5/+fpt5Xf0UP7x89dvjKBn8PWFWcIAAPcuf0zWlg+4AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEzLTA0LTEyVDAzOjMzOjUxKzA2OjAwroz6jQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMy0wNC0xMlQwMzozMzo1MSswNjowMN/RQjEAAAAASUVORK5CYII=", "description": "Record conversation logs of currently joined conferences and read them later with just a single toolbar click.", diff --git a/generic/omemoplugin/changelog.txt b/generic/omemoplugin/changelog.txt index b56a15ca..b6bfb081 100644 --- a/generic/omemoplugin/changelog.txt +++ b/generic/omemoplugin/changelog.txt @@ -1,3 +1,7 @@ +2021-08-14 +v2.9 kssytsrk + * Add OMEMO-encrypted MUC logging functionality + 2021-02-20 v2.8 stigger * Fix sending incorrect PEP requests from somebody else's JID when diff --git a/generic/omemoplugin/src/psiplugin.json b/generic/omemoplugin/src/psiplugin.json index b4a0b474..3562093d 100644 --- a/generic/omemoplugin/src/psiplugin.json +++ b/generic/omemoplugin/src/psiplugin.json @@ -1,7 +1,7 @@ { "name": "OMEMO", "shortname": "omemo", - "version": "2.8", + "version": "2.9", "priority": 2, "icon": "base64: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", "description": "OMEMO is an end-to-end encryption protocol that leverages the Double Ratchet encryption scheme to provide multi-end to multi-end encryption, allowing messages to be synchronized securely across multiple clients, even if some of them are offline.",