examples/geoloc.lua
author Myhailo Danylenko <isbear@ukrpost.net>
Sat, 05 Mar 2016 18:34:12 +0200
changeset 149 be2ec9bb72df
parent 68 742878c74b8e
permissions -rw-r--r--
Added tag v0.0.4 for changeset b222f4d111d9


local lm     = require 'lm'
local geoloc = require 'lm.geoloc'
local pubsub = require 'lm.pubsub'

pubsub.handler ( 'http://jabber.org/protocol/geoloc',
	function ( from, node, data )
		if not main.yesno ( main.option ( 'lua_pep_notification' ) ) then
			return true
		end
		local item = data:child ()
		local text = ''
		while item do
			text = ("%s\n- %s: %s"):format ( text, item:name (), item:value () or '' )
			item = item:next ()
		end
		if text ~= '' then
			text = 'Now at:' .. text
		else
			text = 'Now in unknown location'
		end
		main.print_info ( from, text )
		return true
	end )

main.command ( 'location',
	function ( args )
		geoloc.publish ( lm.connection.bless ( main.connection () ),
			function ()
				print ( 'Geolocation published' )
			end,
			function ( mesg )
				print ( 'Error geolocation publishing: ' .. mesg )
			end, args )
	end, true )

commands_help['location'] = "[-key value [-key value ...]]\n\nPublishes your current geolocation.\nValid keys are accuracy, alt, area, bearing, building, country, datum, description, error, floor, lat, locality, lon, postalcode, region, room, speed, street, text, timestamp and uri, according to xep0080."

main.add_feature ( 'http://jabber.org/protocol/geoloc+notify' )
main.add_feature ( 'http://jabber.org/protocol/geoloc' )

-- vim: se ts=4: --