Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # This Python file uses the following encoding: utf-8
- import socket
- import random
- import time
- SERVER = "irc.twitch.tv" # server
- PORT = 6667 # port
- PASS = "" # bot password can be found on https://twitchapps.com/tmi/
- BOT = "AnthemHalo" # Bot's name [NO CAPITALS]
- CHANNEL = "" # Channal name [NO CAPITALS]
- OWNER = "AnthemHalo" # Owner's name [NO CAPITALS]
- ### Functions
- def sendMessage(s, message):
- messageTemp = "PRIVMSG #" + CHANNEL + " :" + message
- s.send((messageTemp + "\r\n").encode('utf-8'))
- def getUser(line):
- separate = line.split(":", 2)
- try:
- user = separate[1].split("!", 1)[0]
- except IndexError:
- user = "error making user"
- return user
- def getMessage(line):
- global message
- try:
- message = (line.split(":", 2))[2]
- except:
- message = ""
- return message
- def joinchat():
- readbuffer_join = "".encode()
- Loading = True
- while Loading:
- readbuffer_join = s.recv(1024)
- readbuffer_join = readbuffer_join.decode('utf-8')
- temp = readbuffer_join.split("\n")
- readbuffer_join = readbuffer_join.encode('utf-8')
- readbuffer_join = temp.pop()
- for line in temp:
- Loading = loadingCompleted(line)
- print("Bot has joined " + CHANNEL + " Channel!")
- def loadingCompleted(line):
- if ("End of /NAMES list" in line):
- return False
- else:
- return True
- ### Code runs
- s_prep = socket.socket()
- s_prep.connect((SERVER, PORT))
- s_prep.send(("PASS " + PASS + "\r\n").encode())
- s_prep.send(("NICK " + BOT + "\r\n").encode())
- s_prep.send(("JOIN #" + CHANNEL + "\r\n").encode())
- s = s_prep
- joinchat()
- readbuffer = ""
- def Console(line):
- # gets if it is a user or twitch server
- if "PRIVMSG" in line:
- return False
- else:
- return True
- s.send(("CAP REQ :twitch.tv/commands\r\n").encode())
- ##################### COMMAND VARIABLES #####################
- ###client = RevloClient(api_key=token)
- ###############################################################
- random.seed()
- while True:
- try:
- readbuffer = s.recv(1024)
- readbuffer = readbuffer.decode('utf-8')
- temp = readbuffer.split("\n")
- readbuffer = readbuffer.encode('utf-8')
- readbuffer = temp.pop()
- except:
- temp = ""
- print("Could not make temp")
- for line in temp:
- if line == "":
- break
- # So twitch doesn't timeout the bot.
- if "PING" in line and Console(line):
- msgg = "PONG tmi.twitch.tv\r\n".encode()
- s.send(msgg)
- print(msgg)
- break
- # get user
- user = getUser(line)
- # get message send by user
- message = getMessage(line)
- # for you to see the chat from CMD
- try:
- print(user + " > " + message)
- except:
- print("Invalid character sent by " + user)
- # sends private msg to the user (start line)
- PMSG = "/w " + user + " "
- ################################# Command ##################################
- ############################ Add commands here #############################
- ############################################################################
- if(user == BOT):
- randomcolor = ""
- for x in range(6):
- randomcolor += random.choice('0123456789abcdef')
- sendMessage(s, "/color #" + randomcolor)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement