Handle errors better

master
Tanner Collin 3 years ago
parent 5df67e3241
commit 9d41cafb3e
  1. 37
      teledynmap.py

@ -35,7 +35,11 @@ async def new_message(event):
logging.info('[SEND] {}: {}'.format(name, text)) logging.info('[SEND] {}: {}'.format(name, text))
data = dict(name=name, message=text) data = dict(name=name, message=text)
await web.post(api('/up/sendmessage'), json=data) try:
await web.post(api('/up/sendmessage'), json=data)
except aiohttp.ClientError:
logging.exception('Problem sending message to dynmap:')
async def main(): async def main():
global web global web
@ -45,22 +49,25 @@ async def main():
logging.info('Bridge loaded') logging.info('Bridge loaded')
while True: while True:
async with web.get(api('/up/world/world/' + str(last_time))) as res: try:
j = await res.json(content_type='text/plain;charset=utf-8') async with web.get(api('/up/world/world/' + str(last_time))) as res:
last_time = j['timestamp'] j = await res.json(content_type='text/plain;charset=utf-8')
for update in j['updates']: last_time = j['timestamp']
if update['type'] != 'chat': continue for update in j['updates']:
if update['playerName'].startswith('[TG] '): continue if update['type'] != 'chat': continue
if update['playerName'].startswith('[TG] '): continue
name = update['playerName'] name = update['playerName']
icon = emojis[md5(name) % len(emojis)] icon = emojis[md5(name) % len(emojis)]
icon = settings.CUSTOM_EMOJIS.get(name, icon) icon = settings.CUSTOM_EMOJIS.get(name, icon)
message = '{} <{}> {}'.format(icon, name, update['message']) message = '{} <{}> {}'.format(icon, name, update['message'])
if message == last_msg: continue if message == last_msg: continue
logging.info('[RECV] ' + message) logging.info('[RECV] ' + message)
await bot.send_message(settings.CHAT_ID, message) await bot.send_message(settings.CHAT_ID, message)
last_msg = message last_msg = message
except aiohttp.ClientError:
logging.exception('Problem getting message from dynmap:')
await asyncio.sleep(1) await asyncio.sleep(1)

Loading…
Cancel
Save