Development Team/Almanac/Sugar.presence.presenceservice

From Sugar Labs
Jump to navigation Jump to search

Class: PresenceService (gobject.GObject)

How do I share an activity with other buddies in my neighborhood?

The standard [Sugar.activity.activity#Class:_ActivityToolbar_.28gtk.Toolbar.29 sugar ActivityToolbar] already contains a dropdown menu that allows users to make their activities public or private on the mesh network. To use this toolbar, you can simply use the [Sugar.activity.activity#Class:_ActivityToolbox_.28Toolbox.29 ActivityToolbox] in your activity, which adds the ActivityToolbar by default. You can see code on how to do this by reading the entry on [Sugar.activity.activity#What_is_the_standard_toolbox_needed_in_most_activities_and_how_do_I_create_it.3F creating a standard toolbox].


How do I get a list of buddies that are presently available on my mesh network?

The PresenceService class has a helper method called get_buddies() that will return a list of sugar.presence.buddy.Buddy objects. The code below shows how you can get a list of available buddies and print out some relevant properties for each.


    from sugar.presence import presenceservice
    ...
    #### Method: _print_buddy_info, which finds all the buddies detected for this 
    # XO and then prints their relevant properties. 
    def _print_buddy_info(self):
        ps = presenceservice.PresenceService()
        buddies = ps.get_buddies()
        for currBuddy in buddies:
            print '----------------------- ' + currBuddy.get_property('nick') + ': '
            print currBuddy.get_property('key')
            print currBuddy.get_property('color')
            print currBuddy.get_property('current-activity')
            print currBuddy.get_property('owner')
            print currBuddy.get_property('ip4-address')
            print ''