class Bugs(Plugin):
"""Gets bugs info from the BTS
+
+ .. note::
+ This plugin depends on external module: **python-debianbts**
"""
re_bugs = re_compile(r'(?<=#)(\d{6,7})')
re_pkg = re_compile(r'(?P<package>[0-9a-z.+-]+)$')
def __init__(self, bot):
Plugin.__init__(self, bot)
- bot.add_event_handler("muc::%s::message" % self.bot.room, self.muc_message)
+ bot.add_event_handler("muc::%s::message" %
+ self.bot.room, self.muc_message)
def muc_message(self, msg):
- """Handler method dealing with MUC incoming messages"""
+ """Handler method dealing with MUC incoming messages.
+
+ Intercepts bugs number in MUC messages (as #629234), replies a bug
+ summary."""
# Does not reply to myself
if msg['mucnick'] == self.bot.nick:
return
@botcmd
def bugs(self, rcv, args):
- """ intercepts bugs number in any message, looking for string like #629234 and display bug summary.
- !bugs pkg-name : Returns latest bug reports if any
+ """
+ **command** ``!bugs pkg-name`` : Returns latest bug reports if any
"""
if not args:
return
return
reports = debianbts.get_status(reports_ids)
reports = sorted(reports, key=lambda r: r.date)
- rprt_nb = len(reports)
- msg = ['Open reports for {1} (total {0})'.format(rprt_nb, pkg.string)]
+ msg = ['Latest reports for {1} (total {0})'.format(len(reports), pkg.string)]
# Reverse and take last reports
for rep in reports[::-1][:4]:
msg.append('{r.bug_num}: {r.date:%Y-%m-%d} {r.subject}'.format(r=rep))
message = {'mbody': '\n'.join(msg)}
self.reply(rcv, message)
-