Formated by GeSHi
import socket import string import random import time host = "bartholomew.2600.net" port = 6667 channel = "#DarkBot" irc = socket.socket() irc.connect((host, port)) def irc_read(): input = irc.recv(4096) if "PING" in input: pong = input.replace("PING", "PONG") irc.send(pong) irc_read() irc.send("NICK DarkBot\r\n") irc_read() irc.send("USER DarkBot DarkBot DarkBot :DarkBot\r\n") irc_read() irc.send("JOIN %s\r\n" % channel) irc.recv(4096) wassup = ['Hello, world!', 'Caw, lidske bytosti ;)', 'Zdrawim', 'Caw', 'Wassup', 'Zdravicko', 'Zdarec', 'Eh?? Jsem na zemi??', \ 'Ahoj, svete!', 'TheDarkAvenger: klanim se pred vami, muj lorde', 'TheDarkAvenger: rad vas vidim, lorde.'] uvitani = random.choice(wassup) irc.send("PRIVMSG "+channel+" :"+uvitani+"\r\n") def get_function(): global data dlist = data.split(); num = dlist.index(":DarkBot:") function = dlist.pop(num+1) return function def get_args(): global data dlist = data.split(); num = dlist.index(":DarkBot:") aslice = dlist[num+2:] args = string.join(aslice, " ") return args idk_list = ['Co je??', 'Co ze?? Newim co po mne chces.', 'WTF?? Nechapu...', 'To nechapu, vole...', \ 'Fakt nevim co po mne chces.','Chces aby jsem tebe vyflejmoval??','Tak to budes muset mi vysvetlit jinak', \ 'Hm... mozna to je zajimave, ale ja to nechapu', 'No tak... vysvetluj jinak'] vety = ["Those who talk don't know. Those who don't talk, know."] def newim(): global idk_list idk = random.choice(idk_list) return idk class FatalError: pass function_list = ['SAY', 'DEF', 'ECHO', 'RAND_INT', 'CALC', 'WYPATL','H4X0R', 'TIME', 'BLOOD', 'CONFUCIUS'] ## ##FUNCTION DEFINITIONS ## varval = {} letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" def SAY(args): text = str(args) return text def DEF(args): args = args.split() var = args.pop(0) val = string.join(args[0:]) code = "varval[\""+var+"\"]=\""+val+"\"" exec code return "Provedeno." def ECHO(args): global varval text = str(args) for i in varval: if varval.has_key(i): text = text.replace(i, varval[i]) return text def RAND_INT(args): global letters global FatalError for i in args: if i in letters: raise FatalError else: pass args = args.split() min = int(args.pop(0)) max = int(args.pop(0)) res = random.randint(min, max) return str(res) def CALC(args): global letters global FatalError for i in args: if i in letters: raise FatalError m_res = eval(args) if len(str(m_res)) > 1000: raise FatalError return str(m_res) def WYPATL(args): _string = args.lower() _string = _string.replace("v","w") _string = _string.replace("y","ej") _string = _string.replace("i","y") pw2 = "" for i in _string: to_choose = ['BIG','SMALL'] choice = random.choice(to_choose) if choice == "BIG": pw2 = pw2 + str(i.upper()) elif choice == "SMALL": pw2 = pw2 + str(i.lower()) return str(pw2) def H4X0R(args): _string = args.upper() _string = _string.replace("A","4") _string = _string.replace("CK","xX") _string = _string.replace("E","3") _string = _string.replace("C","[") _string = _string.replace("G","6") _string = _string.replace("H","|-|") _string = _string.replace("I","1") _string = _string.replace("K", "|<") _string = _string.replace("O","0") _string = _string.replace("T","7") _string = _string.replace("W","VV") return str(_string) def TIME(args): _time_ = time.ctime() return str(_time_) blood_gamers = [] blood_status = "" kill_msgs = [' brutalne zavrazdil ',' se poradne napil krvi ',' si vychutnal smrt ', ' vyndal mozek z hlavi, majitelem ktere byl', \ '... Jeho nuz skoncil na krku ',' znasilnil a zavrazdil ',' pujcil odjisteny granat ', ' proste zabil ', \ ' dobre vi ze uz se nevrati '] end_msgs = [' bohuzel spadl na zem a uz nikdy nevstal...',' bohuzel spletl granat s kamenem...',' asi nepoznal ze tam jeste zbejval naboj...', ' se zdal byt nesmrtelny. Bohuzel, zakopnul o kamen...'] def BLOOD(args): global data global blood_gamers global blood_status global kill_msgs global end_msgs lstr = [] for i in data: if i != "!": lstr.append(i) elif i == "!": break lstr.pop(0) author = string.join(lstr, "") if "JOIN" in args: if blood_status != "playing": blood_gamers.append(author) return author+": jsi ve hre!" elif blood_status == "playing": return author+": sorry, zrovna se hraje... budes muset pockat na konec zapasu." elif "START" in args: if blood_status != "playing": if len(blood_gamers) < 2: return "Neni dostatek hracu." elif blood_status == "playing": return "Uz se prece hraje, vole..." elif len(blood_gamers) >= 2: blood_status = "playing" return "HRA!!" elif "KILL" in args: if blood_status == "playing": if author in blood_gamers: args_l = args.split() victim = args_l.pop(args_l.index("KILL")+1) if victim in blood_gamers: blood_gamers.pop(blood_gamers.index(victim)) if len(blood_gamers) < 1: blood_status = "" return "Whoops... Konec hry... Nikdo neprezil." elif len(blood_gamers) == 1: blood_status = "" survivor = blood_gamers.pop() return survivor+random.choice(end_msgs) return author+random.choice(kill_msgs)+victim elif victim not in blood_gamers: return author+": ten prece nehraje..." elif author not in blood_gamers: return author+": nejsi na bojisti..." elif blood_status != "playing": return author+"Prece se nehraje, vole!" elif "STOP" in args: blood_status = "" blood_gamers = [] return author+" ukoncil hru." elif "PLAYERS" in args: return str(blood_gamers) ## ## while 1: data = irc.recv(4096) if "PING" in data: pong = data.replace("PING", "PONG") irc.send(pong) elif ":DarkBot:" in data: idk = "0" try: function = get_function() if function not in function_list: idk = "1"; raise FatalError ga = get_args() args_txt = ga.replace("\"", "'") code = "result = "+function+"(\""+str(args_txt)+"\")" exec code if len(result) < 450: irc.send("PRIVMSG "+channel+" :"+result+"\r\n") elif len(result) > 450: count = 0 res_str = "" res_len = len(result) for i in result: if len(res_str) < 450: res_str = res_str + str(i) res_len = res_len - 1 if res_len <=0: irc.send("PRIVMSG "+channel+" :"+res_str+"\r\n") elif len(res_str) >= 450: irc.send("PRIVMSG "+channel+" :"+res_str+"\r\n") res_str = "" res_str = res_str + i res_len = res_len - 1 except: if idk == "0": irc.send("PRIVMSG "+channel+" : FATAL ERROR VOLE\r\n") elif idk == "1": irc.send("PRIVMSG " + channel + " :" + newim() + "\r\n")Parsed in 0.22764206 seconds
| :: Download | ||||
| :: Print into | ||||
:: Make Diff
:: Erase Post