From a572fe432d6c464e8407a4e7223d86308bbeb8ff Mon Sep 17 00:00:00 2001 From: TomZ Date: Wed, 9 Apr 2025 22:19:19 +0200 Subject: [PATCH] Add timestamp in category jsons And make sure that we sort newest to oldest. --- src/Processor.cpp | 10 +++++++++- src/Processor.h | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Processor.cpp b/src/Processor.cpp index 57932e2..11f59a3 100644 --- a/src/Processor.cpp +++ b/src/Processor.cpp @@ -48,10 +48,16 @@ int Processor::run() for (auto i = m_categories.begin(); i != m_categories.end(); ++i) { MetaCategory *mc = i->second; QJsonArray sources; - for (auto owner : mc->owners) { + auto owners = std::vector(mc->owners.begin(), mc->owners.end()); + std::sort(owners.begin(), owners.end(), [](MetaBCMR *a, MetaBCMR *b) { + return a->timestamp > b->timestamp; + }); + + for (auto owner : owners) { QJsonObject o; o.insert("bcmr", owner->hash); o.insert("name", owner->name); + o.insert("timestamp", owner->timestampStr); sources.append(o); } QJsonObject root; @@ -154,6 +160,8 @@ void Processor::parseBCMR(const QString &path) me = new MetaBCMR(); me->origFilename = path; me->name = revision["name"].toString(); + me->timestampStr = revisionDates.back(); + me->timestamp = QDateTime::fromString(me->timestampStr, Qt::ISODate); // calc hash CSHA256 hasher; hasher.write(data.constData(), data.size()); diff --git a/src/Processor.h b/src/Processor.h index 0730072..490b9f3 100644 --- a/src/Processor.h +++ b/src/Processor.h @@ -5,6 +5,7 @@ #include #include #include +#include class Processor { @@ -23,8 +24,9 @@ private: QString hash; QString origFilename; QString name; + QString timestampStr; + QDateTime timestamp; std::vector tokens; - }; struct MetaCategory {