/* * 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_URLFILTER_HOSTLIST #define SMOLBOTE_URLFILTER_HOSTLIST #include "urlfilter.h" #include #include #include class QIODevice; class HostList : public UrlFilter { public: HostList(QIODevice *device); ~HostList() = default; 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; uint domainHash; QString redirect; }; std::vector rules; }; #endif // SMOLBOTE_URLFILTER_HOSTLIST