/* * 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 */ #include "plugin.h" #include "../filterlist.h" #include using namespace AdblockPlus; Filter* AdblockPlusFilterPlugin::load(QIODevice* from) const { if(!from->isOpen()) return nullptr; QTextStream stream(from); if(stream.readLine().trimmed() != QLatin1String("[Adblock Plus 2.0]")) { return nullptr; } auto *list = new FilterList; QString line; int total, comments, rules, unsupported, failed; while(stream.readLineInto(&line)) { if(!line.isEmpty()) { ++total; switch(list->parse(line)) { case FilterList::Comment: ++comments; break; case FilterList::Rule: ++rules; break; case FilterList::Unsupported: ++unsupported; break; case FilterList::Failed: break; } } } return list; }