Advertisement
Guest User

Untitled

a guest
Nov 4th, 2016
492
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. confyg.py
  2.  
  3. HOST = "irc.twitch.tv"
  4. PORT = 6667
  5. NICK = "kveth_o_bot"
  6. PASS = "oauth:ctrb2g9f90ffyhk8qlz8zas3r5efbd"
  7. CHAN = "kvethlorien"
  8.  
  9. oplist = {}
  10.  
  11.  
  12. utils.py
  13.  
  14. import config
  15. import urllib2
  16. import json
  17. import time
  18. import thread
  19. from time import sleep
  20.  
  21.  
  22.  
  23.  
  24. def mess(sock, message):
  25. sock.send("PRIVMSG #{} :{}\r\n".format(config.CHAN, message))
  26.  
  27.  
  28.  
  29. def ban(sock, user):
  30. mess(sock, ".ban {}".format(user))
  31.  
  32.  
  33. def timeout(sock, user, seconds = 500):
  34. mess(sock, ".timeout {}".format(user, seconds))
  35.  
  36. #req = request
  37. #res = response
  38.  
  39.  
  40. def fillOpList():
  41. while True:
  42. try:
  43. url = "http://tmi.twitch.tv/group/user/kvethlorien/chatters"
  44. req = urllib2.Request(url, headers={"accept": "*/*"})
  45. res = urllib2.urlopen(req).read()
  46. if res.find("502 bad gateaway") == -1:
  47. config.oplist.clear()
  48. data = json.loads(res)
  49. for p in data["chatters"]["moderators"]:
  50. config.oplist[p] = "mod"
  51. for p in data["chatters"]["global_mods"]:
  52. config.oplist[p] = "global_mod"
  53. for p in data["chatters"]["admins"]:
  54. config.oplist[p] = "admin"
  55. for p in data["chatters"]["staff"]:
  56. config.oplist[p] = "staff"
  57. except:
  58. "Something went wrong...do nothing"
  59. sleep(5)
  60.  
  61.  
  62. def isOp(user):
  63. return user in config.oplist
  64.  
  65.  
  66. bot.py
  67.  
  68.  
  69. import config
  70. import utils
  71. import socket
  72. import re
  73. import time
  74. import thread
  75. from time import sleep
  76.  
  77.  
  78. def main():
  79. s = socket.socket()
  80. s.connect((config.HOST, config.PORT))
  81. s.send("PASS {}\r\n".format(config.PASS).encode("utf-8"))
  82. s.send("NICK {}\r\n".format(config.NICK).encode("utf-8"))
  83. s.send("JOIN #{}\r\n".format(config.CHAN).encode("utf-8"))
  84.  
  85. chat_message = re.compile(r"^:\w+!\w+@\w+\.tmi\.twitch\.tv PRIVMSG #\w+:")
  86. utils.mess(s, "I'm a stupid Bad Robot")
  87.  
  88. thread.start_new_thread(utils.fillOpList, ())
  89. while True:
  90. response = s.recv(1024).decode("utf-8")
  91. if response == "PING :tmi.twitch.tv\r\n":
  92. s.send("POND :tmi.twitch.tv\r\n".encode("utf-8"))
  93. else:
  94.  
  95. username = re.search(r"\w+", response).group(0)
  96. message = chat_message.sub("", response)
  97. print(response)
  98.  
  99. if message.strip() == "!time":
  100. utils.mess(s, "It's currently" + time.strftime("%I:%M %p %Z on %A %B %d %Y"))
  101. if message.strip() == "!ping" and utils.isOp(username):
  102. utils.mess(s, "pong!")
  103. sleep(1)
  104.  
  105.  
  106. if __name__ == "__main__":
  107. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement