/* * 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 */ #pragma once #include #include namespace Hostlist { class Filterlist final : public FilterList { public: typedef uint DomainHash; struct Rule { QString domain; QString redirect; }; Filterlist() = default; ~Filterlist() = default; [[nodiscard]] bool findMatch(const QString &domain) const { const auto hash = qHash(domain, 0); const auto found = rules.find(hash); if(found != rules.end()) { return true; } return false; } int count() const { return rules.size(); } [[nodiscard]] bool filter(QWebEngineUrlRequestInfo &info) const { return false; } [[nodiscard]] bool isUpToDate() const { return true; } bool load(QIODevice &device); [[nodiscard]] static std::map parseRule(const QString &line); private: std::map rules; }; } // namespace Hostlist