/* * 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://neueland.iserlohn-fortress.net/gitea/aqua/smolbote * * SPDX-License-Identifier: GPL-3.0 */ #include "urlfilter.h" #include "matcher.h" #include #include class QIODevice; class AdBlockList : public UrlFilter { public: // TODO: check if all keys are listed const QStringList keys = { "Version", "Title", "Last modified", "Expires", "Homepage", "Licence", "Redirect" }; AdBlockList(QIODevice *device); ~AdBlockList(); QString metadata(const QString &key) const override; int ruleCount() const; std::pair match(const QUrl &firstParty, const QUrl &requestUrl, QWebEngineUrlRequestInfo::ResourceType type) const override; protected: void parseLine(const QString &line); private: QHash m_metadata; struct Rule { UrlFilter::MatchResult action = UrlFilter::NotMatched; Matcher *matcher; QStringList enabledOn, disabledOn; QHash options; }; std::vector rules; };