Advertisement
Guest User

Twitch bot

a guest
Dec 11th, 2016
532
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.50 KB | None | 0 0
  1. import socket
  2.  
  3. SERVER = "irc.twitch.tv"
  4. PORT = 6667
  5. PASS = "oauth:kx4gmv2z2xq6yzccqx9nq7xuur4ock"
  6. BOT = "nubcakesbot"
  7. CHANNEL = "stabledemise"
  8. BOTOP= "jacobtheplayer"
  9.  
  10. def sendMessage(s, message):
  11.     messageTemp = "PRIVMSG #" + CHANNEL + " :" + message
  12.     s.send((messageTemp + "\r\n").encode())
  13.  
  14. def getUser(line):
  15.     separate = line.split(":", 2)
  16.     user = separate[1].split("!", 1)[0]
  17.     return user
  18.    
  19. def getMessage(line):
  20.     global message
  21.     try:
  22.         message = (line.split(":", 2))[2]
  23.     except:
  24.         message = ""
  25.     return message
  26.    
  27. def joinchat():
  28.     readbuffer_join = "".encode()
  29.     Loading = True
  30.    
  31.     while Loading:
  32.         readbuffer_join = s.recv(1024)
  33.         readbuffer_join = readbuffer_join.decode()
  34.         temp = readbuffer_join.split("\n")
  35.         readbuffer_join = readbuffer_join.encode()
  36.         readbuffer_join = temp.pop()
  37.         for line in temp:
  38.             Loading = loadingCompleted(line)
  39.     sendMessage(s, "Chat room joined!")
  40.     print("Bot has joined " + CHANNEL + " Channel!")
  41.  
  42. def loadingCompleted(line):
  43.     if ("End of /NAMES list" in line):
  44.         return False
  45.     else:
  46.         return True
  47.        
  48. s_prep = socket.socket()
  49. s_prep.connect((SERVER, PORT))
  50. s_prep.send(("PASS " + PASS + "\r\n").encode())
  51. s_prep.send(("NICK " + BOT + "\r\n").encode())
  52. s_prep.send(("JOIN #" + CHANNEL + "\r\n").encode())
  53. s = s_prep
  54. joinchat()
  55. readbuffer = ""
  56.  
  57. def Console(line):
  58.     if "PRIVMSG" in line:
  59.         return False
  60.     else:
  61.         return True
  62.  
  63. while True:
  64.         try:
  65.             readbuffer = s.recv(1024)
  66.             readbuffer = readbuffer.decode()
  67.             temp = readbuffer.split("\n")
  68.             readbuffer = readbuffer.encode()
  69.             readbuffer = temp.pop()
  70.         except:
  71.             temp = ""
  72.         for line in temp:
  73.             if line == "":
  74.                 break
  75.             # So twitch doesn't timeout the bot.
  76.             if "PING" in line and Console(line):
  77.                 msgg = "PONG tmi.twitch.tv\r\n".encode()
  78.                 s.send(msgg)
  79.                 print(msgg)
  80.                 break
  81.             user = getUser(line)
  82.             message = getMessage(line)
  83.             print(user + " > " + message)
  84.             PMSG = "/w " + user + " "
  85.  
  86. #commands
  87.  
  88.             if "!command" in message:
  89.                 sendMessage(s, "text")
  90.                 break
  91.             if "!private" in message:
  92.                 sendMessage(s, PMSG + "private text")
  93.                 break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement