diff --git a/bot.py b/bot.py index 4037f56..a1afb74 100755 --- a/bot.py +++ b/bot.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 + import asyncio import os import json @@ -44,6 +46,7 @@ class Bot: try: await moduleobject.matrix_message(bot, room, event) except: + await self.send_text(room, f'Module {command} experienced difficulty: {sys.exc_info()[0]} - see log for details') traceback.print_exc(file=sys.stderr) async def unknown_cb(self, room, event): diff --git a/modules/echo.py b/modules/echo.py index a697b3e..d57c3c0 100644 --- a/modules/echo.py +++ b/modules/echo.py @@ -1,9 +1,9 @@ class MatrixModule: def matrix_start(self, bot): - print("Echo start!") + print("Echo started.") def matrix_stop(self, bot): - print("Echo stop!") + print("Echo stopped") async def matrix_message(self, bot, room, event): args = event.body.split() diff --git a/modules/metar.py b/modules/metar.py new file mode 100644 index 0000000..11f5db9 --- /dev/null +++ b/modules/metar.py @@ -0,0 +1,18 @@ +import subprocess +import os +import urllib.request + +class MatrixModule: + async def matrix_message(self, bot, room, event): + args = event.body.split() + if len(args) == 2: + icao = args[1] + metar_url = "https://tgftp.nws.noaa.gov/data/observations/metar/stations/" + icao.upper() + ".TXT" + response = urllib.request.urlopen(metar_url) + lines = response.readlines() + await bot.send_text(room, lines[1].decode("utf-8").strip()) + else: + await bot.send_text(room, 'Usage: !metar ') + + def help(self): + return('Metar data access (usage: !metar )')