diff options
Diffstat (limited to 'src/webengine/blockersubscription.cpp')
-rw-r--r-- | src/webengine/blockersubscription.cpp | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/src/webengine/blockersubscription.cpp b/src/webengine/blockersubscription.cpp deleted file mode 100644 index 40d3e9f..0000000 --- a/src/webengine/blockersubscription.cpp +++ /dev/null @@ -1,145 +0,0 @@ -/** LICENSE ******************************************************************** - ** - ** smolbote: yet another qute browser - ** Copyright (C) 2017 Xian Nox - ** - ** This program is free software: you can redistribute it and/or modify - ** it under the terms of the GNU General Public License as published by - ** the Free Software Foundation, either version 3 of the License, or - ** (at your option) any later version. - ** - ** This program is distributed in the hope that it will be useful, - ** but WITHOUT ANY WARRANTY; without even the implied warranty of - ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - ** GNU General Public License for more details. - ** - ** You should have received a copy of the GNU General Public License - ** along with this program. If not, see <http://www.gnu.org/licenses/>. - ** - ******************************************************************************/ - -#include "blockersubscription.h" - -#include <QFile> -#include <QTextStream> - -BlockerSubscription::BlockerSubscription(QObject *parent) : - QObject(parent) -{ -} - -int BlockerSubscription::loadFromFile(const QString &file) -{ - QFile subfile(file); - if(!subfile.open(QIODevice::ReadOnly | QIODevice::Text)) { - qDebug("Cannot open subscription: %s", qUtf8Printable(file)); - return -1; - } - - QTextStream subscription(&subfile); - - QString header = subscription.readLine(); - if(header != "[Adblock Plus 2.0]") { - qDebug("Invalid format of subscription: %s", qUtf8Printable(file)); - return -1; - } - - // clear all lists - m_urlBlacklist.clear(); - m_urlWhitelist.clear(); - int rules = 0; - - while(!subscription.atEnd()) { - QString line = subscription.readLine(); - if(!line.isEmpty()) { - if(line.startsWith('!')) { - parseComment(line); - } else { - // The line is not a comment - - rules++; - BlockerRule *rule = new BlockerRule(line, this); - - if(rule->isValid()) { - if(rule->isException()) { - m_urlWhitelist.append(rule); - } else { - m_urlBlacklist.append(rule); - } - } - - } - } - } - - qDebug("Loaded %i/%i rules from subscription %s", m_urlBlacklist.count() + m_urlWhitelist.count(), rules, qUtf8Printable(file)); - return rules; -} - -const QString BlockerSubscription::title() -{ - return m_title; -} - -const QString BlockerSubscription::homepage() -{ - return m_homepage; -} - -const QString BlockerSubscription::license() -{ - return m_license; -} - -const QString BlockerSubscription::version() -{ - return m_version; -} - -const QDateTime BlockerSubscription::lastModified() -{ - return m_lastModified; -} - -const QDateTime BlockerSubscription::expires() -{ - return m_expires; -} - -const QList<BlockerRule*> BlockerSubscription::urlBlacklist() -{ - return m_urlBlacklist; -} - -const QList<BlockerRule*> BlockerSubscription::urlWhitelist() -{ - return m_urlWhitelist; -} - -void BlockerSubscription::parseComment(const QString &line) -{ - if(line.startsWith("! Title: ")) { - m_title = line.right(line.length() - 9); - return; - } - if(line.startsWith("! Homepage: ")) { - m_homepage = line.right(line.length() - 12); - return; - } - if(line.startsWith("! Licence: ")) { - m_license = line.right(line.length() - 11); - return; - } - if(line.startsWith("! Version: ")) { - m_version = line.right(line.length() - 11); - return; - } - if(line.startsWith("! Last modified: ")) { - m_lastModified = QDateTime::fromString(line.right(line.length() - 17), Qt::RFC2822Date); - return; - } - if(line.startsWith("! Expires: ")) { - m_expires = m_lastModified.addDays(line.right(line.length() - 11).left(2).toInt()); - return; - } -} |