Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2016
461
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 46.99 KB | None | 0 0
  1. import re
  2. import socket
  3. import json
  4. import logging
  5. import urllib.request
  6. from datetime import date
  7. from datetime import datetime
  8. from urllib.parse import quote
  9. import select
  10.  
  11. with open("commands.json", "a") as data_file:
  12. pass
  13. with open("commands.json", "r+") as data_file:
  14. try:
  15. ecmdf = json.load(data_file)
  16. except ValueError:
  17. print("Commands file corrupt or does not exist. Creating a new one...")
  18. if data_file != "":
  19. nowTime = datetime.now().strftime("%Y-%m-%d %H;%M;%S")
  20. backupFN = "commands-%s.json.bak" % nowTime
  21. with open(backupFN, "w") as backupFile:
  22. data_file.seek(0)
  23. backupFile.write(data_file.read())
  24. print("A backup of your previous 'commands.json' file has been saved as '%s'." % backupFN)
  25. data_file.seek(0)
  26. data_file.truncate()
  27. json.dump({}, data_file)
  28. print("Commands file created.\n")
  29. data_file.seek(0)
  30. ecmdf = json.load(data_file)
  31.  
  32. with open("disabledcommands.json", "a") as command_off:
  33. pass
  34. with open("disabledcommands.json", "r+") as command_off:
  35. try:
  36. off = json.load(command_off)
  37. except ValueError:
  38. print("File does not exist")
  39. if command_off != "":
  40. nowTime = datetime.now().strftime("%Y-%m-%d %H;%M;%S")
  41. BackupFN = "commandsoff-%s.json.bak" % nowTime
  42. with open(BackupFN, "w") as backupFILE:
  43. command_off.seek(0)
  44. backupFILE.write(command_off.read())
  45. print("Backup created as '%s'." % BackupFN)
  46. command_off.seek(0)
  47. command_off.truncate()
  48. json.dump({}, command_off)
  49. print("commandsoff file created.\n")
  50. command_off.seek(0)
  51. off = json.load(command_off)
  52.  
  53. # --------------------------------------------- Start Settings ----------------------------------------------------
  54. HOST = "irc.twitch.tv" # Hostname of the IRC-Server in this case twitch's
  55. PORT = 6667 # Default IRC-Port
  56. CHAN = "#aerozztv" # Channelname = #{Nickname}
  57. NICK = "Evilbot254" # Nickname = Twitch username
  58. CHECK = 'CAP REQ :twitch.tv/tags'
  59. PASS = "oauthKey" # www.twitchapps.com/tmi/ will help to retrieve the required authkey
  60. # --------------------------------------------- End Settings -------------------------------------------------------
  61.  
  62.  
  63. # --------------------------------------------- Start Functions ----------------------------------------------------
  64. def send_pong(msg):
  65. con.send(bytes('PONG %s\r\n' % msg, 'UTF-8'))
  66.  
  67.  
  68. def send_message(chan, msg):
  69. con.send(bytes('PRIVMSG %s :%s\r\n' % (chan, msg), 'UTF-8'))
  70.  
  71.  
  72. def send_nick(nick):
  73. con.send(bytes('NICK %s\r\n' % nick, 'UTF-8'))
  74.  
  75.  
  76. def send_pass(password):
  77. con.send(bytes('PASS %s\r\n' % password, 'UTF-8'))
  78.  
  79.  
  80. def join_channel(chan):
  81. con.send(bytes('JOIN %s\r\n' % chan, 'UTF-8'))
  82.  
  83. def check_user(check):
  84. con.send(bytes('CHECK %s\r\n' % check, 'UTF-8'))
  85.  
  86.  
  87. def part_channel(chan):
  88. con.send(bytes('PART %s\r\n' % chan, 'UTF-8'))
  89. # --------------------------------------------- End Functions ------------------------------------------------------
  90.  
  91.  
  92. # --------------------------------------------- Start Helper Functions ---------------------------------------------
  93. def get_sender(msg):
  94. result = ""
  95. for char in msg:
  96. if char == "!":
  97. break
  98. if char != ":":
  99. result += char
  100. return result
  101.  
  102.  
  103. def get_message(msg):
  104. result = ""
  105. i = 3
  106. length = len(msg)
  107. while i < length:
  108. result += msg[i] + " "
  109. i += 1
  110. result = result.lstrip(':')
  111. return result
  112.  
  113.  
  114. def parse_message(msg):
  115. if len(msg) >= 1:
  116. msg = msg.split(' ')
  117. options = {'!test': command_test,
  118. '!hello': command_hello,
  119. '!price': command_price,
  120. '!steamprofile': command_steamprofile,
  121. '!steamid64': command_testing,
  122. '!followingsince': command_following,
  123. '!inventoryprice': command_inventory,
  124. '!inventoryhelp': command_inventoryhelp,
  125. '!steamstate': command_steamstate,
  126. '!inventory': command_inventory,
  127. '!inv' : command_inventory,
  128. '!pricecurrency': command_pricecurrency,
  129. '!stats': command_stats,
  130. '!games': command_games,
  131. '!commandadd': command_add,
  132. '!followcount' : command_followcount,
  133. '!commandsremove' : command_remove,
  134. '!pricehelp' : command_pricehelp,
  135. '!evilcommands' : command_commands,
  136. '!vaccheck' : command_vaccheck,
  137. '!watching' : command_viewers,
  138. '!checking' : command_convert,
  139. '!greet' : command_greetings,
  140. '!namecheck' : command_nametest,
  141. '!evildisable' : command_disable,
  142. '!subcheck' : command_subtest,
  143. '!eviladd': command_addcom,
  144. '!help' : command_help,
  145. '!optest' : command_optest,
  146. '!keys' : command_keys,
  147. '!evildel' : command_delcom,
  148. '!evilsay' : command_say}
  149. if msg[0] in options:
  150. options[msg[0]]()
  151. # --------------------------------------------- End Helper Functions -----------------------------------------------
  152.  
  153.  
  154. # --------------------------------------------- Start Command Functions --------------------------------------------
  155. def command_test():
  156. page = urllib.request.urlopen("https://tmi.twitch.tv/group/user/aerozztv/chatters").read().decode("utf-8")
  157. jsonData = json.loads(page)
  158. moderators = jsonData["chatters"]["moderators"]
  159. viewers = jsonData["chatters"]["viewers"]
  160. if sender in moderators:
  161. send_message(CHAN, 'testing some stuff')
  162. else:
  163. send_message(CHAN, "only mods can do this")
  164.  
  165. def command_hello():
  166. send_message(CHAN, 'Hello my name is evilbot254')
  167.  
  168. def back_apiError():
  169. send_message(CHAN, "@%s -> This bot sucks please try again later." % sender)
  170.  
  171. def command_testing():
  172. global target
  173. msg = message[:-1].split(" ")
  174. cmd = msg[0].lower()
  175. if len(msg) >= 2:
  176. target = msg[1].strip("@").lower()
  177. else:
  178. target = sender
  179. page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
  180. jsonData = json.loads(page)
  181. steamid64 = jsonData["steam_id"]
  182. if steamid64:
  183. if target == sender:
  184. send_message(CHAN, "@%s -> Your steamid64 is %s" % (sender,steamid64))
  185. else:
  186. send_message(CHAN, "@%s -> %s's steamid64 is %s" % (sender,target,steamid64))
  187. else:
  188. if target == sender:
  189. send_message(CHAN, "@%s -> Your steam account is not linked." % sender)
  190. else:
  191. send_message(CHAN, "@%s -> %s's Steam account is not linked." % (sender, target))
  192.  
  193. def command_price():
  194. global target
  195. msg = message[:-1].split(" ")
  196. if len(msg) >= 2:
  197. try:
  198. now = date.today()
  199. page = urllib.request.urlopen("https://api.twitch.tv/kraken/users/%s/follows/channels/aerozztv" % sender).read().decode("utf-8")
  200. jsonData = json.loads(page)
  201. followed = jsonData["created_at"].split("T")[0].split("-")
  202. followed = date(int(followed[0]), int(followed[1]), int(followed[2]))
  203. followTime = (now - followed).days
  204. except socket.error:
  205. send_message(CHAN, "You haven't been following for 31 days")
  206. skin = " ".join(msg[1:])
  207. skin = skin.replace("stattrak", r"StatTrak" + "\u2122")
  208. skin = skin.replace("s", "S")
  209. skin = skin.replace("ft", r"(Field-Tested)")
  210. skin = skin.replace("bS", r"(Battle-Scarred)")
  211. skin = skin.replace("fn", r"(Factory New)")
  212. skin = skin.replace("ww", r"(Well-Worn)")
  213. skin = skin.replace("mw", r"(Minimal Wear)")
  214. skin = skin.replace("ak47", r"AK-47 |")
  215. skin = skin.replace("m4a1", r"M4A1-S |")
  216. skin = skin.replace("m4a1-s", r"M4A1-S |")
  217. skin = skin.replace("uSp", r"USP-S |")
  218. skin = skin.replace("p2k", r"P2000 |")
  219. skin = skin.replace("awp", r"AWP |")
  220. skin = skin.replace("cz", r"CZ75-Auto |")
  221. skin = skin.replace("dual", r"Dual Berettas |")
  222. skin = skin.replace("pp-bison", r"PP-Bison |")
  223. skin = skin.replace("p250", r"P250 |")
  224. skin = skin.replace("aug", r"AUG |")
  225. skin = skin.replace("ump", r"UMP-45 |")
  226. skin = skin.replace("galil", r"Galil AR |")
  227. skin = skin.replace("scout", r"SSG 08 |")
  228. skin = skin.replace("tec9", r"Tec-9 |")
  229. skin = skin.replace("xm", r"XM1014 |")
  230. skin = skin.replace("g3", r"G3SG1 |")
  231. skin = skin.replace("m249", r"M249 |")
  232. skin = skin.replace("mp9", r"MP9 |")
  233. skin = skin.replace("sawedoff", r"Sawed-Off |")
  234. skin = skin.replace("sawed", r"Sawed-Off |")
  235. skin = skin.replace("sg", r"SG 553 |")
  236. skin = skin.replace("awp", r"AWP |")
  237. skin = skin.replace("glock", r"Glock-18 |")
  238. skin = skin.replace("desert", r"Desert Eagle |")
  239. skin = skin.replace("r8", r"R8 Revolver |")
  240. skin = skin.replace("revolver", r"R8 Revolver |")
  241. skin = skin.replace("nova", r"Nova |")
  242. skin = skin.replace("mag7", r"MAG-7 |")
  243. skin = skin.replace("swag7", r"MAG-7 |")
  244. skin = skin.replace("mac10", r"MAC-10 |")
  245. skin = skin.replace("mp7", r"MP7 |")
  246. skin = skin.replace("p90", r"P90 |")
  247. skin = skin.replace("pro90", r"P90 |")
  248. skin = skin.replace("mp9", r"MP9 |")
  249. skin = skin.replace("m4a4", r"M4A4 |")
  250. skin = skin.replace("scar", r"SCAR-20 |")
  251. skin = skin.replace("scar20", r"SCAR-20 ")
  252. skin = skin.replace("vanillabayonet", r"★ Bayonet")
  253. skin = skin.replace("vanillabutterfly", r"★ Butterfly Knife")
  254. skin = skin.replace("vanillafalchion", r"★ Falchion Knife")
  255. skin = skin.replace("vanillaflip", r"★ Flip Knife")
  256. skin = skin.replace("vanillagut", r"★ Gut Knife")
  257. skin = skin.replace("vanillahuntsman", r"★ Huntsman Knife")
  258. skin = skin.replace("vanillakarambit", r"★ Karambit")
  259. skin = skin.replace("vanillam9", r"★ M9 Bayonet")
  260. skin = skin.replace("vanillashadow", r"★ Shadow Daggers")
  261. skin = skin.replace("vanillabowie", r"★ Bowie Knife")
  262. skin = skin.replace("vanillabuttplugs", r"★ Shadow Daggers")
  263. skin = skin.replace("vanillashadowdaggers",r"★ Shadow Daggers")
  264. skin = skin.replace("vanillam9bayonet", r"★ M9 Bayonet")
  265. skin = skin.replace("vanillabowieknife", r"★ Bowie Knife")
  266. skin = skin.replace("bayonet", r"★ Bayonet |")
  267. skin = skin.replace("butterfly", r"★ Butterfly Knife |")
  268. skin = skin.replace("falchion", r"★ Falchion Knife |")
  269. skin = skin.replace("flip", r"★ Flip Knife |")
  270. skin = skin.replace("gut", r"★ Gut Knife |")
  271. skin = skin.replace("huntsman", r"★ Huntsman Knife |")
  272. skin = skin.replace("karambit", r"★ Karambit |")
  273. skin = skin.replace("m9", r"★ M9 Bayonet |")
  274. skin = skin.replace("shadow", r"★ Shadow Daggers |")
  275. skin = skin.replace("bowie", r"★ Bowie Knife |")
  276. skin = skin.replace("buttplugs", r"★ Shadow Daggers |")
  277. skin = skin.replace("shadowdaggers",r"★ Shadow Daggers |")
  278. skin = skin.replace("m9bayonet", r"★ M9 Bayonet |")
  279. skin = skin.replace("bowieknife", r"★ Bowie Knife |")
  280. skin = skin.replace("chanticofire", r"Chantico's Fire")
  281. skin = skin.replace("goldencoil", r"Golden Coil")
  282. skin = skin.replace("hyperbeast", r"Hyper Beast")
  283. skin = skin.replace("alloy", r"Atomic Alloy")
  284. skin = skin.replace("atomic", r"Atomic Alloy")
  285. skin = skin.replace("atomic alloy", r"Atomic Alloy")
  286. skin = skin.replace("hotrod", r"Hot Rod")
  287. skin = skin.replace("masterpiece", r"Master Piece")
  288. skin = skin.replace("brightwater", r"Bright Water")
  289. skin = skin.replace("darkwater", r"Dark Water")
  290. skin = skin.replace("icarusfell", r"Icarus Fell")
  291. skin = skin.replace("bloodtiger", r"Blood Tiger")
  292. skin = skin.replace("borealforest", r"Boreal Forest")
  293. skin = skin.replace("hyperbeast", r"Hyper Beast")
  294.  
  295. try:
  296. print(" https://opskins.com/api/user_api.php?request=GetLowestSalePrices&key=ApiKey&appid=730&contextid=2&names=%s" % quote(skin))
  297. page = urllib.request.urlopen("https://opskins.com/api/user_api.php?request=GetLowestSalePrices&key=ApiKey&appid=730&contextid=2&names=%s" % quote(skin)).read().decode("utf-8")
  298. jsonData = json.loads(page)
  299. price = jsonData["result"]["items"][skin]
  300. realprice = float(int(price)/100)
  301. keyCost = int(float(realprice)/2.7)
  302.  
  303. print("https://opskins.com/api/user_api.php?request=GetLowestSalePrices&key=ApiKey&appid=730&contextid=2&names=%s" % quote(skin).replace("25", "").replace("%28", "(").replace("%29", ")").replace("A2", "T").replace("%84%", "S").replace("StatTrAk-47%20%7C%E2", "").replace("%E2", "★").replace("%98", "").replace("%85", ""))
  304. print(page)
  305. try:
  306. if followTime >= 31 and keyCost > 1 or keyCost == 0:
  307. send_message(CHAN, 'The average price is %s USD(%s Keys) ' % (realprice,keyCost))
  308.  
  309.  
  310. elif followTime <31:
  311. send_message(CHAN, "You haven't been following for 31 days")
  312.  
  313. elif "st" in page:
  314. send_message(CHAN, "Use stattrak instead! Example !price stattrak ak47 vulcan ft." % target)
  315. elif page is "":
  316. send_message(CHAN, "Try again in 30-60 seconds!")
  317.  
  318.  
  319. else:
  320. send_message(CHAN, 'The lowest price is %s USD(%s Key)' % (realprice,keyCost))
  321. except KeyError:
  322. send_message(CHAN, "Invalid item name!")
  323. print("something went wrong1")
  324. except socket.error:
  325. print("something went wrong2")
  326. send_message(CHAN, "@%s -> %s is not a valid name." % (sender, skin))
  327. except UnicodeEncodeError:
  328. print("Something went wrong")
  329. send_message(CHAN, "Since we updated to OPSKINS API the knives and stattrak are currently unavailable")
  330. except TypeError:
  331. send_message(CHAN, "Wrong item name! Example !price stattrak ak47 vulcan ft")
  332. except UnboundLocalError:
  333. pass
  334.  
  335.  
  336.  
  337. else:
  338. send_message(CHAN, "You must provide a skin name.")
  339.  
  340. def command_keys():
  341. global target
  342. msg = message[:-1].split(" ")
  343. if len(msg) >= 2:
  344. try:
  345. now = date.today()
  346. page = urllib.request.urlopen("https://api.twitch.tv/kraken/users/%s/follows/channels/aerozztv" % sender).read().decode("utf-8")
  347. jsonData = json.loads(page)
  348. followed = jsonData["created_at"].split("T")[0].split("-")
  349. followed = date(int(followed[0]), int(followed[1]), int(followed[2]))
  350. followTime = (now - followed).days
  351. except socket.error:
  352. send_message(CHAN, "You haven't been following for 31 days")
  353. skin = " ".join(msg[1:])
  354. skin = skin.replace("stattrak", r"StatTrak" + "\u2122")
  355. skin = skin.replace("s", "S")
  356. skin = skin.replace("ft", r"(Field-Tested)")
  357. skin = skin.replace("bS", r"(Battle-Scarred)")
  358. skin = skin.replace("fn", r"(Factory New)")
  359. skin = skin.replace("ww", r"(Well-Worn)")
  360. skin = skin.replace("mw", r"(Minimal Wear)")
  361. skin = skin.replace("ak47", r"AK-47 |")
  362. skin = skin.replace("m4a1", r"M4A1-S |")
  363. skin = skin.replace("m4a1-s", r"M4A1-S |")
  364. skin = skin.replace("uSp", r"USP-S |")
  365. skin = skin.replace("p2k", r"P2000 |")
  366. skin = skin.replace("awp", r"AWP |")
  367. skin = skin.replace("cz", r"CZ75-Auto |")
  368. skin = skin.replace("dual", r"Dual Berettas |")
  369. skin = skin.replace("pp-bison", r"PP-Bison |")
  370. skin = skin.replace("p250", r"P250 |")
  371. skin = skin.replace("aug", r"AUG |")
  372. skin = skin.replace("ump", r"UMP-45 |")
  373. skin = skin.replace("galil", r"Galil AR |")
  374. skin = skin.replace("scout", r"SSG 08 |")
  375. skin = skin.replace("tec9", r"Tec-9 |")
  376. skin = skin.replace("xm", r"XM1014 |")
  377. skin = skin.replace("g3", r"G3SG1 |")
  378. skin = skin.replace("m249", r"M249 |")
  379. skin = skin.replace("mp9", r"MP9 |")
  380. skin = skin.replace("sawedoff", r"Sawed-Off |")
  381. skin = skin.replace("sawed", r"Sawed-Off |")
  382. skin = skin.replace("sg", r"SG 553 |")
  383. skin = skin.replace("awp", r"AWP |")
  384. skin = skin.replace("glock", r"Glock-18 |")
  385. skin = skin.replace("desert", r"Desert Eagle |")
  386. skin = skin.replace("r8", r"R8 Revolver |")
  387. skin = skin.replace("revolver", r"R8 Revolver |")
  388. skin = skin.replace("nova", r"Nova |")
  389. skin = skin.replace("mag7", r"MAG-7 |")
  390. skin = skin.replace("swag7", r"MAG-7 |")
  391. skin = skin.replace("mac10", r"MAC-10 |")
  392. skin = skin.replace("mp7", r"MP7 |")
  393. skin = skin.replace("p90", r"P90 |")
  394. skin = skin.replace("pro90", r"P90 |")
  395. skin = skin.replace("mp9", r"MP9 |")
  396. skin = skin.replace("m4a4", r"M4A4 |")
  397. skin = skin.replace("scar", r"SCAR-20 |")
  398. skin = skin.replace("scar20", r"SCAR-20 ")
  399. skin = skin.replace("vanillabayonet", r"★ Bayonet")
  400. skin = skin.replace("vanillabutterfly", r"★ Butterfly Knife")
  401. skin = skin.replace("vanillafalchion", r"★ Falchion Knife")
  402. skin = skin.replace("vanillaflip", r"★ Flip Knife")
  403. skin = skin.replace("vanillagut", r"★ Gut Knife")
  404. skin = skin.replace("vanillahuntsman", r"★ Huntsman Knife")
  405. skin = skin.replace("vanillakarambit", r"★ Karambit")
  406. skin = skin.replace("vanillam9", r"★ M9 Bayonet")
  407. skin = skin.replace("vanillashadow", r"★ Shadow Daggers")
  408. skin = skin.replace("vanillabowie", r"★ Bowie Knife")
  409. skin = skin.replace("vanillabuttplugs", r"★ Shadow Daggers")
  410. skin = skin.replace("vanillashadowdaggers",r"★ Shadow Daggers")
  411. skin = skin.replace("vanillam9bayonet", r"★ M9 Bayonet")
  412. skin = skin.replace("vanillabowieknife", r"★ Bowie Knife")
  413. skin = skin.replace("bayonet", r"★ Bayonet |")
  414. skin = skin.replace("butterfly", r"★ Butterfly Knife |")
  415. skin = skin.replace("falchion", r"★ Falchion Knife |")
  416. skin = skin.replace("flip", r"★ Flip Knife |")
  417. skin = skin.replace("gut", r"★ Gut Knife |")
  418. skin = skin.replace("huntsman", r"★ Huntsman Knife |")
  419. skin = skin.replace("karambit", r"★ Karambit |")
  420. skin = skin.replace("m9", r"★ M9 Bayonet |")
  421. skin = skin.replace("shadow", r"★ Shadow Daggers |")
  422. skin = skin.replace("bowie", r"★ Bowie Knife |")
  423. skin = skin.replace("buttplugs", r"★ Shadow Daggers |")
  424. skin = skin.replace("shadowdaggers",r"★ Shadow Daggers |")
  425. skin = skin.replace("m9bayonet", r"★ M9 Bayonet |")
  426. skin = skin.replace("bowieknife", r"★ Bowie Knife |")
  427. skin = skin.replace("chanticofire", r"Chantico's Fire")
  428. skin = skin.replace("goldencoil", r"Golden Coil")
  429. skin = skin.replace("hyperbeast", r"Hyper Beast")
  430. skin = skin.replace("alloy", r"Atomic Alloy")
  431. skin = skin.replace("atomic", r"Atomic Alloy")
  432. skin = skin.replace("atomic alloy", r"Atomic Alloy")
  433. skin = skin.replace("hotrod", r"Hot Rod")
  434. skin = skin.replace("masterpiece", r"Master Piece")
  435. skin = skin.replace("brightwater", r"Bright Water")
  436. skin = skin.replace("darkwater", r"Dark Water")
  437. skin = skin.replace("icarusfell", r"Icarus Fell")
  438. skin = skin.replace("bloodtiger", r"Blood Tiger")
  439. skin = skin.replace("borealforest", r"Boreal Forest")
  440. skin = skin.replace("hyperbeast", r"Hyper Beast")
  441. try:
  442. page = urllib.request.urlopen("https://opskins.com/api/user_api.php?request=GetLowestSalePrices&key=ApiKey&appid=730&contextid=2&names=%s" % quote(skin)).read().decode("utf-8")
  443. jsonData = json.loads(page)
  444. price = jsonData["result"]["items"][skin]
  445. realprice = float(int(price)/100)
  446. keyCost = int(float(realprice)/2.7)
  447. try:
  448. if followTime >= 31 and keyCost > 1:
  449. send_message(CHAN, 'The average amount of Keys are %s Keys ' % (keyCost))
  450.  
  451. elif followTime <31:
  452. send_message(CHAN, "You haven't been following for 31 days")
  453. elif keyCost == 0:
  454. send_message(CHAN, "The item is worth less then a Key!")
  455. else:
  456. send_message(CHAN, 'The average amount of keys is %s Key' % (keyCost))
  457. except KeyError:
  458. send_message(CHAN, "Invalid item name!")
  459. print("something went wrong1")
  460. except socket.error:
  461. print("something went wrong2")
  462. send_message(CHAN, "@%s -> %s is not a valid name." % (sender, skin))
  463. except UnicodeEncodeError:
  464. print("Something went wrong")
  465. send_message(CHAN, "the knives and stattrak are currently unavailable")
  466. except TypeError:
  467. send_message(CHAN, "Wrong item name! Example !keys stattrak ak47 vulcan ft")
  468.  
  469. def command_steamprofile():
  470. global target
  471. msg = message[:-1].split(" ")
  472. cmd = msg[0].lower()
  473. if len(msg) >= 2:
  474. target = msg[1].strip("@").lower()
  475. else:
  476. target = sender
  477. page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
  478. jsonData = json.loads(page)
  479. steamid64 = jsonData["steam_id"]
  480. if steamid64:
  481. if target == sender:
  482. send_message(CHAN, "@%s -> Your steamprofile is https://steamcommunity.com/profiles/%s" % (sender,steamid64))
  483. else:
  484. send_message(CHAN, "@%s -> %s's steamidprofile is https://steamcommunity.com/profiles/%s" % (sender,target,steamid64))
  485. else:
  486. if target == sender:
  487. send_message(CHAN, "@%s -> Your steam account is not linked." % sender)
  488. else:
  489. send_message(CHAN, "@%s -> %s's Steam account is not linked." % (sender, target))
  490.  
  491.  
  492. def command_following():
  493. global target
  494. msg = message[:-1].split(" ")
  495. cmd = msg[0].lower()
  496. if len(msg) >= 2:
  497. target = msg[1].strip("@").lower()
  498. else:
  499. target = sender
  500.  
  501. page = urllib.request.urlopen(" https://apis.rtainc.co/twitchbot/following?channel=AerozzTV&user=%s" % target).read().decode("utf-8")
  502. if ("is not following" in page):
  503. if (target == sender):
  504. send_message(CHAN, "@%s -> You are not following" % sender)
  505. else:
  506. send_message(CHAN, "@%s -> %s is not following" % (sender,target))
  507. else:
  508.  
  509. if (target == sender):
  510. send_message(CHAN, "@%s -> you have been following for %s " % (sender,page))
  511. else:
  512. send_message(CHAN, "@%s -> %s Has been following for %s" % (sender,target,page))
  513.  
  514. def command_inventory():
  515. global target
  516. msg = message[:-1].split(" ")
  517. cmd = msg[0].lower()
  518. if len(msg) >= 2:
  519. target = msg[1].strip("@").lower()
  520. else:
  521. target = sender
  522. try:
  523. page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
  524. jsonData = json.loads(page)
  525. steamid64 = jsonData["steam_id"]
  526. if steamid64:
  527. req = urllib.request.Request("http://csgobackpack.net/api/GetInventoryValue/?id=%s" % steamid64, headers={'User-Agent': 'Mozilla/5.0'})
  528. page = urllib.request.urlopen(req).read().decode('utf-8-sig')
  529. jsonData = json.loads(page)
  530. price = jsonData["value"]
  531. if target == sender:
  532. send_message(CHAN,"@%s -> Your Inventory Value is: $%s" % (sender,price))
  533. else:
  534. send_message(CHAN,"@%s -> %s's Inventory Value is $%s" % (sender,target,price))
  535. else:
  536. if target == sender:
  537. send_message(CHAN,"@%s -> Your steam account must be linked to check your inventory value!" %sender)
  538. else:
  539. send_message(CHAN,"@%s -> %s's Steam account is not linked." %(sender, target))
  540. except socket.error:
  541. send_message(CHAN,"@%s -> That Twitch username seems to be invalid." % sender)
  542. print("something went wrong5")
  543. except KeyError:
  544. send_message(CHAN,"Something went wrong, please try again!")
  545. print("something went wrong6")
  546.  
  547. def command_inventoryhelp():
  548. global target
  549. msg = message[:-1].split(" ")
  550. cmd = msg[0].lower()
  551. if len(msg) >= 2:
  552. target = msg[1].strip("@").lower()
  553. else:
  554. target = sender
  555. try:
  556. if target == sender:
  557. send_message(CHAN, "@%s -> Show's inventory value. (IMPORTANT) stickers on default guns might break it." %sender)
  558. else:
  559. send_message(CHAN, "@%s -> Show's inventory value. (IMPORTANT) stickers on default guns might break it." %target)
  560. except socket.error:
  561. send_message(CHAN, "@%s -> That Twitch username seems to be invalid." %sender)
  562. print("something went wrong7")
  563.  
  564.  
  565. def command_steamstate():
  566. global target
  567. msg = message[:-1].split(" ")
  568. cmd = msg[0].lower()
  569. if len(msg) >= 2:
  570. target = msg[1].strip("@").lower()
  571. else:
  572. target = sender
  573.  
  574. try:
  575. page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
  576. jsonData = json.loads(page)
  577. steamid64 = jsonData["steam_id"]
  578. if steamid64:
  579.  
  580. page = urllib.request.urlopen("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=ApiKey&steamids=%s" % steamid64).read().decode("utf-8")
  581. jsonData = json.loads(page)
  582. state = jsonData["response"]["players"][0]["personastate"]
  583. if target == sender:
  584. send_message(CHAN, "@%s -> Your steamstatus is %s" % sender,state)
  585. else:
  586. send_message(CHAN, "@%s -> %s's Steamstatus is %s" % sender,target,state)
  587. else:
  588. if target == sender:
  589.  
  590. send_message(CHAN, "@%s -> You are not linked" % sender)
  591. else:
  592. send_message(CHAN, "@%s -> %s's is not linked" % sender,target)
  593. except socket.error:
  594. send_message(CHAN, "@%s -> That Twitch username seems to be invalid." %sender)
  595. print("something went wrong8")
  596. except TypeError:
  597. send_message(CHAN, "@%s -> You typed it wrong." %sender)
  598. print("something went wrong9")
  599.  
  600. def command_pricecurrency():
  601. global target
  602. msg = message[:-1].split(" ")
  603. cmd = msg[0].lower()
  604. if len(msg) >= 2:
  605. target = msg[1].strip("@").lower()
  606. else:
  607. target = sender
  608. try:
  609. if (target == sender):
  610. send_message(CHAN, "@%s -> As far as we know the only currency is USD." %(sender))
  611. else:
  612. send_message(CHAN, "@%s -> As far as we know the only currency is USD." %(target))
  613. except socket.error:
  614. send_message(CHAN, "ERROR")
  615. print("something went wrong10")
  616.  
  617. def command_stats():
  618. global target
  619. msg = message[:-1].split(" ")
  620. if len(msg) >= 2:
  621. target = msg[1].strip("@").lower()
  622. else:
  623. target = sender
  624. try:
  625. page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
  626. jsonData = json.loads(page)
  627. steamID64 = jsonData["steam_id"]
  628. if steamID64:
  629. req = urllib.request.Request("http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=ApiKey1&steamid=%s" % steamID64 ,headers={'User-Agent': 'Mozilla/5.0'})
  630. page = urllib.request.urlopen(req).read().decode('utf-8')
  631. jsonData = json.loads(page)
  632.  
  633. Stats = jsonData["playerstats"]["stats"]
  634.  
  635. for stat in Stats:
  636. if stat["name"] == "total_kills":
  637. Kills = int(stat["value"])
  638. elif stat["name"] == "total_deaths":
  639. Deaths = int(stat["value"])
  640. elif stat["name"] == "total_wins":
  641. Wins = int(stat["value"])
  642. if target == sender:
  643. send_message(CHAN, "@%s -> %s kills, %s deaths, %s wins" % (sender,Kills,Deaths,Wins))
  644. else:
  645. send_message(CHAN, "@%s -> %s %s Kills %s deaths %s wins" % (sender,target,Kills,Deaths,Wins))
  646. except socket.error:
  647. send_message(CHAN, "Wrong name")
  648. print("something went wrong11")
  649.  
  650. def command_games():
  651. global target
  652. msg = message[:-1].split(" ")
  653. if len(msg) >= 2:
  654. target = msg[1].strip("@").lower()
  655. else:
  656. target = sender
  657. try:
  658. page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
  659. jsonData = json.loads(page)
  660. steamID64 = jsonData["steam_id"]
  661. if steamID64:
  662. req = urllib.request.Request("http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=ApiKey&steamid=%s&format=json" % steamID64 ,headers={'User-Agent': 'Mozilla/5.0'})
  663. page = urllib.request.urlopen(req).read().decode('utf-8')
  664. jsonData = json.loads(page)
  665.  
  666. GameCount = jsonData["response"]["game_count"]
  667.  
  668.  
  669. if target == sender:
  670. send_message(CHAN, "@%s -> You have %s games owned" %(sender,GameCount))
  671. else:
  672. send_message(CHAN, "@%s -> %s has %s games owned" %(sender,target,GameCount))
  673. except socket.error:
  674. send_message(CHAN, "Wrong Twitch Username.")
  675. print("something went wrong12")
  676.  
  677. def command_followcount():
  678. global target
  679. msg = message[:-1].split(" ")
  680. cmd = msg[0].lower()
  681. if len(msg) >= 2:
  682. target = msg[1].strip("@").lower()
  683. else:
  684. target = sender
  685.  
  686. try:
  687. page = urllib.request.urlopen("https://api.rtainc.co/twitch/followers/count?channel=%s" % target).read().decode("utf-8")
  688. if("<br />" in page):
  689. send_message(CHAN, "@%s -> Wrong twitch username" % sender)
  690. else:
  691. send_message(CHAN, "@%s -> Currently there are %s people following %s" % (sender,page,target))
  692. except socket.error:
  693. send_message(CHAN, "Wrong twitch username")
  694. print("something went wrong13")
  695.  
  696.  
  697.  
  698. def command_add():
  699. global target
  700. msg = message[:-1].split(" ")
  701. cmd = msg[0].lower()
  702. if len(msg) >= 2:
  703. target = msg[1].strip("@").lower()
  704.  
  705. try:
  706.  
  707. file = open("evildog255/ideas.txt", "a")
  708. file.write(target + "\n")
  709. file.close()
  710. send_message(CHAN, "%s added" % target)
  711. except socket.error:
  712. send_message(CHAN, "something went wrong!")
  713. print("something went wrong14")
  714.  
  715. def command_remove():
  716. permissions = ["evildog255"]
  717. global target
  718. msg = message[:-1].split(" ")
  719. cmd = msg[0].lower()
  720. if len(msg) >= 2:
  721. target = msg[1].strip("@").lower()
  722.  
  723. try:
  724. if sender in permissions:
  725. file = open("evildog255/ideas.txt", 'w').close()
  726. send_message(CHAN, "list cleared!")
  727. else:
  728. send_message(CHAN, "NO PERMISSION")
  729. except socket.error:
  730. send_message(CHAN, "something went wrong!")
  731. print("something went wrong15")
  732.  
  733. def command_say():
  734. permissions = ["evildog255"]
  735. global target
  736. msg = message[:-1].split(" ")
  737. cmd = msg[0].lower()
  738. if len(msg) >= 2:
  739. target = msg[1].strip("@").lower()
  740.  
  741. try:
  742. if sender in permissions:
  743. send_message(CHAN, " ".join(msg[1:]))
  744. else:
  745. send_message(CHAN, "not allowed to do that!")
  746. except socket.error:
  747. send_message(CHAN, "Something went wrong!")
  748. print("something went wrong16")
  749.  
  750.  
  751. def command_vaccheck():
  752. global target
  753. msg = message[:-1].split(" ")
  754. if len(msg) >= 2:
  755. target = msg[1].strip("@").lower()
  756. else:
  757. target = sender
  758. try:
  759. page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % quote(target)).read().decode("utf-8")
  760. jsonData = json.loads(page)
  761. steamID64 = jsonData["steam_id"]
  762. if steamID64:
  763. req = urllib.request.Request("http://api.steampowered.com/ISteamUser/GetPlayerBans/v1/?key=9C9530376816B36AEAE1129460042C41&steamids=%s" % steamID64 ,headers={'User-Agent': 'Mozilla/5.0'})
  764. page = urllib.request.urlopen(req).read().decode('utf-8')
  765. jsonData = json.loads(page)
  766.  
  767. vacban = jsonData["players"][0]["VACBanned"]
  768. vacbans = jsonData["players"][0]["NumberOfVACBans"]
  769. days = jsonData["players"][0]["DaysSinceLastBan"]
  770.  
  771.  
  772. if target == sender and vacban is True:
  773. send_message(CHAN, "@%s -> You have %s VAC'(s) on record, Days since last ban: %s Days" %(sender,vacbans,days))
  774. else:
  775. if(vacban is True):
  776. send_message(CHAN, "@%s -> %s has %s VAC'(s) on record, Days since last ban: %s Days" %(sender,target,vacbans,days))
  777. else:
  778. if(target == sender and vacban is False):
  779. send_message(CHAN, "@%s -> You have no VAC's on record" % sender)
  780. else:
  781. if(vacban is False):
  782. send_message(CHAN, "@%s -> %s has no VAC's on record" % (sender,target))
  783. else:
  784. if target == sender:
  785. send_message(CHAN, "@%s -> You aren't linked (Does this means he's hiding a vac?!?! Kappa )" % sender)
  786. else:
  787. send_message(CHAN, "@%s -> %s isn't linked (Does this means he's hiding a vac ?!?! Kappa )" % (sender,target))
  788.  
  789.  
  790. except socket.error:
  791. send_message(CHAN, "Wrong Twitch Username.")
  792. print("something went wrong12")
  793.  
  794. def command_viewers():
  795. try:
  796. channel = "aerozztv"
  797. modCounter = 0
  798. viewerCounter = 0
  799. page = urllib.request.urlopen("https://tmi.twitch.tv/group/user/%s/chatters" % channel).read().decode("utf-8")
  800. jsonData = json.loads(page)
  801. for user in jsonData["chatters"]["viewers"]:
  802. viewerCounter +=1
  803. for user in jsonData["chatters"]["moderators"]:
  804. modCounter +=1
  805.  
  806. send_message(CHAN, "Currently there are %s plebs watching and %s moderators" % (viewerCounter, modCounter))
  807.  
  808. except socket.error:
  809. send_message(CHAN, "Something went wrong Error code 2020202")
  810. print("Error code 2020202")
  811.  
  812. def command_pricehelp():
  813. global target
  814. msg = message[:-1].split(" ")
  815. if len(msg) >=2:
  816. target = message[1].strip("@").lower()
  817. else:
  818. target = sender
  819. try:
  820. if target == sender:
  821. send_message(CHAN, "@%s -> This searches for a item of your choice in OPSKINS and gives you the lowest price and keys, for example: !price ak vulcan fn will give you the lowest price is (price)USD(Keys) Only currency that works is USD, Thanks to Aerozztv for letting me use his API code " % sender)
  822. else:
  823. send_message(CHAN, "@%s -> This searches for a item of your choice in OPSKINS and gives you the lowest price and keys, for example: !price ak vulcan fn will give you the lowest price is (price)USD(Keys) Only currency that works is USD, Thanks to Aerozztv for letting me use his API code" % target)
  824.  
  825. except socket.error:
  826. send_message(CHAN, "Wrong twitch username")
  827. print("Something went wrong 69")
  828.  
  829. def command_subtest():
  830. global target
  831. msg = message[:-1].split(" ")
  832.  
  833. if len(msg) >=2:
  834. target = message[1].strip("@").lower()
  835. else:
  836. target = sender
  837. try:
  838. if target == sender and modStatus is True:
  839. send_message(CHAN, "You are mod!")
  840. else:
  841. send_message(CHAN, "wat")
  842. except socket.error:
  843. send_message(CHAN, "cba to write something here")
  844.  
  845. def command_greetings():
  846. global target
  847. msg = message[:-1].split(" ")
  848. if len(msg) >=2:
  849. target = message[1].strip("@").lower()
  850. else:
  851. target = sender
  852. try:
  853. now = date.today()
  854. page = urllib.request.urlopen("https://api.twitch.tv/kraken/users/%s/follows/channels/aerozztv" % sender).read().decode("utf-8")
  855. jsonData = json.loads(page)
  856. followed = jsonData["created_at"].split("T")[0].split("-")
  857. followed = date(int(followed[0]), int(followed[1]), int(followed[2]))
  858. followTime = (now - followed).days
  859. except socket.error:
  860. send_message(CHAN, "You haven't been following for 31 days")
  861. print("%s hasn't been following for 31 days" % target)
  862. try:
  863. channel = "aerozztv"
  864. page = urllib.request.urlopen("https://tmi.twitch.tv/group/user/%s/chatters" % channel).read().decode("utf-8")
  865. jsonData = json.loads(page)
  866. viewers = ["chatters"]["viewers"]
  867. mods = ["chatters"]["moderators"]
  868. if target == sender and target in viewers and followTime <5:
  869. send_message(CHAN, "hello %s" %sender)
  870. elif target in viewers and followTime <5:
  871. send_message(CHAN, "hello %s" %target)
  872. if target == sender and target in mods:
  873. send_message(CHAN, "Say hello to the almighty mod %s" %sender)
  874. elif target in mods:
  875. send_message(CHAN, "Say hello to the almighty mod %s" % target)
  876. else:
  877. send_message(CHAN, "not supported!")
  878.  
  879. except socket.error:
  880. send_message(CHAN, "Wrong twitch username")
  881. print("greetings error")
  882.  
  883. def command_nametest():
  884. global target
  885. msg = message[:-1].split(" ")
  886. cmd = msg[0].lower()
  887. if len(msg) >= 2:
  888. target = msg[1].strip("@").lower()
  889. else:
  890. target = sender
  891.  
  892. try:
  893. page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
  894. jsonData = json.loads(page)
  895. steamid64 = jsonData["steam_id"]
  896. if steamid64:
  897.  
  898. page = urllib.request.urlopen("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=9C9530376816B36AEAE1129460042C41&steamids=%s" % steamid64).read().decode("utf-8")
  899. jsonData = json.loads(page)
  900. name = jsonData["response"]["players"][0]["personaname"]
  901. if "aerozztv" in name.lower():
  902. send_message(CHAN, "You have Aerozztv in your steam name %s" % name)
  903. else:
  904. send_message(CHAN, "You don't have Aerozztv in your steam name %s" % name)
  905. except socket.error:
  906. send_message(CHAN, "Wrong twitch username")
  907.  
  908. def command_addcom():
  909. global ecmdf
  910. if modStatus is True:
  911. msg = message[:-1].split(" ")
  912. if len(msg) >= 3:
  913. addComName = msg[1]
  914. addComResponse = " ".join(msg[2:])
  915. ecmdf[addComName] = addComResponse
  916. with open("commands.json", "w") as data_file:
  917. json.dump(ecmdf, data_file)
  918. send_message(CHAN, "'%s' added." % addComName)
  919. else:
  920. send_message(CHAN, "Insufficient parameters.")
  921. else:
  922. send_message(CHAN, "You don't have permission to use this command.")
  923.  
  924. def command_delcom():
  925. global ecmdf
  926. if modStatus is True:
  927. msg = message[:-1].split(" ")
  928. if len(msg) >= 2:
  929. comName = msg[1]
  930. try:
  931. del ecmdf[comName]
  932. with open("commands.json", "w") as data_file:
  933. json.dump(ecmdf, data_file)
  934. send_message(CHAN, "'%s' has been deleted." % comName)
  935. except KeyError:
  936. send_message(CHAN, "This command does not exist.")
  937. else:
  938. send_message(CHAN, "Insufficient parameters.")
  939. else:
  940. send_message(CHAN, "You do not have permission to use this command.")
  941.  
  942. def command_disable():
  943. global off
  944. if modStatus is True:
  945. msg = message[:-1].split(" ")
  946. if len(msg) >= 2:
  947. addComDisable = msg[1]
  948. off[addComDisable] = addComDisable
  949. with open("disabledcommands.json", "w") as command_off:
  950. json.dump(off, command_off)
  951. send_message(CHAN, "'%s' disabled" % addComDisable)
  952. else:
  953. send_message(CHAN, "insufficient parameter.")
  954. else:
  955. send_message(CHAN, "no permissions!")
  956.  
  957. def command_optest():
  958. global target
  959. msg = message[:-1].split(" ")
  960. cmd = msg[0].lower()
  961. if len(msg) >= 2:
  962. target = msg[1].strip("@").lower()
  963. else:
  964. target = sender
  965. try:
  966. page = urllib.request.urlopen("https://opskins.com/api/user_api.php?request=test&key=(APIKey)").read().decode("utf-8")
  967. jsonData = json.loads(page)
  968. succes = jsonData["success"]
  969. if succes:
  970. if succes == "200":
  971. send_message(CHAN, "test completed")
  972. else:
  973. send_message(CHAN, "error hype?")
  974. except socket.error:
  975. send_message(CHAN, "something went wrong!")
  976.  
  977. def command_commands():
  978. msg = message[:-1].split(" ")
  979. cmd = msg[0].lower()
  980. if len(msg) >= 2:
  981. target = msg[1].strip("@").lower()
  982. else:
  983. target = sender
  984. try:
  985. send_message(CHAN, "@%s -> There are: !Price, !Keys, !inv or !inventory, !steamid64, !steamprofile. " % sender)
  986. except socket.error:
  987. send_message(CHAN, "Please try again!")
  988.  
  989. def command_help():
  990. validhelp = ["!steamid64", "!price", "!keys", "!evilsay", "!steamprofile", "!inv", "!inventory"]
  991. msg = message[:-1].split(" ")
  992. cmd = msg[0].lower()
  993. if len(msg) >= 2:
  994. target = msg[1].strip("@").lower()
  995. else:
  996. send_message(CHAN, "@%s -> The commands are !price, !keys, !evilsay, !steamprofile, !inv or !inventory, !steamid64, !steamprofile" % sender)
  997. try:
  998. if "!steamid64".lower() in target.lower() and target.lower() in validhelp:
  999. send_message(CHAN, "Searches steamid64 of twitch user.")
  1000. elif "!price".lower() in target.lower() and target.lower() in validhelp:
  1001. send_message(CHAN, "Show's price and Keys of item (opskin's price).")
  1002. elif "!keys" .lower() in target.lower() and target.lower() in validhelp:
  1003. send_message(CHAN, "Show's Key(s) of item, Keys are shown by dividing the opskin's price with 2.7 (Key price in USD). ")
  1004. elif "!evilsay".lower() in target.lower() and target.lower() in validhelp:
  1005. send_message(CHAN, "Forces the bot to say what the maker of this bot (Evildog255) wants")
  1006. elif "!steamprofile".lower() in target.lower() and target.lower() in validhelp:
  1007. send_message(CHAN, "Searches for steamprofile of a twitch user.")
  1008. elif "!inv".lower() or "!inventory".lower() in target.lower() and target.lower() in validhelp:
  1009. send_message(CHAN, "Gives Csgo inventory value of a twitch user.")
  1010. else:
  1011. send_message(CHAN, "Unknown command!")
  1012. except socket.error:
  1013. send_message(CHAN, "Command not reconized")
  1014. except UnboundLocalError:
  1015. pass
  1016.  
  1017. def command_convert():
  1018. global target
  1019. msg = message[:-1].split(" ")
  1020. cmd = msg[0].lower()
  1021. if len(msg) >= 2:
  1022. target = msg[1].strip("@").lower()
  1023. elif len(msg) < 2:
  1024. send_message(CHAN, "insufficent parameters!")
  1025. else:
  1026. target = sender
  1027. try:
  1028. if target == "SEK":
  1029. page = urllib.request.urlopen("http://api.fixer.io/latest?base=USD")
  1030. jsonData = json.loads(page)
  1031. SEK = jsonData["rates"]["SEK"]
  1032. send_message(CHAN, "Hello it is %s" % SEK)
  1033. except socket.error:
  1034. send_message(CHAN, "went wrong!")
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040. # --------------------------------------------- End Command Functions ----------------------------------------------
  1041.  
  1042. con = socket.socket()
  1043.  
  1044. con.connect((HOST, PORT))
  1045.  
  1046.  
  1047. send_pass(PASS)
  1048. send_nick(NICK)
  1049. con.send(bytes('CAP REQ :twitch.tv/tags\r\n', 'UTF-8'))
  1050. join_channel(CHAN)
  1051.  
  1052. data = ""
  1053. while True:
  1054. try:
  1055. ready = select.select([con], [], [], 8)
  1056. if ready[0]:
  1057. data = con.recv(1024).decode("UTF-8")
  1058. print(data)
  1059. logging.basicConfig(filename='crash.log', level = logging.DEBUG)
  1060. logging.info(data)
  1061. if len(data) != 0:
  1062. data_split = re.split(r"[~\r\n+]", data)
  1063. data = data_split.pop()
  1064. for line in data_split:
  1065. line = str.rstrip(line)
  1066. line = str.split(line)
  1067. lineInfo = line[0].split(";")
  1068. lineDict = {}
  1069. for info in lineInfo:
  1070. newInfo = info.split("=")
  1071. lineDict[newInfo[0]] = newInfo[1]
  1072. modStatus = int(lineDict["mod"])
  1073. turboStatus = int(lineDict["turbo"])
  1074. subStatus = int(lineDict["subscriber"])
  1075. if turboStatus == 1:
  1076. turboStatus = True
  1077. if subStatus == 1:
  1078. subStatus = True
  1079. if modStatus == 1:
  1080. modStatus = True
  1081. if turboStatus == 0:
  1082. turboStatus = False
  1083. if modStatus == 0:
  1084. modStatus = False
  1085. if subStatus == 0:
  1086. subStatus = False
  1087. if len(line) >= 1:
  1088. if line[0] == "PING":
  1089. send_pong(line[1])
  1090. print("Pong!")
  1091. if line[2] == "PRIVMSG":
  1092. sender = get_sender(line[1]).lower()
  1093. message = get_message(line[1:])
  1094. parse_message(message)
  1095. elif len(data) == 10:
  1096. pass
  1097. except socket.error:
  1098. print("[WARNING]\tSocket died.")
  1099. except socket.timeout:
  1100. print("[WARNING]\tSocket timeout.")
  1101. except IndexError:
  1102. print("[WARNING]\tIndex Error. ")
  1103. except UnicodeEncodeError:
  1104. print("Somethign went wrong 2009")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement