/online-desktop/trunk/pyddm/test-session.py

https://gitlab.com/manoj-makkuboy/magnetism
Python | 81 lines | 60 code | 20 blank | 1 comment | 4 complexity | 09a31c5a3a5eb6a8a9e03e248898a1f5 MD5 | raw file
  1. #!/usr/bin/python
  2. from optparse import OptionParser
  3. import logging
  4. import os
  5. import re
  6. import sys
  7. from ddm import DataModel
  8. from dbus.mainloop.glib import DBusGMainLoop
  9. import gobject
  10. logging.basicConfig(level=logging.DEBUG)
  11. DBusGMainLoop(set_as_default=True)
  12. def on_name_change(resource):
  13. print "The name changed: ", resource.name
  14. def on_self_change(resource):
  15. print "The resource changed: "
  16. resource._dump()
  17. def on_self_query_success(resource):
  18. resource._dump()
  19. resource.connect(on_name_change, "name")
  20. resource.connect(on_self_change)
  21. def on_self_query_failure(code, message):
  22. print message
  23. def on_buddy_changed(buddy):
  24. buddy._dump()
  25. def on_buddies_changed(global_resource):
  26. for buddy in global_resource.onlineBuddies:
  27. buddy.disconnect(on_buddy_changed) # In case we connected previously
  28. buddy.connect(on_buddy_changed)
  29. on_buddy_changed(buddy)
  30. def on_global_query_success(global_resource):
  31. global_resource.connect(on_buddies_changed, "onlineBuddies")
  32. on_buddies_changed(global_resource)
  33. def on_global_query_failure(code, message):
  34. print message
  35. def online_changed(resource):
  36. print "Online: ", resource.online
  37. def on_ready():
  38. print "Ready"
  39. if model.self_resource != None:
  40. query = model.query_resource(model.self_resource, "+;contacts +;contacters +;lovedAccounts +;email;aim")
  41. query.add_handler(on_self_query_success)
  42. query.add_error_handler(on_self_query_failure)
  43. query.execute()
  44. query = model.query_resource(model.global_resource, "onlineBuddies +")
  45. query.add_handler(on_global_query_success)
  46. query.add_error_handler(on_global_query_failure)
  47. query.execute()
  48. model.global_resource.connect(online_changed, "online")
  49. online_changed(model.global_resource)
  50. parser = OptionParser()
  51. parser.add_option("-s", "--server", default="localinstance.mugshot.org:8080", help="Mugshot server to connect to (default localinstance.mugshot.org:8080)")
  52. (options, args) = parser.parse_args()
  53. if len(args) > 0:
  54. parser.print_usage()
  55. sys.exit(1)
  56. model = DataModel(options.server)
  57. model.add_ready_handler(on_ready)
  58. if model.ready:
  59. on_ready()
  60. loop = gobject.MainLoop()
  61. loop.run()