Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- import socket
- import json
- import urllib.request
- from datetime import date
- from datetime import datetime
- from urllib.parse import quote
- import select
- with open("commands.json", "a") as data_file:
- pass
- with open("commands.json", "r+") as data_file:
- try:
- ecmdf = json.load(data_file)
- except ValueError:
- print("Commands file corrupt or does not exist. Creating a new one...")
- if data_file != "":
- nowTime = datetime.now().strftime("%Y-%m-%d %H;%M;%S")
- backupFN = "commands-%s.json.bak" % nowTime
- with open(backupFN, "w") as backupFile:
- data_file.seek(0)
- backupFile.write(data_file.read())
- print("A backup of your previous 'commands.json' file has been saved as '%s'." % backupFN)
- data_file.seek(0)
- data_file.truncate()
- json.dump({}, data_file)
- print("Commands file created.\n")
- data_file.seek(0)
- ecmdf = json.load(data_file)
- with open("disabledcommands.json", "a") as command_off:
- pass
- with open("disabledcommands.json", "r+") as command_off:
- try:
- off = json.load(command_off)
- except ValueError:
- print("File does not exist")
- if command_off != "":
- nowTime = datetime.now().strftime("%Y-%m-%d %H;%M;%S")
- BackupFN = "commandsoff-%s.json.bak" % nowTime
- with open(BackupFN, "w") as backupFILE:
- command_off.seek(0)
- backupFILE.write(command_off.read())
- print("Backup created as '%s'." % BackupFN)
- command_off.seek(0)
- command_off.truncate()
- json.dump({}, command_off)
- print("commandsoff file created.\n")
- command_off.seek(0)
- off = json.load(command_off)
- if msg in command_off:
- pass
- # --------------------------------------------- Start Settings ----------------------------------------------------
- HOST = "irc.twitch.tv" # Hostname of the IRC-Server in this case twitch's
- PORT = 6667 # Default IRC-Port
- CHAN = "#aerozztv" # Channelname = #{Nickname}
- NICK = "Evilbot254" # Nickname = Twitch username
- CHECK = 'CAP REQ :twitch.tv/tags'
- PASS = "oauth:y93pv2z5ii0usy6538esd30fc2gdr3" # www.twitchapps.com/tmi/ will help to retrieve the required authkey
- # --------------------------------------------- End Settings -------------------------------------------------------
- # --------------------------------------------- Start Functions ----------------------------------------------------
- def send_pong(msg):
- con.send(bytes('PONG %s\r\n' % msg, 'UTF-8'))
- def send_message(chan, msg):
- con.send(bytes('PRIVMSG %s :%s\r\n' % (chan, msg), 'UTF-8'))
- def send_nick(nick):
- con.send(bytes('NICK %s\r\n' % nick, 'UTF-8'))
- def send_pass(password):
- con.send(bytes('PASS %s\r\n' % password, 'UTF-8'))
- def join_channel(chan):
- con.send(bytes('JOIN %s\r\n' % chan, 'UTF-8'))
- def check_user(check):
- con.send(bytes('CHECK %s\r\n' % check, 'UTF-8'))
- def part_channel(chan):
- con.send(bytes('PART %s\r\n' % chan, 'UTF-8'))
- # --------------------------------------------- End Functions ------------------------------------------------------
- # --------------------------------------------- Start Helper Functions ---------------------------------------------
- def get_sender(msg):
- result = ""
- for char in msg:
- if char == "!":
- break
- if char != ":":
- result += char
- return result
- def get_message(msg):
- result = ""
- i = 3
- length = len(msg)
- while i < length:
- result += msg[i] + " "
- i += 1
- result = result.lstrip(':')
- return result
- def parse_message(msg):
- if len(msg) >= 1:
- msg = msg.split(' ')
- options = {'!test': command_test,
- '!hello': command_hello,
- '!price': command_price,
- '!steamprofile': command_steamprofile,
- '!steamid64': command_testing,
- '!followingsince': command_following,
- '!inventoryprice': command_inventory,
- '!inventoryhelp': command_inventoryhelp,
- '!steamstate': command_steamstate,
- '!inventory': command_inventory,
- '!inv' : command_inventory,
- '!pricecurrency': command_pricecurrency,
- '!stats': command_stats,
- '!games': command_games,
- '!commandadd': command_add,
- '!followcount' : command_followcount,
- '!commandsremove' : command_remove,
- '!pricehelp' : command_pricehelp,
- '!vaccheck' : command_vaccheck,
- '!watching' : command_viewers,
- '!greet' : command_greetings,
- '!namecheck' : command_nametest,
- '!evildisable' : command_disable,
- '!subcheck' : command_subtest,
- '!eviladd': command_addcom,
- '!optest' : command_optest,
- '!evildel' : command_delcom,
- '!evilsay' : command_say}
- if msg[0] in options:
- options[msg[0]]()
- # --------------------------------------------- End Helper Functions -----------------------------------------------
- # --------------------------------------------- Start Command Functions --------------------------------------------
- def command_test():
- page = urllib.request.urlopen("https://tmi.twitch.tv/group/user/aerozztv/chatters").read().decode("utf-8")
- jsonData = json.loads(page)
- moderators = jsonData["chatters"]["moderators"]
- viewers = jsonData["chatters"]["viewers"]
- if sender in moderators:
- send_message(CHAN, 'testing some stuff')
- else:
- send_message(CHAN, "only mods can do this")
- def command_hello():
- send_message(CHAN, 'Hello my name is evilbot254')
- def back_apiError():
- send_message(CHAN, "@%s -> This bot sucks please try again later." % sender)
- def command_testing():
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
- jsonData = json.loads(page)
- steamid64 = jsonData["steam_id"]
- if steamid64:
- if target == sender:
- send_message(CHAN, "@%s -> Your steamid64 is %s" % (sender,steamid64))
- else:
- send_message(CHAN, "@%s -> %s's steamid64 is %s" % (sender,target,steamid64))
- else:
- if target == sender:
- send_message(CHAN, "@%s -> Your steam account is not linked." % sender)
- else:
- send_message(CHAN, "@%s -> %s's Steam account is not linked." % (sender, target))
- def command_price():
- validCurrencies = ["GBP", "USD", "SEK", "EUR", "RUB", "INR", "AUD", "CAD", "SGD", "CHF", "MYR", "JPY", "CNY", "DKK", "BRL", "NZD", "HKD", "TRY", "CHF"]
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- if msg[1] in validCurrencies:
- currency = msg[1].upper()
- target = msg[2:]
- elif msg[1] == "st":
- target = msg[2:]
- currency = "USD"
- else:
- currency = "USD"
- target = msg[1:]
- try:
- now = date.today()
- page = urllib.request.urlopen("https://api.twitch.tv/kraken/users/%s/follows/channels/aerozztv" % sender).read().decode("utf-8")
- jsonData = json.loads(page)
- followed = jsonData["created_at"].split("T")[0].split("-")
- followed = date(int(followed[0]), int(followed[1]), int(followed[2]))
- followTime = (now - followed).days
- except socket.error:
- send_message(CHAN, "You haven't been following for 31 days")
- print("%s hasn't been following for 31 days" % target)
- skin = ""
- for word in target:
- skin = skin + word + " "
- skin = skin[:-1]
- skin = skin.replace(" ", "%20")
- skin = skin.replace("stattrak", r"StatTrak" + "\u2122")
- skin = skin.replace("s", "S")
- skin = skin.replace("ft", r"(Field-Tested)")
- skin = skin.replace("bS", r"(Battle-Scarred)")
- skin = skin.replace("fn", r"(Factory%20New)")
- skin = skin.replace("ww", r"(Well-Worn)")
- skin = skin.replace("mw", r"(Minimal%20Wear)")
- skin = skin.replace("ak", r"Ak-47%20|")
- skin = skin.replace("m4a1", r"M4A1-S%20|")
- skin = skin.replace("m4a1-s", r"M4A1-S%20|")
- skin = skin.replace("usp", r"USP-S%20|")
- skin = skin.replace("p2k", r"P2000%20|")
- skin = skin.replace("awp", r"AWP%20|")
- skin = skin.replace("cz", r"CZ75-Auto%20|")
- skin = skin.replace("dual", r"Dual%20Berettas%20|")
- skin = skin.replace("pp-bison", r"PP-Bison%20|")
- skin = skin.replace("p250", r"P250%20|")
- skin = skin.replace("aug", r"AUG%20|")
- skin = skin.replace("ump", r"UMP-45%20|")
- skin = skin.replace("galil", r"Galil AR%20|")
- skin = skin.replace("ssg", r"SSG 08%20|")
- skin = skin.replace("tec9", r"Tec-9%20|")
- skin = skin.replace("xm", r"XM1014%20|")
- skin = skin.replace("g3", r"G3SG1%20|")
- skin = skin.replace("m249", r"M249%20|")
- skin = skin.replace("mp9", r"MP9%20|")
- skin = skin.replace("sawedoff", r"Sawed-Off%20|")
- skin = skin.replace("sawed", r"Sawed-Off%20|")
- skin = skin.replace("sg", r"SG 553%20|")
- skin = skin.replace("awp", r"AWP%20|")
- skin = skin.replace("glock", r"Glock-18%20|")
- skin = skin.replace("desert", r"Desert Eagle%20|")
- skin = skin.replace("r8", r"R8 Revolver%20|")
- skin = skin.replace("revolver", r"R8 Revolver%20|")
- skin = skin.replace("nova", r"Nova%20|")
- skin = skin.replace("mag7", r"MAG-7%20|")
- skin = skin.replace("swag7", r"MAG-7%20|")
- skin = skin.replace("mac10", r"MAC-10%20|")
- skin = skin.replace("mp7", r"MP7%20|")
- skin = skin.replace("p90", r"P90%20|")
- skin = skin.replace("pro90", r"P90%20|")
- skin = skin.replace("mp9", r"MP9%20|")
- skin = skin.replace("m4a4", r"M4A4%20|")
- skin = skin.replace("scar", r"SCAR-20%20|")
- skin = skin.replace("scar20", r"SCAR-20%20")
- skin = skin.replace("vanillabayonet", r"★ Bayonet")
- skin = skin.replace("vanillabutterfly", r"★ Butterfly Knife")
- skin = skin.replace("vanillafalchion", r"★ Falchion Knife")
- skin = skin.replace("vanillaflip", r"★ Flip Knife")
- skin = skin.replace("vanillagut", r"★ Gut Knife")
- skin = skin.replace("vanillahuntsman", r"★ Huntsman Knife")
- skin = skin.replace("vanillakarambit", r"★ Karambit")
- skin = skin.replace("vanillam9", r"★ M9 Bayonet")
- skin = skin.replace("vanillashadow", r"★ Shadow Daggers")
- skin = skin.replace("vanillabowie", r"★ Bowie Knife")
- skin = skin.replace("vanillabuttplugs", r"★ Shadow Daggers")
- skin = skin.replace("vanillashadowdaggers",r"★ Shadow Daggers")
- skin = skin.replace("vanillam9bayonet", r"★ M9 Bayonet")
- skin = skin.replace("vanillabowieknife", r"★ Bowie Knife")
- skin = skin.replace("bayonet", r"★ Bayonet%20|")
- skin = skin.replace("butterfly", r"★ Butterfly Knife%20|")
- skin = skin.replace("falchion", r"★ Falchion Knife%20|")
- skin = skin.replace("flip", r"★ Flip Knife%20|")
- skin = skin.replace("gut", r"★ Gut Knife%20|")
- skin = skin.replace("huntsman", r"★ Huntsman Knife%20|")
- skin = skin.replace("karambit", r"★ Karambit%20|")
- skin = skin.replace("m9", r"★ M9 Bayonet%20|")
- skin = skin.replace("shadow", r"★ Shadow Daggers%20|")
- skin = skin.replace("bowie", r"★ Bowie Knife%20|")
- skin = skin.replace("buttplugs", r"★ Shadow Daggers%20|")
- skin = skin.replace("shadowdaggers",r"★ Shadow Daggers%20|")
- skin = skin.replace("m9bayonet", r"★ M9 Bayonet%20|")
- skin = skin.replace("bowieknife", r"★ Bowie Knife%20|")
- skin = skin.replace("chanticofire", r"Chantico's Fire")
- skin = skin.replace("goldencoil", r"Golden Coil")
- skin = skin.replace("hyperbeast", r"Hyper Beast")
- skin = skin.replace("alloy", r"Atomic Alloy")
- skin = skin.replace("hotrod", r"Hot Rod")
- skin = skin.replace("masterpiece", r"Master Piece")
- skin = skin.replace("brightwater", r"Bright Water")
- skin = skin.replace("darkwater", r"Dark Water")
- skin = skin.replace("icarusfell", r"Icarus Fell")
- skin = skin.replace("bloodtiger", r"Blood Tiger")
- skin = skin.replace("borealforest", r"Boreal Forest")
- skin = skin.replace("hyperbeast", r"Hyper Beast")
- try:
- req = urllib.request.Request("https://opskins.com/api/user_api.php?request=GetLowestSalePrices&key=f187f3f2f78e986acc305eb294c26430&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", ""),headers={'User-Agent': 'Mozilla/5.0'})
- page = urllib.request.urlopen(req).read().decode('utf-8')
- jsonData = json.loads(page)
- price = jsonData["result"]["items"][quote(skin).replace("%20", " ")]
- realcost = float(int(price)/100)
- keyCost = int(float(realcost)/2.7)
- print("https://opskins.com/api/user_api.php?request=GetLowestSalePrices&key=f187f3f2f78e986acc305eb294c26430&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", ""))
- print(page)
- try:
- if followTime >= 31 and keyCost > 1 or keyCost == 0:
- send_message(CHAN, 'The lowest price is %s USD(%s Keys) ' % (realcost,keyCost))
- elif followTime <31:
- send_message(CHAN, "You haven't been following for 31 days")
- else:
- send_message(CHAN, 'The lowest price is %s USD(%s Key)' % (realcost,keyCost))
- except KeyError:
- send_message(CHAN, "Invalid item name!")
- print("something went wrong1")
- except socket.error:
- print("something went wrong2")
- send_message(CHAN, "@%s -> %s is not a valid name." % (sender, skin))
- except UnicodeEncodeError:
- print("Something went wrong")
- send_message(CHAN, "Since we updated to OPSKINS API the knives and stattrak are currently unavailable")
- except TypeError:
- pass
- except UnboundLocalError:
- pass
- else:
- send_message(CHAN, "You must provide a skin name.")
- def command_steamprofile():
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
- jsonData = json.loads(page)
- steamid64 = jsonData["steam_id"]
- if steamid64:
- if target == sender:
- send_message(CHAN, "@%s -> Your steamprofile is https://steamcommunity.com/profiles/%s" % (sender,steamid64))
- else:
- send_message(CHAN, "@%s -> %s's steamidprofile is https://steamcommunity.com/profiles/%s" % (sender,target,steamid64))
- else:
- if target == sender:
- send_message(CHAN, "@%s -> Your steam account is not linked." % sender)
- else:
- send_message(CHAN, "@%s -> %s's Steam account is not linked." % (sender, target))
- def command_following():
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- page = urllib.request.urlopen(" https://apis.rtainc.co/twitchbot/following?channel=AerozzTV&user=%s" % target).read().decode("utf-8")
- if ("is not following" in page):
- if (target == sender):
- send_message(CHAN, "@%s -> You are not following" % sender)
- else:
- send_message(CHAN, "@%s -> %s is not following" % (sender,target))
- else:
- if (target == sender):
- send_message(CHAN, "@%s -> you have been following for %s " % (sender,page))
- else:
- send_message(CHAN, "@%s -> %s Has been following for %s" % (sender,target,page))
- def command_inventory():
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- try:
- page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
- jsonData = json.loads(page)
- steamid64 = jsonData["steam_id"]
- if steamid64:
- req = urllib.request.Request("http://csgobackpack.net/api/GetInventoryValue/?id=%s" % steamid64, headers={'User-Agent': 'Mozilla/5.0'})
- page = urllib.request.urlopen(req).read().decode('utf-8-sig')
- jsonData = json.loads(page)
- price = jsonData["value"]
- if target == sender:
- send_message(CHAN,"@%s -> Your Inventory Value is: $%s" % (sender,price))
- else:
- send_message(CHAN,"@%s -> %s's Inventory Value is $%s" % (sender,target,price))
- else:
- if target == sender:
- send_message(CHAN,"@%s -> Your steam account must be linked to check your inventory value!" %sender)
- else:
- send_message(CHAN,"@%s -> %s's Steam account is not linked." %(sender, target))
- except socket.error:
- send_message(CHAN,"@%s -> That Twitch username seems to be invalid." % sender)
- print("something went wrong5")
- except KeyError:
- send_message(CHAN,"Something went wrong, please try again!")
- print("something went wrong6")
- def command_inventoryhelp():
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- try:
- if target == sender:
- send_message(CHAN, "@%s -> Show's inventory value. (IMPORTANT) stickers on default guns might break it." %sender)
- else:
- send_message(CHAN, "@%s -> Show's inventory value. (IMPORTANT) stickers on default guns might break it." %target)
- except socket.error:
- send_message(CHAN, "@%s -> That Twitch username seems to be invalid." %sender)
- print("something went wrong7")
- def command_steamstate():
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- try:
- page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
- jsonData = json.loads(page)
- steamid64 = jsonData["steam_id"]
- if steamid64:
- page = urllib.request.urlopen("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=9C9530376816B36AEAE1129460042C41&steamids=%s" % steamid64).read().decode("utf-8")
- jsonData = json.loads(page)
- state = jsonData["response"]["players"][0]["personastate"]
- if target == sender:
- send_message(CHAN, "@%s -> Your steamstatus is %s" % sender,state)
- else:
- send_message(CHAN, "@%s -> %s's Steamstatus is %s" % sender,target,state)
- else:
- if target == sender:
- send_message(CHAN, "@%s -> You are not linked" % sender)
- else:
- send_message(CHAN, "@%s -> %s's is not linked" % sender,target)
- except socket.error:
- send_message(CHAN, "@%s -> That Twitch username seems to be invalid." %sender)
- print("something went wrong8")
- except TypeError:
- send_message(CHAN, "@%s -> You typed it wrong." %sender)
- print("something went wrong9")
- def command_pricecurrency():
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- try:
- if (target == sender):
- send_message(CHAN, "@%s -> Currently there is GBP, USD, SEK, EUR, RUB, INR, AUD, CAD, SGD, CHF, MYR, JPY, CNY, DKK, BRL, NZD, HKD, TRY. (18)" %(sender))
- else:
- send_message(CHAN, "@%s -> Currently there is GBP, USD, SEK, EUR, RUB, INR, AUD, CAD, SGD, CHF, MYR, JPY, CNY, DKK, BRL, NZD, HKD, TRY. (18)" %(target))
- except socket.error:
- send_message(CHAN, "ERROR")
- print("something went wrong10")
- def command_stats():
- global target
- msg = message[:-1].split(" ")
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- try:
- page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
- jsonData = json.loads(page)
- steamID64 = jsonData["steam_id"]
- if steamID64:
- req = urllib.request.Request("http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=9C9530376816B36AEAE1129460042C41&steamid=%s" % steamID64 ,headers={'User-Agent': 'Mozilla/5.0'})
- page = urllib.request.urlopen(req).read().decode('utf-8')
- jsonData = json.loads(page)
- Stats = jsonData["playerstats"]["stats"]
- for stat in Stats:
- if stat["name"] == "total_kills":
- Kills = int(stat["value"])
- elif stat["name"] == "total_deaths":
- Deaths = int(stat["value"])
- elif stat["name"] == "total_wins":
- Wins = int(stat["value"])
- if target == sender:
- send_message(CHAN, "@%s -> %s kills, %s deaths, %s wins" % (sender,Kills,Deaths,Wins))
- else:
- send_message(CHAN, "@%s -> %s %s Kills %s deaths %s wins" % (sender,target,Kills,Deaths,Wins))
- except socket.error:
- send_message(CHAN, "Wrong name")
- print("something went wrong11")
- def command_games():
- global target
- msg = message[:-1].split(" ")
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- try:
- page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
- jsonData = json.loads(page)
- steamID64 = jsonData["steam_id"]
- if steamID64:
- req = urllib.request.Request("http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=9C9530376816B36AEAE1129460042C41&steamid=%s&format=json" % steamID64 ,headers={'User-Agent': 'Mozilla/5.0'})
- page = urllib.request.urlopen(req).read().decode('utf-8')
- jsonData = json.loads(page)
- GameCount = jsonData["response"]["game_count"]
- if target == sender:
- send_message(CHAN, "@%s -> You have %s games owned" %(sender,GameCount))
- else:
- send_message(CHAN, "@%s -> %s has %s games owned" %(sender,target,GameCount))
- except socket.error:
- send_message(CHAN, "Wrong Twitch Username.")
- print("something went wrong12")
- def command_followcount():
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- try:
- page = urllib.request.urlopen("https://api.rtainc.co/twitch/followers/count?channel=%s" % target).read().decode("utf-8")
- if("<br />" in page):
- send_message(CHAN, "@%s -> Wrong twitch username" % sender)
- else:
- send_message(CHAN, "@%s -> Currently there are %s people following %s" % (sender,page,target))
- except socket.error:
- send_message(CHAN, "Wrong twitch username")
- print("something went wrong13")
- def command_add():
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- try:
- file = open("evildog255/ideas.txt", "a")
- file.write(target + "\n")
- file.close()
- send_message(CHAN, "%s added" % target)
- except socket.error:
- send_message(CHAN, "something went wrong!")
- print("something went wrong14")
- def command_remove():
- permissions = ["evildog255"]
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- try:
- if sender in permissions:
- file = open("evildog255/ideas.txt", 'w').close()
- send_message(CHAN, "list cleared!")
- else:
- send_message(CHAN, "NO PERMISSION")
- except socket.error:
- send_message(CHAN, "something went wrong!")
- print("something went wrong15")
- def command_say():
- permissions = ["evildog255"]
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- try:
- if sender in permissions:
- send_message(CHAN, " ".join(msg[1:]))
- else:
- send_message(CHAN, "not allowed to do that!")
- except socket.error:
- send_message(CHAN, "Something went wrong!")
- print("something went wrong16")
- def command_vaccheck():
- global target
- msg = message[:-1].split(" ")
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- try:
- page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % quote(target)).read().decode("utf-8")
- jsonData = json.loads(page)
- steamID64 = jsonData["steam_id"]
- if steamID64:
- req = urllib.request.Request("http://api.steampowered.com/ISteamUser/GetPlayerBans/v1/?key=9C9530376816B36AEAE1129460042C41&steamids=%s" % steamID64 ,headers={'User-Agent': 'Mozilla/5.0'})
- page = urllib.request.urlopen(req).read().decode('utf-8')
- jsonData = json.loads(page)
- vacban = jsonData["players"][0]["VACBanned"]
- vacbans = jsonData["players"][0]["NumberOfVACBans"]
- days = jsonData["players"][0]["DaysSinceLastBan"]
- if target == sender and vacban is True:
- send_message(CHAN, "@%s -> You have %s VAC'(s) on record, Days since last ban: %s Days" %(sender,vacbans,days))
- else:
- if(vacban is True):
- send_message(CHAN, "@%s -> %s has %s VAC'(s) on record, Days since last ban: %s Days" %(sender,target,vacbans,days))
- else:
- if(target == sender and vacban is False):
- send_message(CHAN, "@%s -> You have no VAC's on record" % sender)
- else:
- if(vacban is False):
- send_message(CHAN, "@%s -> %s has no VAC's on record" % (sender,target))
- else:
- if target == sender:
- send_message(CHAN, "@%s -> You aren't linked (Does this means he's hiding a vac?!?! Kappa )" % sender)
- else:
- send_message(CHAN, "@%s -> %s isn't linked (Does this means he's hiding a vac ?!?! Kappa )" % (sender,target))
- except socket.error:
- send_message(CHAN, "Wrong Twitch Username.")
- print("something went wrong12")
- def command_viewers():
- try:
- channel = "aerozztv"
- modCounter = 0
- viewerCounter = 0
- page = urllib.request.urlopen("https://tmi.twitch.tv/group/user/%s/chatters" % channel).read().decode("utf-8")
- jsonData = json.loads(page)
- for user in jsonData["chatters"]["viewers"]:
- viewerCounter +=1
- for user in jsonData["chatters"]["moderators"]:
- modCounter +=1
- send_message(CHAN, "Currently there are %s plebs watching and %s moderators" % (viewerCounter, modCounter))
- except socket.error:
- send_message(CHAN, "Something went wrong Error code 2020202")
- print("Error code 2020202")
- def command_pricehelp():
- global target
- msg = message[:-1].split(" ")
- if len(msg) >=2:
- target = message[1].strip("@").lower()
- else:
- target = sender
- try:
- if target == sender:
- 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)
- else:
- 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)
- except socket.error:
- send_message(CHAN, "Wrong twitch username")
- print("Something went wrong 69")
- def command_subtest():
- global target
- msg = message[:-1].split(" ")
- if len(msg) >=2:
- target = message[1].strip("@").lower()
- else:
- target = sender
- try:
- if target == sender and modStatus is True:
- send_message(CHAN, "You are mod!")
- else:
- send_message(CHAN, "wat")
- except socket.error:
- send_message(CHAN, "cba to write something here")
- def command_greetings():
- global target
- msg = message[:-1].split(" ")
- if len(msg) >=2:
- target = message[1].strip("@").lower()
- else:
- target = sender
- try:
- now = date.today()
- page = urllib.request.urlopen("https://api.twitch.tv/kraken/users/%s/follows/channels/aerozztv" % sender).read().decode("utf-8")
- jsonData = json.loads(page)
- followed = jsonData["created_at"].split("T")[0].split("-")
- followed = date(int(followed[0]), int(followed[1]), int(followed[2]))
- followTime = (now - followed).days
- except socket.error:
- send_message(CHAN, "You haven't been following for 31 days")
- print("%s hasn't been following for 31 days" % target)
- try:
- channel = "aerozztv"
- page = urllib.request.urlopen("https://tmi.twitch.tv/group/user/%s/chatters" % channel).read().decode("utf-8")
- jsonData = json.loads(page)
- viewers = ["chatters"]["viewers"]
- mods = ["chatters"]["moderators"]
- if target == sender and target in viewers and followTime <5:
- send_message(CHAN, "hello %s" %sender)
- elif target in viewers and followTime <5:
- send_message(CHAN, "hello %s" %target)
- if target == sender and target in mods:
- send_message(CHAN, "Say hello to the almighty mod %s" %sender)
- elif target in mods:
- send_message(CHAN, "Say hello to the almighty mod %s" % target)
- else:
- send_message(CHAN, "not supported!")
- except socket.error:
- send_message(CHAN, "Wrong twitch username")
- print("greetings error")
- def command_nametest():
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- try:
- page = urllib.request.urlopen("https://api.twitch.tv/api/channels/%s" % target).read().decode("utf-8")
- jsonData = json.loads(page)
- steamid64 = jsonData["steam_id"]
- if steamid64:
- page = urllib.request.urlopen("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=9C9530376816B36AEAE1129460042C41&steamids=%s" % steamid64).read().decode("utf-8")
- jsonData = json.loads(page)
- name = jsonData["response"]["players"][0]["personaname"]
- if "aerozztv" in name.lower():
- send_message(CHAN, "You have Aerozztv in your steam name %s" % name)
- else:
- send_message(CHAN, "You don't have Aerozztv in your steam name %s" % name)
- except socket.error:
- send_message(CHAN, "Wrong twitch username")
- def command_addcom():
- global ecmdf
- if modStatus is True:
- msg = message[:-1].split(" ")
- if len(msg) >= 3:
- addComName = msg[1]
- addComResponse = " ".join(msg[2:])
- ecmdf[addComName] = addComResponse
- with open("commands.json", "w") as data_file:
- json.dump(ecmdf, data_file)
- send_message(CHAN, "'%s' added." % addComName)
- else:
- send_message(CHAN, "Insufficient parameters.")
- else:
- send_message(CHAN, "You don't have permission to use this command.")
- def command_delcom():
- global ecmdf
- if modStatus is True:
- msg = message[:-1].split(" ")
- if len(msg) >= 2:
- comName = msg[1]
- try:
- del ecmdf[comName]
- with open("commands.json", "w") as data_file:
- json.dump(ecmdf, data_file)
- send_message(CHAN, "'%s' has been deleted." % comName)
- except KeyError:
- send_message(CHAN, "This command does not exist.")
- else:
- send_message(CHAN, "Insufficient parameters.")
- else:
- send_message(CHAN, "You do not have permission to use this command.")
- def command_disable():
- global off
- if modStatus is True:
- msg = message[:-1].split(" ")
- if len(msg) >= 2:
- addComDisable = msg[1]
- off[addComDisable] = addComDisable
- with open("disabledcommands.json", "w") as command_off:
- json.dump(off, command_off)
- send_message(CHAN, "'%s' disabled" % addComDisable)
- else:
- send_message(CHAN, "insufficient parameter.")
- else:
- send_message(CHAN, "no permissions!")
- def command_optest():
- global target
- msg = message[:-1].split(" ")
- cmd = msg[0].lower()
- if len(msg) >= 2:
- target = msg[1].strip("@").lower()
- else:
- target = sender
- try:
- page = urllib.request.urlopen("https://opskins.com/api/user_api.php?request=test&key=f187f3f2f78e986acc305eb294c26430").read().decode("utf-8")
- jsonData = json.loads(page)
- succes = jsonData["success"]
- if succes:
- if succes == "200":
- send_message(CHAN, "test completed")
- else:
- send_message(CHAN, "error hype?")
- except socket.error:
- send_message(CHAN, "something went wrong!")
- # --------------------------------------------- End Command Functions ----------------------------------------------
- con = socket.socket()
- con.connect((HOST, PORT))
- send_pass(PASS)
- send_nick(NICK)
- con.send(bytes('CAP REQ :twitch.tv/tags\r\n', 'UTF-8'))
- join_channel(CHAN)
- data = ""
- while True:
- try:
- ready = select.select([con], [], [], 8)
- if ready[0]:
- data = con.recv(1024).decode("UTF-8")
- print(data)
- if len(data) != 0:
- data_split = re.split(r"[~\r\n+]", data)
- data = data_split.pop()
- for line in data_split:
- line = str.rstrip(line)
- line = str.split(line)
- lineInfo = line[0].split(";")
- lineDict = {}
- for info in lineInfo:
- newInfo = info.split("=")
- lineDict[newInfo[0]] = newInfo[1]
- modStatus = int(lineDict["mod"])
- turboStatus = int(lineDict["turbo"])
- subStatus = int(lineDict["subscriber"])
- if turboStatus == 1:
- turboStatus = True
- if subStatus == 1:
- subStatus = True
- if modStatus == 1:
- modStatus = True
- if turboStatus == 0:
- turboStatus = False
- if modStatus == 0:
- modStatus = False
- if subStatus == 0:
- subStatus = False
- if len(line) >= 1:
- if line[0] == "PING":
- send_pong(line[1])
- print("Pong!")
- if line[2] == "PRIVMSG":
- sender = get_sender(line[1]).lower()
- message = get_message(line[1:])
- parse_message(message)
- except socket.error:
- print("[WARNING]\tSocket died.")
- except socket.timeout:
- print("[WARNING]\tSocket timeout.")
- except IndexError:
- pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement