add nickserv support

This commit is contained in:
Ben Harris 2020-02-24 11:32:56 -05:00
parent c9aa98d225
commit 82313c091e
4 changed files with 19 additions and 5 deletions

1
.gitignore vendored
View File

@ -59,3 +59,4 @@ docs/_build/
target/
venv/
account.ini

4
account.ini.sample Normal file
View File

@ -0,0 +1,4 @@
[nickserv]
username = bensbots
password = my super secret password

View File

@ -22,6 +22,12 @@ config = configparser.ConfigParser(
config.read("config.ini")
bot = config["irc"]
# read account info if it exists
if os.path.isfile("account.ini"):
account = configparser.ConfigParser()
account.read("account.ini")
account = account["nickserv"]
def grammar(rules):
try:
@ -45,6 +51,7 @@ def populate():
DB = {}
for p in glob.glob("/home/*/.tracery/*"):
name, ext = os.path.splitext(p)
name = os.path.basename(name)
if name.startswith(".") or ext not in (".json", ""):
continue
if p in DB:
@ -159,13 +166,16 @@ if __name__ == "__main__":
rawsend(f"JOIN {chan}")
if "001" in msg:
if account is not None:
rawsend(
"SQUERY NickServ IDENTIFY %s %s"
% (account["username"], account["password"])
)
for c in bot.getlist("channels"):
rawsend(f"JOIN {c}")
rawsend("MODE %s +B" % bot["nick"])
m = re.match(
":(?P<nick>[^ ]+)!.*PRIVMSG #(?P<chan>\w+) :(?P<msg>.*)", msg
)
m = re.match(":(?P<nick>[^ ]+)!.*PRIVMSG #(?P<chan>\w+) :(?P<msg>.*)", msg)
if m and m.groupdict():
m = m.groupdict()
try:
@ -174,4 +184,3 @@ if __name__ == "__main__":
print("ERROR" + str(m))
print(e)
traceback.print_exc()

View File

@ -5,7 +5,7 @@ After=tracer.service
[Service]
Type=simple
WorkingDirectory=/home/ben/workspace/tracer
ExecStart=/home/ben/workspace/tracer/venv/bin/python3 /home/ben/workspace/tracer/tracer.py
ExecStart=/home/ben/workspace/tracer/venv/bin/python3 tracer.py
Restart=always
RestartSec=5
StartLimitInterval=60s