Recent
:: anonymous
9 mins ago
:: This post is secret anonymous
36 mins ago
:: anonymous
1 hr ago
:: Viliam
1 hr ago
:: Viliam
3 hrs ago
:: anonymous
3 hrs ago
:: anonymous
5 hrs ago
:: sturm
6 hrs ago
:: sturm
9 hrs ago
:: This post is secret anonymous
15 hrs ago
:: c-x
15 hrs ago
:: c-x
16 hrs ago
:: c-x
16 hrs ago
:: laths
16 hrs ago
:: anonymous
16 hrs ago
rss 2.0 feed

Make New Post
Posts: 9853

Syntax:       Wrapping:  

   #9233 Posted by DarkAvenger 2008-11-19 22:04:57
Formated by GeSHi
  1. import socket
  2. import string
  3. import random
  4. import time
  5.  
  6. host = "bartholomew.2600.net"
  7. port = 6667
  8. channel = "#DarkBot"
  9.  
  10. irc = socket.socket()
  11. irc.connect((host, port))
  12.  
  13. def irc_read():
  14. input = irc.recv(4096)
  15. if "PING" in input:
  16. pong = input.replace("PING", "PONG")
  17. irc.send(pong)
  18.  
  19. irc_read()
  20. irc.send("NICK DarkBot\r\n")
  21. irc_read()
  22. irc.send("USER DarkBot DarkBot DarkBot :DarkBot\r\n")
  23. irc_read()
  24. irc.send("JOIN %s\r\n" % channel)
  25. irc.recv(4096)
  26.  
  27. wassup = ['Hello, world!', 'Caw, lidske bytosti ;)', 'Zdrawim', 'Caw', 'Wassup', 'Zdravicko', 'Zdarec', 'Eh?? Jsem na zemi??', \
  28. 'Ahoj, svete!', 'TheDarkAvenger: klanim se pred vami, muj lorde', 'TheDarkAvenger: rad vas vidim, lorde.']
  29. uvitani = random.choice(wassup)
  30. irc.send("PRIVMSG "+channel+" :"+uvitani+"\r\n")
  31.  
  32. def get_function():
  33. global data
  34. dlist = data.split();
  35. num = dlist.index(":DarkBot:")
  36. function = dlist.pop(num+1)
  37. return function
  38. def get_args():
  39. global data
  40. dlist = data.split();
  41. num = dlist.index(":DarkBot:")
  42. aslice = dlist[num+2:]
  43. args = string.join(aslice, " ")
  44. return args
  45.  
  46. idk_list = ['Co je??', 'Co ze?? Newim co po mne chces.', 'WTF?? Nechapu...', 'To nechapu, vole...', \
  47. 'Fakt nevim co po mne chces.','Chces aby jsem tebe vyflejmoval??','Tak to budes muset mi vysvetlit jinak', \
  48. 'Hm... mozna to je zajimave, ale ja to nechapu', 'No tak... vysvetluj jinak']
  49.  
  50. vety = ["Those who talk don't know. Those who don't talk, know."]
  51.  
  52. def newim():
  53. global idk_list
  54. idk = random.choice(idk_list)
  55. return idk
  56.  
  57. class FatalError:
  58. pass
  59.  
  60. function_list = ['SAY', 'DEF', 'ECHO', 'RAND_INT', 'CALC', 'WYPATL','H4X0R', 'TIME', 'BLOOD', 'CONFUCIUS']
  61.  
  62. ##
  63. ##FUNCTION DEFINITIONS
  64. ##
  65. varval = {}
  66. letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  67.  
  68. def SAY(args):
  69. text = str(args)
  70. return text
  71.  
  72. def DEF(args):
  73. args = args.split()
  74. var = args.pop(0)
  75. val = string.join(args[0:])
  76. code = "varval[\""+var+"\"]=\""+val+"\""
  77. exec code
  78. return "Provedeno."
  79.  
  80.  
  81. def ECHO(args):
  82. global varval
  83. text = str(args)
  84. for i in varval:
  85. if varval.has_key(i):
  86. text = text.replace(i, varval[i])
  87. return text
  88.  
  89. def RAND_INT(args):
  90. global letters
  91. global FatalError
  92. for i in args:
  93. if i in letters: raise FatalError
  94. else: pass
  95. args = args.split()
  96. min = int(args.pop(0))
  97. max = int(args.pop(0))
  98. res = random.randint(min, max)
  99. return str(res)
  100.  
  101. def CALC(args):
  102. global letters
  103. global FatalError
  104. for i in args:
  105. if i in letters: raise FatalError
  106. m_res = eval(args)
  107. if len(str(m_res)) > 1000: raise FatalError
  108. return str(m_res)
  109.  
  110. def WYPATL(args):
  111. _string = args.lower()
  112. _string = _string.replace("v","w")
  113. _string = _string.replace("y","ej")
  114. _string = _string.replace("i","y")
  115. pw2 = ""
  116. for i in _string:
  117. to_choose = ['BIG','SMALL']
  118. choice = random.choice(to_choose)
  119. if choice == "BIG":
  120. pw2 = pw2 + str(i.upper())
  121. elif choice == "SMALL":
  122. pw2 = pw2 + str(i.lower())
  123. return str(pw2)
  124.  
  125. def H4X0R(args):
  126. _string = args.upper()
  127. _string = _string.replace("A","4")
  128. _string = _string.replace("CK","xX")
  129. _string = _string.replace("E","3")
  130. _string = _string.replace("C","[")
  131. _string = _string.replace("G","6")
  132. _string = _string.replace("H","|-|")
  133. _string = _string.replace("I","1")
  134. _string = _string.replace("K", "|<")
  135. _string = _string.replace("O","0")
  136. _string = _string.replace("T","7")
  137. _string = _string.replace("W","VV")
  138. return str(_string)
  139.  
  140. def TIME(args):
  141. _time_ = time.ctime()
  142. return str(_time_)
  143.  
  144.  
  145. blood_gamers = []
  146. blood_status = ""
  147. kill_msgs = [' brutalne zavrazdil ',' se poradne napil krvi ',' si vychutnal smrt ', ' vyndal mozek z hlavi, majitelem ktere byl', \
  148. '... Jeho nuz skoncil na krku ',' znasilnil a zavrazdil ',' pujcil odjisteny granat ', ' proste zabil ', \
  149. ' dobre vi ze uz se nevrati ']
  150. 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...']
  151.  
  152. def BLOOD(args):
  153. global data
  154. global blood_gamers
  155. global blood_status
  156. global kill_msgs
  157. global end_msgs
  158. lstr = []
  159. for i in data:
  160. if i != "!":
  161. lstr.append(i)
  162. elif i == "!":
  163. break
  164. lstr.pop(0)
  165. author = string.join(lstr, "")
  166. if "JOIN" in args:
  167. if blood_status != "playing":
  168. blood_gamers.append(author)
  169. return author+": jsi ve hre!"
  170. elif blood_status == "playing":
  171. return author+": sorry, zrovna se hraje... budes muset pockat na konec zapasu."
  172. elif "START" in args:
  173. if blood_status != "playing":
  174. if len(blood_gamers) < 2:
  175. return "Neni dostatek hracu."
  176. elif blood_status == "playing":
  177. return "Uz se prece hraje, vole..."
  178. elif len(blood_gamers) >= 2:
  179. blood_status = "playing"
  180. return "HRA!!"
  181. elif "KILL" in args:
  182. if blood_status == "playing":
  183. if author in blood_gamers:
  184. args_l = args.split()
  185. victim = args_l.pop(args_l.index("KILL")+1)
  186. if victim in blood_gamers:
  187. blood_gamers.pop(blood_gamers.index(victim))
  188. if len(blood_gamers) < 1:
  189. blood_status = ""
  190. return "Whoops... Konec hry... Nikdo neprezil."
  191. elif len(blood_gamers) == 1:
  192. blood_status = ""
  193. survivor = blood_gamers.pop()
  194. return survivor+random.choice(end_msgs)
  195. return author+random.choice(kill_msgs)+victim
  196. elif victim not in blood_gamers:
  197. return author+": ten prece nehraje..."
  198. elif author not in blood_gamers:
  199. return author+": nejsi na bojisti..."
  200. elif blood_status != "playing":
  201. return author+"Prece se nehraje, vole!"
  202. elif "STOP" in args:
  203. blood_status = ""
  204. blood_gamers = []
  205. return author+" ukoncil hru."
  206. elif "PLAYERS" in args:
  207. return str(blood_gamers)
  208. ##
  209. ##
  210. while 1:
  211. data = irc.recv(4096)
  212. if "PING" in data:
  213. pong = data.replace("PING", "PONG")
  214. irc.send(pong)
  215. elif ":DarkBot:" in data:
  216. idk = "0"
  217. try:
  218. function = get_function()
  219. if function not in function_list: idk = "1"; raise FatalError
  220. ga = get_args()
  221. args_txt = ga.replace("\"", "'")
  222. code = "result = "+function+"(\""+str(args_txt)+"\")"
  223. exec code
  224. if len(result) < 450:
  225. irc.send("PRIVMSG "+channel+" :"+result+"\r\n")
  226. elif len(result) > 450:
  227. count = 0
  228. res_str = ""
  229. res_len = len(result)
  230. for i in result:
  231. if len(res_str) < 450:
  232. res_str = res_str + str(i)
  233. res_len = res_len - 1
  234. if res_len <=0:
  235. irc.send("PRIVMSG "+channel+" :"+res_str+"\r\n")
  236. elif len(res_str) >= 450:
  237. irc.send("PRIVMSG "+channel+" :"+res_str+"\r\n")
  238. res_str = ""
  239. res_str = res_str + i
  240. res_len = res_len - 1
  241. except:
  242. if idk == "0":
  243. irc.send("PRIVMSG "+channel+" : FATAL ERROR VOLE\r\n")
  244. elif idk == "1":
  245. irc.send("PRIVMSG " + channel + " :" + newim() + "\r\n")
Parsed in 0.22764206 seconds
::  Inline view Inline view ::  Email this post Email  ::  Print Print   

:: Download   Download Text File9233.txt   Download Gziped text File9233.txt.gz   Download HTML File9233.html   Download PDF File9233.pdf
:: Print into    Print into HTML FileHTML document   Print into PDF FilePDF document

:: Make Diff

:: Erase Post

* Code:

To highlight particular lines, prefix each line with @@


Description:


Secret key (for later deletion)
Syntax:     


comments (0)


Copyright © 2006 Openpastebin