]> jfr.im git - erebus.git/blame - modules/exception_hook.py
update comments
[erebus.git] / modules / exception_hook.py
CommitLineData
e33fc813
JR
1# Erebus IRC bot - Author: Erebus Team
2# vim: fileencoding=utf-8
bac69af4 3# A basic exception hook. Sends exceptions to `[exception_hook] destination` in the config.
e33fc813
JR
4# This file is released into the public domain; see http://unlicense.org/
5
6# module info
7modinfo = {
8 'author': 'Erebus Team',
9 'license': 'public domain',
10 'compatible': [0], # compatible module API versions
11 'depends': [], # other modules required to work properly?
12 'softdeps': [], # modules which are preferred but not required
13}
14
15# preamble
16import modlib
17lib = modlib.modlib(__name__)
18modstart = lib.modstart
19modstop = lib.modstop
20
21# module code
22import traceback
23
24@lib.hookexception(Exception)
25def got_exception(bot, exc, source, *args, **kwargs):
26 dest = lib.parent.cfg.get('exception_hook', 'destination')
27 if dest is not None:
28 bot.msg(dest, '%s exception: %r %r' % (source, args, kwargs))
0778c029 29 for line in traceback.format_exc(limit=-lib.parent.cfg.getint('exception_hook', 'limit', 5)).split("\n"):
e33fc813 30 bot.msg(dest, (' '*4) + line)