Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # bot.py
- import cfg
- import socket
- import time
- import re
- def chat(sock, msg):
- sock.send("PRIVMSG #{} :{}".format(cfg.CHAN, msg))
- def ban(sock, user):
- chat(sock, ".ban {}".format(user))
- def timeout(sock, user, secs=60):
- chat(sock, ".timeout {}".format(user, secs))
- CHAT_MSG = re.compile(r"^:\w+!\w+@\w+\.tmi\.twitch\.tv PRIVMSG #\w+ :")
- # network functions go here
- s = socket.socket()
- s.connect((cfg.HOST, cfg.PORT))
- s.send("PASS {}\r\n".format(cfg.PASS).encode("utf-8"))
- s.send("NICK {}\r\n".format(cfg.NICK).encode("utf-8"))
- s.send("JOIN {}\r\n".format(cfg.CHAN).encode("utf-8"))
- while True:
- response = s.recv(1024).decode("utf-8")
- if response == "PING :tmi.twitch.tv\r\n":
- s.send("PONG :tmi.twitch.tv\r\n".encode("utf-8"))
- print("Pong")
- else:
- username = re.search(r"\w+", line).group(0) # return the entire match
- message = CHAT_MSG.sub("", line)
- print(username + ": " + message)
- for pattern in cfg.PATT:
- if re.match(pattern, message):
- ban(s, username)
- break
- time.sleep(1 / cfg.RATE)
- //////////////
- #cfg.py
- HOST = "irc.twitch.tv" # Twitch irc host
- PORT = 6667 # IRC port
- CHAN = "#*************" # CHAN = the channel to connect to
- NICK = "**********" # NICK = Twitch username
- PASS = "************************************" # authkey for the NICK
- RATE = (100/30) # 100 per 30 seconds = Mod |||| 20 per 30 seconds = User
- PATT = [
- r"swear",
- # ...
- r"some_pattern"
- ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement