aboutsummaryrefslogtreecommitdiff
path: root/src/webengine/hostrule.cpp
blob: 1605b78cbd36b62ff3e707248df4af8eb8c029de (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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * 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: git://neueland.iserlohn-fortress.net/smolbote.git
 *
 * SPDX-License-Identifier: GPL-3.0
 */

#include "hostrule.h"

HostRule::HostRule(const QString &line)
{
    valid = parse(line);
}

QString HostRule::pattern() const
{
    return domain;
}

bool HostRule::shouldBlock(const QWebEngineUrlRequestInfo &info) const
{
    if(info.requestUrl().host().contains(domain)) {
        return true;
    }
    return false;
}

bool HostRule::parse(const QString &line)
{
    QStringList parts = line.split(' ');
    if(parts.first() == "0.0.0.0") {
        blocking = true;
    } else {
        qDebug("Skipping rule: '%s'", qUtf8Printable(line));
    }

    domain = parts.last();

#ifdef QT_DEBUG
    if(domain.isEmpty()) {
        qWarning("error parsing %s", qUtf8Printable(line));
    }
#endif

    return true;
}