aboutsummaryrefslogtreecommitdiff
path: root/staging/adblock/filterlist.h
diff options
context:
space:
mode:
Diffstat (limited to 'staging/adblock/filterlist.h')
-rw-r--r--staging/adblock/filterlist.h30
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;