From 8a8b87e65c0b3d579f8ea420e23a9cd07528dfe1 Mon Sep 17 00:00:00 2001 From: Edi Feschiyan Date: Fri, 12 Jun 2020 22:44:25 +0300 Subject: Adding cookiecutter, preparing for setuptools, new services --- services/geoclue.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 services/geoclue.py (limited to 'services/geoclue.py') diff --git a/services/geoclue.py b/services/geoclue.py new file mode 100644 index 0000000..df1afd6 --- /dev/null +++ b/services/geoclue.py @@ -0,0 +1,44 @@ +from aglbaseservice import AGLBaseService, AFBResponse +import asyncio +import os + + +class GeoClueService(AGLBaseService): + service = 'agl-service-geoclue' + parser = AGLBaseService.getparser() + parser.add_argument('--location', help='Get current location', action='store_true') + + def __init__(self, ip, port=None, api='geoclue'): + super().__init__(ip=ip, port=port, api=api, service='agl-service-geoclue') + + async def location(self): + return await self.request('location') + + async def subscribe(self, event='location'): + return await super().subscribe(event=event) + + async def unsubscribe(self, event='location'): + return await super().unsubscribe(event=event) + + +async def main(loop): + args = GeoClueService.parser.parse_args() + gcs = await GeoClueService(args.ipaddr) + + if args.location: + id = await gcs.location() + print(f'Sent location request with messageid {id}') + print(AFBResponse(await gcs.response())) + + if args.subscribe: + for event in args.subscribe: + id = await gcs.subscribe(event) + print(f"Subscribed for {event} with messageid {id}") + print(AFBResponse(await gcs.response())) + if args.listener: + async for response in gcs.listener(): + print(response) + +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.run_until_complete(main(loop)) -- cgit 1.2.3-korg