aboutsummaryrefslogtreecommitdiff
path: root/lib/urlfilter/formats/adblocklist.h
blob: 34a2120076ad4248affaa216f45e46af4a725397 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef ADBLOCKLIST_H
#define ADBLOCKLIST_H

#include <QHash>
#include "adblockrule.h"

class AdBlockList
{
public:
    AdBlockList();

    QString metadata(const QString &key) const;
    FilterLeaf::Action match(const QUrl &firstParty, const QUrl &requestUrl, QWebEngineUrlRequestInfo::ResourceType type = QWebEngineUrlRequestInfo::ResourceTypeUnknown) const;

    bool parseLine(const QString &line);

protected:
    bool parseComment(const QString &commentLine);

private:
    struct Filter
    {
        FilterLeaf::Action action = FilterLeaf::Block;
        Matcher *matcher;
    };

    QHash<QString, QString> m_metadata;
    //QMap<QString, Filter> m_rules;
    std::vector<Filter> m_rules;
};

#endif // ADBLOCKLIST_H