summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugin.xsd2
-rw-r--r--portato/plugin.py13
2 files changed, 8 insertions, 7 deletions
diff --git a/plugin.xsd b/plugin.xsd
index 06b22f6..38cb872 100644
--- a/plugin.xsd
+++ b/plugin.xsd
@@ -7,7 +7,7 @@
<xs:element name="author" type="string" />
<xs:element name="import" type="importString" minOccurs="0"/>
<xs:element name="frontends" type="stringList" minOccurs="0" />
- <xs:element name="hooks">
+ <xs:element name="hooks" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="hook" minOccurs="1" maxOccurs="unbounded">
diff --git a/portato/plugin.py b/portato/plugin.py
index bf9dc91..5926922 100644
--- a/portato/plugin.py
+++ b/portato/plugin.py
@@ -180,12 +180,13 @@ class Plugin:
"""Gets an <hooks>-elements and parses it.
@param hooks: the hooks node
- @type hooks: Node"""
+ @type hooks: NodeList"""
- for h in hooks.getElementsByTagName("hook"):
- hook = Hook(self, str(h.getAttribute("type")), str(h.getAttribute("call")))
- hook.parse_connects(h.getElementsByTagName("connect"))
- self.hooks.append(hook)
+ if hooks:
+ for h in hooks[0].getElementsByTagName("hook"):
+ hook = Hook(self, str(h.getAttribute("type")), str(h.getAttribute("call")))
+ hook.parse_connects(h.getElementsByTagName("connect"))
+ self.hooks.append(hook)
def parse_menus (self, menus):
"""Get a list of <menu>-elements and parses them.
@@ -388,7 +389,7 @@ class PluginQueue:
if frontendOK is None or frontendOK == True:
plugin = Plugin(p, elem.getElementsByTagName("name")[0], elem.getElementsByTagName("author")[0])
- plugin.parse_hooks(elem.getElementsByTagName("hooks")[0])
+ plugin.parse_hooks(elem.getElementsByTagName("hooks"))
plugin.set_import(elem.getElementsByTagName("import"))
plugin.parse_menus(elem.getElementsByTagName("menu"))
plugin.parse_options(elem.getElementsByTagName("options"))