aboutsummaryrefslogtreecommitdiff
path: root/staging/smolblok/smolblok.hpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2020-05-31 21:53:52 +0300
committerAqua-sama <aqua@iserlohn-fortress.net>2020-05-31 21:53:52 +0300
commit737d688e5b173ef5155db3e4fc9e8debf9b33a11 (patch)
tree3fe6cd4aade797fc0c3b18d458834befd43a91cf /staging/smolblok/smolblok.hpp
parentstaging: smolblok (diff)
downloadsmolbote-737d688e5b173ef5155db3e4fc9e8debf9b33a11.tar.xz
enable smolblokstaging-smolblok
Build both HostlistFilter and AdblockFitler plugins by default.
Diffstat (limited to 'staging/smolblok/smolblok.hpp')
-rw-r--r--staging/smolblok/smolblok.hpp80
1 files changed, 0 insertions, 80 deletions
diff --git a/staging/smolblok/smolblok.hpp b/staging/smolblok/smolblok.hpp
deleted file mode 100644
index e547d67..0000000
--- a/staging/smolblok/smolblok.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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
- */
-
-#ifndef SMOLBOTE_SMOLBLOK_HPP
-#define SMOLBOTE_SMOLBLOK_HPP
-
-#include "filtermanager.hpp"
-#include <QPluginLoader>
-#include <QWebEngineUrlRequestInterceptor>
-#include <smolbote/filterinterface.hpp>
-
-class smolblok
-{
-public:
- smolblok() = default;
- ~smolblok()
- {
- for(auto &plugin : m_formats) {
- delete plugin.loader;
- }
- }
-
- auto registerFormatPlugin(const QString &format, const QString &filename)
- {
- struct {
- bool loaded = false;
- QString error;
- } ret;
-
- if(format.isEmpty() || filename.isEmpty()) {
- ret.error = "Format or filename is empty";
- return ret;
- }
-
- auto *plugin = new QPluginLoader(filename);
- if(!plugin->load()) {
- ret.error = plugin->errorString();
- delete plugin;
- return ret;
- }
-
- auto *instance = qobject_cast<FilterPlugin *>(plugin->instance());
- if(instance == nullptr) {
- ret.error = "Unable to cast";
- delete plugin;
- return ret;
- }
-
- m_formats[format] = PluginInfo{ plugin, instance };
- ret.loaded = true;
- return ret;
- }
-
- const auto formats() const
- {
- return m_formats.keys();
- }
-
- bool addSubscriptions(const QString &filename);
- QWebEngineUrlRequestInterceptor *interceptor()
- {
- return &m_subscriptions;
- }
-
-private:
- struct PluginInfo {
- QPluginLoader *loader = nullptr;
- FilterPlugin *instance = nullptr;
- };
-
- QHash<QString, PluginInfo> m_formats;
- FilterManager m_subscriptions;
-};
-
-#endif // SMOLBOTE_SMOLBLOK_HPP