slixmpp.plugins.xep_0080.geoloc

1.6 Documentation

Contents

Source code for slixmpp.plugins.xep_0080.geoloc

"""
    Slixmpp: The Slick XMPP Library
    Copyright (C) 2010 Nathanael C. Fritz, Erik Reuterborg Larsson
    This file is part of Slixmpp.

    See the file LICENSE for copying permission.
"""

import logging

import slixmpp
from slixmpp.plugins.base import BasePlugin
from slixmpp.xmlstream import register_stanza_plugin
from slixmpp.plugins.xep_0080 import stanza, Geoloc


log = logging.getLogger(__name__)


[docs]class XEP_0080(BasePlugin): """ XEP-0080: User Location """ name = 'xep_0080' description = 'XEP-0080: User Location' dependencies = {'xep_0163'} stanza = stanza def plugin_end(self): self.xmpp['xep_0163'].remove_interest(Geoloc.namespace) self.xmpp['xep_0030'].del_feature(feature=Geoloc.namespace) def session_bind(self, jid): self.xmpp['xep_0163'].register_pep('user_location', Geoloc)
[docs] def publish_location(self, **kwargs): """ Publish the user's current location. :param accuracy: Horizontal GPS error in meters. :param alt: Altitude in meters above or below sea level. :param area: A named area such as a campus or neighborhood. :param bearing: GPS bearing (direction in which the entity is heading to reach its next waypoint), measured in decimal degrees relative to true north. :param building: A specific building on a street or in an area. :param country: The nation where the user is located. :param countrycode: The ISO 3166 two-letter country code. :param datum: GPS datum. :param description: A natural-language name for or description of the location. :param error: Horizontal GPS error in arc minutes. Obsoleted by the accuracy parameter. :param floor: A particular floor in a building. :param lat: Latitude in decimal degrees North. :param locality: A locality within the administrative region, such as a town or city. :param lon: Longitude in decimal degrees East. :param postalcode: A code used for postal delivery. :param region: An administrative region of the nation, such as a state or province. :param room: A particular room in a building. :param speed: The speed at which the entity is moving, in meters per second. :param street: A thoroughfare within the locality, or a crossing of two thoroughfares. :param text: A catch-all element that captures any other information about the location. :param timestamp: UTC timestamp specifying the moment when the reading was taken. :param uri: A URI or URL pointing to information about the location. :param options: Optional form of publish options. """ options = kwargs.get('options', None) ifrom = kwargs.get('ifrom', None) callback = kwargs.get('callback', None) timeout = kwargs.get('timeout', None) timeout_callback = kwargs.get('timeout_callback', None) for param in ('ifrom', 'block', 'callback', 'timeout', 'options', 'timeout_callback'): if param in kwargs: del kwargs[param] geoloc = Geoloc() geoloc.values = kwargs return self.xmpp['xep_0163'].publish(geoloc, options=options, ifrom=ifrom, callback=callback, timeout=timeout, timeout_callback=timeout_callback)
[docs] def stop(self, ifrom=None, callback=None, timeout=None, timeout_callback=None): """ Clear existing user location information to stop notifications. """ geoloc = Geoloc() return self.xmpp['xep_0163'].publish(geoloc, ifrom=ifrom, callback=callback, timeout=timeout, timeout_callback=None)

Contents