]> git.ipfire.org Git - collecty.git/blobdiff - src/collecty/bus.py
Add graph info functionality
[collecty.git] / src / collecty / bus.py
index d67332f082742f3d2a58b31b5b67c403a944171f..fe22fea157da491bd618f2256c4c80247321be9c 100644 (file)
@@ -78,14 +78,25 @@ class GraphGenerator(dbus.service.Object):
 
                self.collecty = collecty
 
-       @dbus.service.method(BUS_DOMAIN, in_signature="sa{sv}", out_signature="ay")
+       @dbus.service.method(BUS_DOMAIN, in_signature="sa{sv}", out_signature="a{sv}")
        def GenerateGraph(self, template_name, kwargs):
                """
                        Returns a graph generated from the given template and object.
                """
                graph = self.collecty.generate_graph(template_name, **kwargs)
 
-               return dbus.ByteArray(graph or [])
+               # Convert the graph back to normal Python format
+               if graph:
+                       graph["image"] = dbus.ByteArray(graph["image"] or [])
+
+               return graph
+
+       @dbus.service.method(BUS_DOMAIN, in_signature="", out_signature="a{sv}")
+       def GraphInfo(self, template_name, kwargs):
+               """
+                       Returns a dictionary with information about the graph.
+               """
+               return self.collecty.graph_info(template_name, **kwargs)
 
        @dbus.service.method(BUS_DOMAIN, in_signature="", out_signature="as")
        def ListTemplates(self):
@@ -93,3 +104,7 @@ class GraphGenerator(dbus.service.Object):
                        Returns a list of all available templates
                """
                return [t.name for t in self.collecty.templates]
+
+       @dbus.service.method(BUS_DOMAIN, in_signature="", out_signature="s")
+       def Version(self):
+               return COLLECTY_VERSION