summaryrefslogtreecommitdiffstats
path: root/deluge/plugins/pluginbase.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 21:38:38 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 21:38:38 +0000
commit2e2851dc13d73352530dd4495c7e05603b2e520d (patch)
tree622b9cd8e5d32091c9aa9e4937b533975a40356c /deluge/plugins/pluginbase.py
parentInitial commit. (diff)
downloaddeluge-upstream.tar.xz
deluge-upstream.zip
Adding upstream version 2.1.2~dev0+20240219.upstream/2.1.2_dev0+20240219upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'deluge/plugins/pluginbase.py')
-rw-r--r--deluge/plugins/pluginbase.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/deluge/plugins/pluginbase.py b/deluge/plugins/pluginbase.py
new file mode 100644
index 0000000..8d55156
--- /dev/null
+++ b/deluge/plugins/pluginbase.py
@@ -0,0 +1,82 @@
+#
+# Copyright (C) 2007-2010 Andrew Resch <andrewresch@gmail.com>
+#
+# This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with
+# the additional special exception to link portions of this program with the OpenSSL library.
+# See LICENSE for more details.
+#
+
+import logging
+
+import deluge.component as component
+
+log = logging.getLogger(__name__)
+
+
+class PluginBase(component.Component):
+ update_interval = 1
+
+ def __init__(self, name):
+ super().__init__(name, self.update_interval)
+
+ def enable(self):
+ raise NotImplementedError('Need to define an enable method!')
+
+ def disable(self):
+ raise NotImplementedError('Need to define a disable method!')
+
+
+class CorePluginBase(PluginBase):
+ def __init__(self, plugin_name):
+ super().__init__('CorePlugin.' + plugin_name)
+ # Register RPC methods
+ component.get('RPCServer').register_object(self, plugin_name.lower())
+ log.debug('CorePlugin initialized..')
+
+ def __del__(self):
+ try:
+ component.get('RPCServer').deregister_object(self)
+ except KeyError:
+ log.debug('RPCServer already deregistered')
+
+ def enable(self):
+ super().enable()
+
+ def disable(self):
+ super().disable()
+
+
+class Gtk3PluginBase(PluginBase):
+ def __init__(self, plugin_name):
+ super().__init__('Gtk3Plugin.' + plugin_name)
+ log.debug('Gtk3Plugin initialized..')
+
+ def enable(self):
+ super().enable()
+
+ def disable(self):
+ super().disable()
+
+
+class WebPluginBase(PluginBase):
+ scripts = []
+ debug_scripts = []
+
+ stylesheets = []
+ debug_stylesheets = []
+
+ def __init__(self, plugin_name):
+ super().__init__('WebPlugin.' + plugin_name)
+
+ # Register JSON rpc methods
+ component.get('JSON').register_object(self, plugin_name.lower())
+ log.debug('WebPlugin initialized..')
+
+ def __del__(self):
+ component.get('JSON').deregister_object(self)
+
+ def enable(self):
+ pass
+
+ def disable(self):
+ pass