diff options
Diffstat (limited to 'src/adblock/adblockmanager.h')
-rw-r--r-- | src/adblock/adblockmanager.h | 98 |
1 files changed, 60 insertions, 38 deletions
diff --git a/src/adblock/adblockmanager.h b/src/adblock/adblockmanager.h index f01aaca0..eae761e0 100644 --- a/src/adblock/adblockmanager.h +++ b/src/adblock/adblockmanager.h @@ -2,7 +2,7 @@ * * This file is a part of the rekonq project * -* Copyright (C) 2009 by Andrea Diamantini <adjam7 at gmail dot com> +* Copyright (C) 2010 by Andrea Diamantini <adjam7 at gmail dot com> * * * This program is free software; you can redistribute it and/or @@ -10,9 +10,9 @@ * published by the Free Software Foundation; either version 2 of * the License or (at your option) version 3 or any later version * accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy +* by the membership of KDE e.V.), which shall act as a proxy * defined in Section 14 of version 3 of the license. -* +* * 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 @@ -30,42 +30,42 @@ // NOTE: AdBlockPlus Filters (fast) summary -// +// // ### Basic Filter rules -// -// RULE = http://example.com/ads/* +// +// RULE = http://example.com/ads/* // this should block every link containing all things from that link -// +// // ### Exception rules (@@) -// +// // RULE = @@advice* -// +// // this will save every site, also that matched by other rules, cointaining words // that starts with "advice". Wildcards && regular expression allowed here. -// +// // ### Beginning/end matching rules (||) -// +// // RULE=||http://badsite.com -// +// // will stop all links starting with http://badsite.com -// +// // RULE=*swf|| -// +// // will stop all links to direct flash contents -// +// // ### Comments (!) -// +// // RULE=!azz.. -// +// // Every rule starting with a ! is commented out and should not be checked -// +// // ### Filter Options -// -// You can also specify a number of options to modify the behavior of a filter. +// +// You can also specify a number of options to modify the behavior of a filter. // You list these options separated with commas after a dollar sign ($) at the end of the filter -// +// // RULE=*/ads/*$element,match-case -// +// // where $element can be one of the following: // $script external scripts loaded via HTML script tag // $image regular images, typically loaded via HTML img tag @@ -80,37 +80,44 @@ // $subdocument embedded pages, usually included via HTML frames // $document the page itself (only exception rules can be applied to the page) // $other types of requests not covered in the list above -// +// // Inverse type options are allowed through the ~ sign, for example: -// +// // RULE=*/ads/*~$script,match-case -// +// // ### Regular expressions -// +// // They usually allow to check for (a lot of) sites, using just one rule, but be careful: // BASIC FILTERS ARE PROCESSED FASTER THAN REGULAR EXPRESSIONS (In ADP! In rekonq, I don't know...) -// -// +// +// // ### ELEMENT HIDING (##) -// -// This is quite different from usual adblock (but, for me, more powerful!). Sometimes you will find advertisements +// +// This is quite different from usual adblock (but, for me, more powerful!). Sometimes you will find advertisements // that can’t be blocked because they are embedded as text in the web page itself. // All you can do there is HIDE the element :) -// +// // RULE=##div.advise -// +// // The previous rule will hide every div whose class is named "advise". Usual CSS selectors apply here :) // // END NOTE ---------------------------------------------------------------------------------------------------------- +// Rekonq Includes +#include "rekonq_defines.h" + // Local Includes #include "adblockrule.h" +// KDE Includes +#include <KIO/Job> + // Qt Includes #include <QObject> #include <QNetworkReply> #include <QStringList> +#include <QByteArray> // Forward Includes class QNetworkRequest; @@ -120,18 +127,30 @@ class WebPage; typedef QList<AdBlockRule> AdBlockRuleList; -class AdBlockManager : public QObject +class REKONQ_TESTS_EXPORT AdBlockManager : public QObject { -Q_OBJECT - + Q_OBJECT + public: AdBlockManager(QObject *parent = 0); ~AdBlockManager(); - void loadSettings(); - QNetworkReply *block(const QNetworkRequest &request); + QNetworkReply *block(const QNetworkRequest &request, WebPage *page); void applyHidingRules(WebPage *page); - + void addSubscription(const QString &title, const QString &location); + +public slots: + void loadSettings(bool checkUpdateDate = true); + +private: + void updateNextSubscription(); + void saveRules(const QStringList &); + void loadRules(const QStringList &); + +private slots: + void slotResult(KJob *); + void subscriptionData(KIO::Job*, const QByteArray&); + private: bool _isAdblockEnabled; bool _isHideAdsEnabled; @@ -139,6 +158,9 @@ private: AdBlockRuleList _blackList; AdBlockRuleList _whiteList; QStringList _hideList; + + int _index; + QByteArray _buffer; }; #endif |