/* * 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_FILTERRULE_H #define SMOLBOTE_FILTERRULE_H #include #include #include #include #include #include #include #include class FilterRule { public: enum UrlMatchType { InvalidMatch, RegularExpressionMatch, StringContains, StringStartsWith, StringEndsWith, StringEquals, DomainMatch }; bool isEnabled() const; bool isBlocking() const; bool matchesDomain(uint domainHash) const; bool matchesType(QWebEngineUrlRequestInfo::ResourceType type) const; bool matchesUrl(const QUrl &url) const; protected: bool m_isEnabled = false; bool m_isBlocking = true; UrlMatchType urlMatchType = InvalidMatch; QHash m_resourceTypeOptions; QVector allowedDomains_hashes, blockedDomains_hashes; QString match; QRegularExpression regexp; }; #endif // SMOLBOTE_FILTERRULE_H