diff options
Diffstat (limited to 'staging/adblock/filterlist.h')
-rw-r--r-- | staging/adblock/filterlist.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/staging/adblock/filterlist.h b/staging/adblock/filterlist.h index 2e3fba6..1cdbb86 100644 --- a/staging/adblock/filterlist.h +++ b/staging/adblock/filterlist.h @@ -6,34 +6,34 @@ * SPDX-License-Identifier: GPL-3.0 */ -#include <smolbote/filterinterface.hpp> #include <QDateTime> #include <QObject> #include <QString> #include <QStringList> #include <QVector> +#include <smolbote/filterinterface.hpp> +#include "rule.h" namespace AdblockPlus { class Rule; class FilterList : public Filter { - Q_DISABLE_COPY(FilterList) - public: - explicit FilterList() = default; - ~FilterList(); + FilterList() = default; + explicit FilterList(QIODevice &from); + ~FilterList() + { + qDeleteAll(m_rules); + } - enum ParseResult { - Comment, - Rule, - Unsupported, - Failed, - }; - ParseResult parse(const QString &line); + bool filter(QWebEngineUrlRequestInfo &info) const override; + bool isUpToDate() const override + { + const auto current = QDateTime::currentDateTime(); + return expires > current; + } - void filter(QWebEngineUrlRequestInfo &info) const override; - bool isUpToDate() const override; QDateTime modified() const { return lastModified; @@ -43,9 +43,9 @@ public: return expires; } + [[nodiscard]] static Rule *parseRule(const QByteArray &line); private: void parseComment(const QString &line); - bool parseRule(const QString &line); QDateTime lastModified; QDateTime expires; |