~marco-gallotta/ibid/erep

« back to all changes in this revision

Viewing changes to ibid/plugins/erepublik.py

  • Committer: Marco Gallotta
  • Date: 2010-07-19 21:08:59 UTC
  • Revision ID: marco@gallotta.co.za-20100719210859-wcawz0m6x7ovi8k9
Add reason for battle

Show diffs side-by-side

added added

removed removed

Lines of Context:
278
278
            return None
279
279
        return tree
280
280
 
281
 
    def battle_text(self, tree):
 
281
    def battle_text(self, tree, now):
282
282
        battle = u'%(attacker)s attacked %(region)s, %(defender)s' % {
283
 
            'attacker': tree.findtext('attacker/name'),
 
283
            'attacker': tree.findtext('./attacker/name'),
284
284
            'region': tree.findtext('./region/name'),
285
285
            'defender': tree.findtext('./defender/name'),
286
286
        }
 
287
        if not tree.findtext('./progress/finished-at'):
 
288
            age = now - dt_strptime(tree.findtext('./progress/started-at')[:-6],
 
289
                '%Y-%m-%dT%H:%M:%S')
 
290
            battle += u' %s ago' % ago(age, 2)
 
291
        else:
 
292
            reason = tree.findtext('./progress/finished-reason')
 
293
            if reason == 'RETREAT':
 
294
                result = u'%s retreated' % tree.findtext('./attacker/name')
 
295
            else:
 
296
                result = u'unimplemented reason'
 
297
            age = now - dt_strptime(tree.findtext('./progress/finished-at')[:-6],
 
298
                '%Y-%m-%dT%H:%M:%S')
 
299
            battle += u' and %s %s ago' % (result, ago(age, 2))
287
300
        return battle
288
301
 
289
302
    @match(r'^(erep(?:ublik)?\s+)?battle\s+(\d+)$')
293
306
        tree = self.battle_tree(event, int(id))
294
307
        if not tree:
295
308
            return
296
 
        event.addresponse(self.battle_text(tree))
 
309
        event.addresponse(self.battle_text(tree, event.time))
297
310
 
298
311
 
299
312
# vi: set et sta sw=4 ts=4: