aboutsummaryrefslogtreecommitdiff
path: root/staging/smolblok/filtermanager.cpp
blob: 05beb59ed4c1f68e9fdf1e2fc6b30488f0f3b817 (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
#include "filtermanager.hpp"
#include "filterlist.h"
#include <QFile>

Filter *FilterManager::addSubscription(const QString &filename, const QUrl &url)
{
    if(filename.isEmpty() && url.isEmpty()) {
        return nullptr;
    }

    QFile f(filename);
    if(!f.exists()) {
        // TODO download file
        return nullptr;
    }

    if(!f.open(QIODevice::ReadOnly | QIODevice::Text)) {
        return nullptr;
    }

    try {
        auto *filter = new AdblockPlus::FilterList(f);
        return filter;
    } catch(std::exception &) {
        return nullptr;
    }
}