From 3c1cfd862ddbe1539d77ba72fbd2f7c84a87e2be Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Wed, 27 Aug 2014 12:24:47 +0100 Subject: [PATCH] !kill supports providing the URL --- dropbot/bot.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/dropbot/bot.py b/dropbot/bot.py index fa5daa6..113b47b 100644 --- a/dropbot/bot.py +++ b/dropbot/bot.py @@ -91,7 +91,7 @@ class DropBot(ClientXMPP): self.send_message(msg['from'].bare, mbody=bdy, mhtml=html, mtype='groupchat') else: for match in zkillboard_regex.finditer(msg['body']): - resp = self.cmd_kill([match.groupdict()['killID']], msg) + resp = self.cmd_kill([match.groupdict()['killID']], msg, no_url=True) if len(resp) == 2: body, html = resp else: @@ -538,22 +538,32 @@ class DropBot(ClientXMPP): ', '.join([x for x, y in alli_assoc]) ) - def cmd_kill(self, args, msg): + def cmd_kill(self, args, msg, no_url=False): """Returns a summary of a zKillboard killmail""" if len(args) == 0: - return '!kill ' + return '!kill ' kill_id = args[0] try: kill_id = int(kill_id) except ValueError: - return 'Invalid kill ID' + m = zkillboard_regex.match(kill_id) + if m: + kill_id = m.groupdict()['killID'] + else: + return 'Invalid kill ID' headers, data = ZKillboard().killID(kill_id).get() kill = data[0] - return '{} ({}) in {}, {} attacker(s), {} ISK lost.'.format( + if no_url: + url = '' + else: + url = ' - https://zkillboard.com/kill/{}/'.format(kill_id) + + return '{} ({}) in {}, {} attacker(s), {} ISK lost{}'.format( kill['victim']['characterName'], self.types[unicode(kill['victim']['shipTypeID'])], self.map.node[int(kill['solarSystemID'])]['name'], len(kill['attackers']), intcomma(kill['zkb']['totalValue']), + url, ) \ No newline at end of file