From e5065185fdb372e32538f777acf3c7684400aad6 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Tue, 14 Oct 2014 17:05:14 +0200 Subject: [PATCH] AdBlock: Add DuckDuckGo ad whitelist rules to custom list Those rules cannot be deleted, but can be disabled. Please consider not disabling those rules. Thanks! --- src/lib/adblock/adblocksubscription.cpp | 26 +++++++++++++++++++++++++ src/lib/adblock/adblocksubscription.h | 1 + 2 files changed, 27 insertions(+) diff --git a/src/lib/adblock/adblocksubscription.cpp b/src/lib/adblock/adblocksubscription.cpp index f9e090f74..76ab618c1 100644 --- a/src/lib/adblock/adblocksubscription.cpp +++ b/src/lib/adblock/adblocksubscription.cpp @@ -505,6 +505,32 @@ AdBlockCustomList::AdBlockCustomList(QObject* parent) setFilePath(DataPaths::currentProfilePath() + QLatin1String("/adblock/customlist.txt")); } +void AdBlockCustomList::loadSubscription(const QStringList &disabledRules) +{ + // DuckDuckGo ad whitelist rules + // They cannot be removed, but can be disabled. + // Please consider not disabling them. Thanks! + + const QString ddg1 = QSL("@@||duckduckgo.com^$document"); + const QString ddg2 = QSL("duckduckgo.com#@#.has-ad"); + + const QString rules = QzTools::readAllFileContents(filePath()); + + QFile file(filePath()); + if (file.open(QFile::WriteOnly | QFile::Append)) { + QTextStream stream(&file); + + if (!rules.contains(ddg1)) + stream << ddg1; + + if (!rules.contains(ddg2)) + stream << ddg2; + } + file.close(); + + AdBlockSubscription::loadSubscription(disabledRules); +} + void AdBlockCustomList::saveSubscription() { QFile file(filePath()); diff --git a/src/lib/adblock/adblocksubscription.h b/src/lib/adblock/adblocksubscription.h index 9087be0dd..56d1cc725 100644 --- a/src/lib/adblock/adblocksubscription.h +++ b/src/lib/adblock/adblocksubscription.h @@ -143,6 +143,7 @@ class AdBlockCustomList : public AdBlockSubscription public: explicit AdBlockCustomList(QObject* parent = 0); + void loadSubscription(const QStringList &disabledRules); void saveSubscription(); bool canEditRules() const;