aboutsummaryrefslogtreecommitdiff
path: root/modules/print_activity.py
blob: e6a34992593f79a782fbe3f999931d50944b89e7 (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#--depends-on config
#--depends-on format_activity

import datetime
from src import EventManager, ModuleManager, utils

@utils.export("botset",
    utils.BoolSetting("print-motd", "Set whether I print /motd"))
@utils.export("botset", utils.BoolSetting("pretty-activity",
    "Whether or not to pretty print activity"))
@utils.export("channelset", utils.BoolSetting("print",
    "Whether or not to print activity a channel to logs"))
class Module(ModuleManager.BaseModule):
    def _print(self, event):
        if (event["channel"] and
                not event["channel"].get_setting("print", True)):
            return

        line = event["line"]
        if event["pretty"] and self.bot.get_setting("pretty-activity", False):
            line = event["pretty"]

        context = (":%s" % event["context"]) if event["context"] else ""
        self.bot.log.info("%s%s | %s", [
            str(event["server"]), context, utils.irc.parse_format(line)])

    @utils.hook("formatted.message.channel")
    @utils.hook("formatted.notice.channel")
    @utils.hook("formatted.notice.private")
    @utils.hook("formatted.join")
    @utils.hook("formatted.part")
    @utils.hook("formatted.nick")
    @utils.hook("formatted.server-notice")
    @utils.hook("formatted.invite")
    @utils.hook("formatted.mode.channel")
    @utils.hook("formatted.topic")
    @utils.hook("formatted.topic-timestamp")
    @utils.hook("formatted.kick")
    @utils.hook("formatted.quit")
    @utils.hook("formatted.rename")
    @utils.hook("formatted.chghost")
    def formatted(self, event):
        self._print(event)

    @utils.hook("formatted.motd")
    def motd(self, event):
        if self.bot.get_setting("print-motd", True):
            self._print(event)