aboutsummaryrefslogtreecommitdiff
path: root/staging/adblock/test/parser.cpp
blob: 2d2e59ed1af2c52850c95d467fb571869791649b (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
#include "filterlist.h"
#include <QFile>
#include <QTextStream>

int main(int argc, char **argv)
{
    if(argc < 2) {
        qDebug("usage: %s list1.txt ...", argv[0]);
        return 77;
    }

    for(int i = 1; i < argc; ++i) {
        QFile f(argv[i]);
        if(!f.open(QIODevice::ReadOnly | QIODevice::Text)) {
            qDebug("could not open %s", argv[i]);
            return -1;
        }

        AdblockPlus::FilterList list;
        QTextStream stream(&f);
        const auto result = list.parse(stream);
        qDebug("[%s]: %s", argv[i], (result.state == AdblockPlus::FilterList::Ok) ? "okay" : "failed");
        qDebug("   total: %i\t\tmodified: %s", result.lines_total, qUtf8Printable(list.modified().toString()));
        qDebug("comments: %i\t\t expires: %s", result.lines_comments, qUtf8Printable(list.expiresOn().toString()));
        qDebug(" ignored: %i\t\t   valid: %s", result.lines_ignored, list.isUpToDate() ? "yes" : "no");
        qDebug("  parsed: %i", result.lines_parsed);
        qDebug("  failed: %i", result.lines_failed);
        qDebug("--------  --------");

        f.close();
    }
    return 0;
}