Advertisement
Guest User

Untitled

a guest
Sep 4th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.56 KB | None | 0 0
  1. # This Python file uses the following encoding: utf-8
  2. import socket
  3. import random
  4. import time
  5. SERVER = "irc.twitch.tv" # server
  6. PORT = 6667 # port
  7. PASS = "" # bot password can be found on https://twitchapps.com/tmi/
  8. BOT = "AnthemHalo" # Bot's name [NO CAPITALS]
  9. CHANNEL = "" # Channal name [NO CAPITALS]
  10. OWNER = "AnthemHalo" # Owner's name [NO CAPITALS]
  11.  
  12. ### Functions
  13.  
  14. def sendMessage(s, message):
  15. messageTemp = "PRIVMSG #" + CHANNEL + " :" + message
  16. s.send((messageTemp + "\r\n").encode('utf-8'))
  17.  
  18. def getUser(line):
  19. separate = line.split(":", 2)
  20. try:
  21. user = separate[1].split("!", 1)[0]
  22. except IndexError:
  23. user = "error making user"
  24. return user
  25. def getMessage(line):
  26. global message
  27. try:
  28. message = (line.split(":", 2))[2]
  29. except:
  30. message = ""
  31. return message
  32. def joinchat():
  33. readbuffer_join = "".encode()
  34. Loading = True
  35. while Loading:
  36. readbuffer_join = s.recv(1024)
  37. readbuffer_join = readbuffer_join.decode('utf-8')
  38. temp = readbuffer_join.split("\n")
  39. readbuffer_join = readbuffer_join.encode('utf-8')
  40. readbuffer_join = temp.pop()
  41. for line in temp:
  42. Loading = loadingCompleted(line)
  43. print("Bot has joined " + CHANNEL + " Channel!")
  44.  
  45. def loadingCompleted(line):
  46. if ("End of /NAMES list" in line):
  47. return False
  48. else:
  49. return True
  50. ### Code runs
  51. s_prep = socket.socket()
  52. s_prep.connect((SERVER, PORT))
  53. s_prep.send(("PASS " + PASS + "\r\n").encode())
  54. s_prep.send(("NICK " + BOT + "\r\n").encode())
  55. s_prep.send(("JOIN #" + CHANNEL + "\r\n").encode())
  56. s = s_prep
  57. joinchat()
  58. readbuffer = ""
  59. def Console(line):
  60. # gets if it is a user or twitch server
  61. if "PRIVMSG" in line:
  62. return False
  63. else:
  64. return True
  65. s.send(("CAP REQ :twitch.tv/commands\r\n").encode())
  66. ##################### COMMAND VARIABLES #####################
  67. ###client = RevloClient(api_key=token)
  68.  
  69. ###############################################################
  70. random.seed()
  71. while True:
  72. try:
  73. readbuffer = s.recv(1024)
  74. readbuffer = readbuffer.decode('utf-8')
  75. temp = readbuffer.split("\n")
  76. readbuffer = readbuffer.encode('utf-8')
  77. readbuffer = temp.pop()
  78. except:
  79. temp = ""
  80. print("Could not make temp")
  81. for line in temp:
  82. if line == "":
  83. break
  84. # So twitch doesn't timeout the bot.
  85. if "PING" in line and Console(line):
  86. msgg = "PONG tmi.twitch.tv\r\n".encode()
  87. s.send(msgg)
  88. print(msgg)
  89. break
  90. # get user
  91. user = getUser(line)
  92. # get message send by user
  93. message = getMessage(line)
  94. # for you to see the chat from CMD
  95. try:
  96. print(user + " > " + message)
  97. except:
  98. print("Invalid character sent by " + user)
  99. # sends private msg to the user (start line)
  100. PMSG = "/w " + user + " "
  101.  
  102. ################################# Command ##################################
  103. ############################ Add commands here #############################
  104. ############################################################################
  105. if(user == BOT):
  106. randomcolor = ""
  107. for x in range(6):
  108. randomcolor += random.choice('0123456789abcdef')
  109. sendMessage(s, "/color #" + randomcolor)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement