/* * 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 */ #ifndef SMOLBOTE_ADBLOCKRULE_H #define SMOLBOTE_ADBLOCKRULE_H #include "../filterleaf.h" #include class AdBlockRule : public FilterLeaf { public: explicit AdBlockRule(FilterLeaf::UrlMatchType matchType, const QString &filter, FilterLeaf::Action action); ~AdBlockRule() { delete stringMatcher; delete regExp; }; void mergeOptions(const QHash &options); bool match(const QUrl &requestUrl) const override; bool match(const QUrl &requestUrl, QWebEngineUrlRequestInfo::ResourceType type) const; std::pair action() const override; private: /* Once C++20 comes out, perhaps this can be replaced with a concept template */ QStringMatcher *stringMatcher = nullptr; QRegExp *regExp = nullptr; }; #endif // SMOLBOTE_ADBLOCKRULE_H