/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://library.iserlohn-fortress.net/aqua/smolbote.git * * SPDX-License-Identifier: GPL-3.0 */ #include #include #include #include #include #include namespace AdblockPlus { class Rule; class FilterList : public Filter { Q_DISABLE_COPY(FilterList) public: explicit FilterList() = default; ~FilterList(); enum ParseResult { Comment, Rule, Unsupported, Failed, }; ParseResult parse(const QString &line); void filter(QWebEngineUrlRequestInfo &info) const override; bool isUpToDate() const override; QDateTime modified() const { return lastModified; } QDateTime expiresOn() const { return expires; } private: void parseComment(const QString &line); bool parseRule(const QString &line); QDateTime lastModified; QDateTime expires; QVector m_rules; }; } // namespace AdblockPlus