From 8bc9db23d98ae454899791af9e0fbc0bab4d0b15 Mon Sep 17 00:00:00 2001 From: Silarn Date: Tue, 5 Feb 2019 22:38:46 -0600 Subject: Add settings option to switch between fixed and dynamic cache timeouts --- src/modinforegular.cpp | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) (limited to 'src/modinforegular.cpp') diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp index 876ccf3d..10a1317c 100644 --- a/src/modinforegular.cpp +++ b/src/modinforegular.cpp @@ -507,22 +507,29 @@ bool ModInfoRegular::canBeUpdated() const QDateTime ModInfoRegular::getExpires() const { - qint64 diff = m_NexusLastModified.msecsTo(QDateTime::currentDateTimeUtc()); - qint64 year = 31536000000; - qint64 sixMonths = 15768000000; - qint64 threeMonths = 7884000000; - qint64 oneMonth = 1314000000; - - if (diff < oneMonth) - return m_LastNexusUpdate.addSecs(7200); - else if (diff < threeMonths) - return m_LastNexusUpdate.addSecs(14400); - else if (diff < sixMonths) - return m_LastNexusUpdate.addSecs(21600); - else if (diff < year) - return m_LastNexusUpdate.addSecs(43200); - else - return m_LastNexusUpdate.addSecs(86400); + switch (Settings::instance().nexusUpdateStrategy()) { + case Settings::NexusUpdateStrategy::Flexible: { + qint64 diff = m_NexusLastModified.msecsTo(QDateTime::currentDateTimeUtc()); + qint64 year = 31536000000; + qint64 sixMonths = 15768000000; + qint64 threeMonths = 7884000000; + qint64 oneMonth = 1314000000; + + if (diff < oneMonth) + return m_LastNexusUpdate.addSecs(7200); + else if (diff < threeMonths) + return m_LastNexusUpdate.addSecs(14400); + else if (diff < sixMonths) + return m_LastNexusUpdate.addSecs(21600); + else if (diff < year) + return m_LastNexusUpdate.addSecs(43200); + else + return m_LastNexusUpdate.addSecs(86400); + } break; + case Settings::NexusUpdateStrategy::Rigid: { + return m_LastNexusUpdate.addSecs(86400); + } break; + } } std::vector ModInfoRegular::getFlags() const -- cgit v1.3.1