summary refs log tree commit diff
path: root/config.py
blob: 27cf5c4fdec439df0396fa34fefc3eb0dce4ab81 (plain)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import importlib, sys

# default config file, copy the contents into local_config.py and modify
if __name__ == "local_config":
    config = importlib.reload(sys.modules["config"]).config
else:
    class config:  # dummy, so the local config can simply be a copy of this template
        ...


class config(config):
    class self:
        nick = "pawbot"
        username = "pawky_bot"
        # you should probably indicate yourself to be the owner of the bot, in username, or realname, or both
        realname = "pawky's bot"
        source = "/home/pawky/git/sotdbot"  # so far only used for ctcp response
        gitdir = "./"  # where is the bot git dir? currently only used for version (git commit hash, assuming latest commit == latest version)

    class server:
        name = "town"
        host = "localhost"
        port = 6667
        ssl = False
        nickserv_auth = False
        nickserv_mask = (
            "NickServ!NickServ@localhost"  # the mask you receive from server
        )
        nickserv_squery = False  # squery seems to only be a thing on ngircd
        nickserv_path = "NickServ@localhost"  # the mask you actually send commands to
        # get password from secret file
        nickserv_pass = open("pass.txt", "r").read().strip() if nickserv_auth else ""
        nickserv_recover = "RECOVER"  # I recall it being GHOST on some networks?
        channel = "#bots"
        autojoin = []
        blacklisted_channels = []

    class admin:
        # ircv3 account-tag based admin
        accounts = ["pawky", "sotdboat"]
        # hostmask-based admin, if at all possible, you should try to use a vhost or reverse dns, or identd, to prevent fakery
        hostmasks = ["pawky!pawky@localhost", "*!pawky@localhost"]

    class cmd:
        # right now, single-character prefixes only (plus bot's own nick)
        prefixes = ["!"]
        # disabled commands, won't run via normal means...probably
        disabled = []
        # admin-only override,
        # useful for testing broken commands which should still be normal-user accessible
        # commands which should only ever be used by admins, should be designated as such in code, not through here (e.g. exit)
        admin_only = []
        ignored_nicks = []
        # try to read youtube page only up to <body> tag, maybe it's faster?
        # premature optimization is the root of all evil
        yt_premature_opt = True

    capabilities = [  #    what capabilities shall we request?
        "message-tags",  # needed for account-tag!
        "account-tag",  #  account tag allows us to identify people without needing custom login!
        "multi-prefix",  # perhaps eventually useful for detecting people's status, such as +v AND +o ? not currently needed
        "batch",  #        we wouldn't want to trigger on historic message playback (only usage of it I've seen)
        "away-notify",  #  no functionality deals with away status yet, but could be interesting
        "account-notify",  #  I don't remember why I try requesting this lol, I think it's to do with account-tag
        "chghost",  #         uh, same, I think?
    ]

# cap-notify draft/account-registration draft/channel-rename draft/persistence draft/read-marker echo-message ergo.chat/nope extended-join extended-monitor invite-notify labeled-response sasl=PLAIN,EXTERNAL server-time setname userhost-in-names znc.in/self-message
# message-tags multi-prefix account-tag batch away-notify account-notify chghost

# you should remove the following lines if you're editing local_config.py
if __name__ == "config":
    try:
        config = importlib.reload(sys.modules["local_config"]).config
    except ModuleNotFoundError:
        print("\x1b[31m!!! you should probably set up local config !!!\x1b[0m")
    except KeyError:
        try:
            from local_config import config
        except ModuleNotFoundError:
            print("\x1b[31m!!! you should probably set up local config !!!\x1b[0m")