From 1808fa74f01f8365b030e17ca58cd9f7ee08fd83 Mon Sep 17 00:00:00 2001 From: jan6 Date: Tue, 4 Oct 2022 19:01:19 -0700 Subject: [PATCH] rework config to be more flexible, and comment more idk about stuff.py's changes --- .gitignore | 3 +++ config.py | 56 +++++++++++++++++++++++++++++++++++++----------------- stuff.py | 5 +++-- 3 files changed, 45 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 535b467..f05327d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ venv pass.txt +local_config.py +log.txt + # ---> Python # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/config.py b/config.py index 76dbf9e..19ad74e 100644 --- a/config.py +++ b/config.py @@ -1,9 +1,19 @@ -class config: +# default config file, copy the contents into local_config.py and modify +if __name__ == "local_config": + from config import config +else: + + class config: # dummy, so the local config can simply be a copy of this template + ... + + +class config(config): class self: nick = "bot6" - username = "jan6_bot" # you can set it to your username + username = "jan6_bot" + # you should probably indicate yourself to be the owner of the bot, in username, or realname, or both realname = "jan6's bot" - source = "https://tildegit.org/jan6/bot6" + source = "https://tildegit.org/jan6/bot6" # so far only used for ctcp response, perhaps we're running a fork? class server: name = "libera" @@ -13,28 +23,40 @@ class config: nickserv_auth = True # get password from secret file nickserv_pass = open("pass.txt", "r").read().strip() - nickserv_recover = "RECOVER" #might be GHOST sometimes? - channel = "##jan6" - autojoin = ["##share", "#1337331"] + nickserv_recover = "RECOVER" # I recall it being GHOST on some networks? + channel = "#bots" + autojoin = ["#some-other", "##channels"] class admin: - accounts = ["jan6"] - hostmasks = ["jan6!jan6@mischievous.deity","jan6!~jan6@mischievous.deity"] + # ircv3 account-tag based admin + accounts = ["jan6", "totally-not-jan6"] + # hostmask-based admin, if at all possible, you should try to use a vhost or reverse dns, to prevent fakery + hostmasks = ["jan6!jan6@mischievous.deity", "jan6!~jan6@mischievous.deity"] class cmd: + # right now, single-character prefixes only (plus bot's own nick) prefixes = ["6", "'"] - # disabled commands, won't run via normal means, probably + # 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 = [] - capabilities = [ - "message-tags", - "multi-prefix", - "account-tag", - "batch", - "account-notify", - "chghost", - "away-notify", + 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 ? + "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 + "account-notify", # I don't remember why I try requesting this lol + "chghost", # uh, same, forgot ] + + +# you can remove the following lines if you're editing local_config.py +if __name__ == "config": + try: + from local_config import config + except ModuleNotFoundError: + print("\x1b[31m!!! you should probably set up local config !!!\x1b[0m") diff --git a/stuff.py b/stuff.py index b6262dc..53412fb 100644 --- a/stuff.py +++ b/stuff.py @@ -93,9 +93,10 @@ def stuff(bot, sock): for line in recv_lines: try: - server.parse_tokens(line) + server.parse_tokens(line) except IndexError: - print("\x1b[31;1mNGIRCD SUCKS\x1b[0m ",line) + print("\x1b[31;1mNGIRCD SUCKS\x1b[0m ", line) + continue stri = line.format() for k, v in util.dict.items(): stri = stri.replace(k, v)