test: Add a tag monitoring script
[platform/upstream/neard.git] / test / monitor-tag
1 #!/usr/bin/python
2
3 import gobject
4
5 import dbus
6 import dbus.mainloop.glib
7
8 from dbus.lowlevel import MethodCallMessage, HANDLER_RESULT_NOT_YET_HANDLED
9
10 def extract_record(key, list):
11         j = 0
12         for i in list:
13                 record = dbus.Interface(bus.get_object("org.neard", i),
14                                                 "org.neard.Record")
15
16                 properties = record.GetProperties()
17                 print "        Record #%d" % (j)
18                 j += 1
19
20                 for key in properties.keys():
21                         val = str(properties[key])
22                         print "              %s = %s" % (key, val)
23
24
25 def dump_tag(list):
26         for i in list:
27             print "New Tag detected [%s]" % (i)
28             tag = dbus.Interface(bus.get_object("org.neard", i),
29                                                 "org.neard.Tag")
30
31             properties = tag.GetProperties()
32             for key in properties.keys():
33                 if key in ["Records"]:
34                    extract_record(key, properties[key])
35
36 def property_changed_adapter(name, value, path):
37     adapter = path[path.rfind("/") + 1:]
38     if name in ["Tags"]:
39        dump_tag(value)
40
41
42 if __name__ == '__main__':
43         dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
44
45         bus = dbus.SystemBus()
46
47         bus.add_signal_receiver(property_changed_adapter,
48                                 bus_name="org.neard",
49                                 dbus_interface="org.neard.Adapter",
50                                 signal_name = "PropertyChanged",
51                                 path_keyword="path")
52
53
54         mainloop = gobject.MainLoop()
55         mainloop.run()