aboutsummaryrefslogtreecommitdiff
path: root/src/webengine/hostrule.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2017-12-23 16:45:31 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2017-12-23 16:45:31 +0100
commitf7ed63179fa4f99322d6c7716e17466ec4e3e4ce (patch)
treef187d1f73300f1ac0882a4be569d567bb4ed29f7 /src/webengine/hostrule.cpp
parentRemoved SingleApplication::SessionParam (diff)
downloadsmolbote-f7ed63179fa4f99322d6c7716e17466ec4e3e4ce.tar.xz
Request filter now properly takes hostlists
- hostslist directory is set in browser.filterPath
Diffstat (limited to 'src/webengine/hostrule.cpp')
-rw-r--r--src/webengine/hostrule.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/webengine/hostrule.cpp b/src/webengine/hostrule.cpp
new file mode 100644
index 0000000..1605b78
--- /dev/null
+++ b/src/webengine/hostrule.cpp
@@ -0,0 +1,47 @@
+/*
+ * 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: git://neueland.iserlohn-fortress.net/smolbote.git
+ *
+ * SPDX-License-Identifier: GPL-3.0
+ */
+
+#include "hostrule.h"
+
+HostRule::HostRule(const QString &line)
+{
+ valid = parse(line);
+}
+
+QString HostRule::pattern() const
+{
+ return domain;
+}
+
+bool HostRule::shouldBlock(const QWebEngineUrlRequestInfo &info) const
+{
+ if(info.requestUrl().host().contains(domain)) {
+ return true;
+ }
+ return false;
+}
+
+bool HostRule::parse(const QString &line)
+{
+ QStringList parts = line.split(' ');
+ if(parts.first() == "0.0.0.0") {
+ blocking = true;
+ } else {
+ qDebug("Skipping rule: '%s'", qUtf8Printable(line));
+ }
+
+ domain = parts.last();
+
+#ifdef QT_DEBUG
+ if(domain.isEmpty()) {
+ qWarning("error parsing %s", qUtf8Printable(line));
+ }
+#endif
+
+ return true;
+}