Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.04 KB | None | 0 0
  1. import discord
  2. import asyncio
  3. import os
  4. import pickle
  5. import ast
  6.  
  7. client = discord.Client()
  8. #startchar="!"
  9.  
  10. @client.event
  11. async def on_ready():
  12. print('Logged in as')
  13. print(client.user.name)
  14. print(client.user.id)
  15. print('------')
  16. print('Please remember to Ctrl-C this :)')
  17. await client.change_presence(game=discord.Game(name=''))
  18. await client.change_presence(game=discord.Game(name='Type this for help'))
  19.  
  20. @client.event
  21. async def on_message(message):
  22. helpstr="""**Cat's test bot help:**
  23. **{0}help** You typed this!
  24. **Type this for help** Or maybe this.
  25. **What is the command start** Print the command start.
  26. **Inject the command start into the following string a x** Replaces **a** with the command start in **x**.
  27. **strinject a x** Same as above, but shorter.
  28. **Inject the last message sent in ths server into the following string a x** Like the above, but with the last message instead of the command start.
  29. **lms a x** Same as above, but shorter.
  30. **{0}test** Prints your username.
  31. **{0}echo stuff** Say **stuff**.
  32. **{0}wait n x** Say **x** after **n** seconds.
  33. **{0}multi x;y;z;...** Says **x**,**y**,**z**...
  34. **{0}format a;x;y;...** Formats a with x,y... using Python 3.5's "".format() function.
  35. **{0}replace a b x** Replaces **a** with **b** in **x**.
  36. **{0}load a x** Replaces **a** with the output of the last command in **x**.
  37. **{0}annoy stuff** Equivalent to (**{0}echo **)\*100 **stuff**.
  38. **{0}say channel things** Say **things** in **channel**.
  39. **{0}setstart thing** Changes the **{0}** to **thing**.
  40. **{0}push thing** Pushes **thing** to the stack.
  41. **{0}pop a x** Pops something from the stack and replaces **a** with it in **x**.
  42. **{0}length s a x** Replaces **a** with the length of **s** in decimal in **x**.
  43. **{0}unlength n a x** Replaces **a** with **n** 0s in **x**.
  44. **{0}property id value** Sets a property of the server.
  45. **{0}bansimplefart** Ban SimpleArt from using the bot.
  46. **{0}unbansimplefart** Unban SimpleFart from using the bot even though it's a bad idea.
  47. **{0}bms n s** Evaluate BMS. Redirects to {0}bm1 n 0 s.
  48. **{0}bm1 n c s** Evaluate primitive sequence system.
  49. **{0}bm2 n c s** Evaluate full BM2. n must be 100 or less.
  50. **{0}bm2d c s** Evaluate full BM2 with n set to keep the sequence under 5 elements.
  51. **{0}skip** Ignore the next command in this server.
  52. """
  53. global startchars
  54. global target
  55. try:
  56. startchars
  57. except:
  58. try:
  59. with open("cifbot.txt","rb") as f:
  60. startchars=pickle.load(f)
  61. except:
  62. startchars={}
  63. try:
  64. startchars[str(message.server)]
  65. except:
  66. #print(startchars)
  67. startchars[str(message.server)]={}
  68. startchars[str(message.server)]["startchar"]="!"
  69. startchars[str(message.server)]["echolimit"]=1000
  70. startchars[str(message.server)]["nopings"]=False
  71. startchars[str(message.server)]["countservers"]=[]
  72. startchars[str(message.server)]["stack"]=[]
  73. startchars[str(message.server)]["lms"]="Heavpoot sux"
  74. finally:
  75. schars=startchars[str(message.server)]
  76. #print(schars)
  77. if "startchar" not in schars.keys():
  78. startchars[str(message.server)]["startchar"]="!"
  79. if "echolimit" not in schars.keys():
  80. startchars[str(message.server)]["echolimit"]=1000
  81. if "nopings" not in schars.keys():
  82. startchars[str(message.server)]["nopings"]=False
  83. if "countservers" not in schars.keys():
  84. startchars[str(message.server)]["countservers"]=[]
  85. if "lms" not in schars.keys():
  86. startchars[str(message.server)]["lms"]="Heavpoot sux"
  87. if "simpleban" not in schars.keys():
  88. startchars[str(message.server)]["simpleban"]=False
  89. if "bmslim" not in schars.keys():
  90. startchars[str(message.server)]["bmslim"]=5
  91. if "skip" not in schars.keys():
  92. startchars[str(message.server)]["skip"]=0
  93. startchar=startchars[str(message.server)]["startchar"]
  94. echolimit=startchars[str(message.server)]["echolimit"]
  95. nopings=startchars[str(message.server)]["nopings"]
  96. countservers=startchars[str(message.server)]["countservers"]
  97. botlord=str(message.author.name)=="CatIsFluffy"
  98. onlyme=False
  99. command=True
  100. if botlord:print("Botlord")
  101. if startchars[str(message.server)]["skip"]>0 and message.content.startswith(startchar):
  102. startchars[str(message.server)]["skip"]-=1
  103. elif (str(message.author)=="Simple_Art#1200" or (not botlord and onlyme)) and message.content.startswith(startchar) and startchars[str(message.server)]["simpleban"]:
  104. await client.send_message(message.channel, "Simple_Art attempted to use the bot and failed.")
  105. command=not onlyme
  106. elif message.content.startswith(startchar+'help')or message.content=="Type this for help":
  107. await client.send_message(message.channel, helpstr.format(startchar))
  108. elif message.content=="What is the command start":
  109. await client.send_message(message.channel, startchar)
  110. elif message.content[:51]=="Inject the command start into the following string "or message.content[:10]=="strinject ":
  111. if message.content[0]=="I":
  112. temp=message.content[51:].replace(" ","avdagsfz")
  113. else:
  114. temp=message.content[10:].replace(" ","avdagsfz")
  115. temp=temp.split(" ",1)
  116. temp[1]=temp[1].replace("avdagsfz"," ")
  117. temp=[i.replace("avdagsfz"," ") for i in temp]
  118. await client.send_message(message.channel, store(temp[1].replace(temp[0],startchar),str(message.server)))
  119. elif message.content[:69]=="Inject the last message sent in this server into the following string "or message.content[:4]=="lms ":
  120. if message.content[0]=="I":
  121. temp=message.content[69:].replace(" ","avdagsfz")
  122. else:
  123. temp=message.content[4:].replace(" ","avdagsfz")
  124. temp=temp.split(" ",1)
  125. temp[1]=temp[1].replace("avdagsfz"," ")
  126. temp=[i.replace("avdagsfz"," ") for i in temp]
  127. await client.send_message(message.channel, store(temp[1].replace(temp[0],startchars[str(message.server)]["lms"]),str(message.server)))
  128. elif message.content.startswith(startchar+'multi '):
  129. temp=message.content[len(startchar)+6:].replace(";;","avdagsfz")
  130. temp=temp.split(";")
  131. temp=[i.replace("avdagsfz",";") for i in temp]
  132. for i in temp:
  133. await client.send_message(message.channel, store(i,str(message.server)))
  134. elif message.content.startswith(startchar+'format '):
  135. temp=message.content[len(startchar)+7:].replace(";;","avdagsfz")
  136. temp=temp.split(";")
  137. temp=[i.replace("avdagsfz",";") for i in temp]
  138. await client.send_message(message.channel, store(temp[0].format(*temp[1:]),str(message.server)))
  139. elif message.content.startswith(startchar+'replace '):
  140. temp=message.content[len(startchar)+8:].replace(" ","avdagsfz")
  141. temp=temp.split(" ",2)
  142. temp[2]=temp[2].replace("avdagsfz"," ")
  143. temp=[i.replace("avdagsfz"," ") for i in temp]
  144. await client.send_message(message.channel, store(temp[2].replace(*temp[:-1]),str(message.server)))
  145. elif message.content.startswith(startchar+'load '):
  146. temp=message.content[len(startchar)+5:].replace(" ","avdagsfz")
  147. temp=temp.split(" ",1)
  148. temp=[i.replace("avdagsfz"," ") for i in temp]
  149. await client.send_message(message.channel, store(temp[1].replace(temp[0],last),str(message.server)))
  150. elif message.content.startswith(startchar+'test '):
  151. await client.send_message(message.channel, str(message.author))
  152. elif message.content.startswith(startchar+'wait '):
  153. temp=message.content.split(" ",2)
  154. await asyncio.sleep(int(temp[1]))
  155. code=check(temp[2],echolimit,nopings,startchar)
  156. if code==0:
  157. await client.send_message(message.channel, store(temp[2],str(message.server)))
  158. else:
  159. await client.send_message(message.channel, store("Invalid",str(message.server)))
  160. elif message.content.startswith(startchar+'echo '):
  161. code=check(message.content[len(startchar)+5:],echolimit,nopings,startchar)
  162. if code==0:
  163. if False and message.author=="Simple_Art#1200":
  164. await client.send_message(message.channel, store("Simple_Art attempted to use the bot to post anonymously and failed."))
  165. else:
  166. await client.send_message(message.channel, store(message.content[len(startchar)+5:],str(message.server)))
  167. else:
  168. await client.send_message(message.channel, store("Invalid",str(message.server)))
  169. elif message.content.startswith(startchar+'annoy'):
  170. code=check(message.content[len(startchar)+6:],echolimit,nopings,startchar)
  171. if code==0:
  172. await client.send_message(message.channel, (startchar+"echo ")*100+message.content[len(startchar)+6:])
  173. else:
  174. await client.send_message(message.channel, "Invalid")
  175. elif message.content.startswith(startchar+'say '):
  176. temp=message.content.split(" ",2)
  177. if temp[1][0]=="#":
  178. temp[1]==temp[1][1:]
  179. channel=discord.utils.get(message.server.channels,name=temp[1])
  180. print(channel,type(channel))
  181. await client.send_message(message.server.get_channel(channel.id), temp[2])
  182. elif message.content.startswith(startchar+'ssay '):
  183. temp=message.content.split(" ",3)
  184. channel=discord.utils.get(target.channels,name=temp[2])
  185. print(channel,type(channel))
  186. await client.send_message(target.get_channel(channel.id), temp[3])
  187. elif message.content.startswith(startchar+'sleep'):
  188. await asyncio.sleep(5)
  189. await client.send_message(message.channel, 'Done sleeping')
  190. elif message.content.startswith(startchar+'setstart'):
  191. startchars[str(message.server)]["startchar"]=message.content[len(startchar)+9:].replace("\\","").strip()
  192. startchar=startchars[str(message.server)]["startchar"]
  193. await client.send_message(message.channel, 'Command start is now '+startchar)
  194. elif message.content.startswith(startchar+'property '):
  195. temp=message.content.split(" ",2)
  196. startchars[str(message.server)][temp[1]]=ast.literal_eval(temp[2])
  197. await client.send_message(message.channel, temp[1]+'='+temp[2])
  198. elif message.content.startswith(startchar+'addcount'):
  199. pass
  200. elif message.content.startswith(startchar+'push'):
  201. temp=message.content.split(" ",1)
  202. startchars[str(message.server)]['stack'].append(temp[1])
  203. await client.send_message(message.channel, "Pushed "+temp[1])
  204. elif message.content.startswith(startchar+'pop '):
  205. temp=message.content[len(startchar)+4:]
  206. temp=temp.split(" ",1)
  207. await client.send_message(message.channel, store(temp[1].replace(temp[0],startchars[str(message.server)]['stack'].pop()),str(message.server)))
  208. elif message.content.startswith(startchar+'peek '):
  209. temp=message.content[len(startchar)+4:]
  210. temp=temp.split(" ",1)
  211. await client.send_message(message.channel, store(temp[1].replace(temp[0],startchars[str(message.server)]['stack'][-1]),str(message.server)))
  212. elif message.content.startswith(startchar+'length '):
  213. temp=message.content[len(startchar)+7:].replace(" ","avdagsfz")
  214. temp=temp.split(" ",2)
  215. temp[2]=temp[2].replace("avdagsfz"," ")
  216. temp=[i.replace("avdagsfz"," ") for i in temp]
  217. await client.send_message(message.channel, store(temp[2].replace(temp[1],str(len(temp[0]))),str(message.server)))
  218. elif message.content.startswith(startchar+'unlength'):
  219. temp=message.content[len(startchar)+9:].replace(" ","avdagsfz")
  220. temp=temp.split(" ",2)
  221. temp[2]=temp[2].replace("avdagsfz"," ")
  222. temp=[i.replace("avdagsfz"," ") for i in temp]
  223. await client.send_message(message.channel, store(temp[2].replace(temp[1],"0"*int(temp[0])),str(message.server)))
  224. elif message.content.startswith(startchar+'shell ') and botlord:
  225. out=os.popen(message.content[len(startchar)+6:]).read()
  226. print(out)
  227. await client.send_message(message.channel, "Executing "+message.content[len(startchar)+6:])
  228. if len(out)>2000:
  229. await client.send_message(message.channel, "Output too long :(")
  230. elif out=="":
  231. await client.send_message(message.channel, "No output.")
  232. else:
  233. await client.send_message(message.channel, "Shell output:")
  234. await client.send_message(message.channel, escape(out))
  235. elif message.content.startswith(startchar+'target') and botlord:
  236. target=message.server
  237. elif message.content.startswith(startchar+'restore ') and botlord:
  238. startchars=ast.literal_eval(message.content[len(startchar)+8:])
  239. print("Now",startchars)
  240. await client.send_message(message.channel, "Startchars is now "+str(startchars))
  241. elif message.content.startswith(startchar+'shutdown') and botlord:
  242. await client.send_message(message.channel, "Restore dump is "+str(startchars))
  243. exit(0)
  244. elif message.content.startswith(startchar+'bansimplefart'):
  245. startchars[str(message.server)]['simpleban']=True
  246. elif message.content.startswith(startchar+'unbansimplefart'):
  247. startchars[str(message.server)]['simpleban']=False
  248. elif message.content.startswith(startchar+'bms '):
  249. temp=message.content.split(" ",2)
  250. await client.send_message(message.channel,startchar+"bm2 "+temp[1]+" 0 "+temp[2])
  251. elif message.content.startswith(startchar+'bm1 '):
  252. temp=message.content.split(" ",3)
  253. n=int(temp[1])
  254. c=int(temp[2])
  255. s=list(map(int,temp[3].replace(")","").split("(")[1:]))
  256. if len(s)==0:
  257. return
  258. l=s.pop()
  259. if l>0:
  260. p=len(s)-1
  261. print(s,l)
  262. while l<=s[p]:
  263. print(",",p,s[p])
  264. p-=1
  265. if n==0:
  266. s=s[:p]
  267. else:
  268. for i in range(1,n):
  269. s+=s[p:]
  270. else:
  271. c+=1
  272. await client.send_message(message.channel,startchar+"bm1 "+str(n)+" "+str(c)+" "+"".join(list(map(lambda x:"("+str(x)+")",s))))
  273. elif message.content.startswith(startchar+'bm2 '):
  274. temp=message.content.split(" ",3)
  275. await client.send_message(message.channel,bash(int(temp[1]),int(temp[2]),temp[3],startchars[str(message.server)]["bmslim"]))
  276. elif message.content.startswith(startchar+'bm2d '):
  277. temp=message.content.split(" ",2)
  278. await client.send_message(message.channel,bash(-1,int(temp[1]),temp[2],startchars[str(message.server)]["bmslim"]))
  279. elif message.content.startswith(startchar+'bm2d2 '):
  280. temp=message.content.split(" ",3)
  281. await client.send_message(message.channel,bash(-2,int(temp[2]),temp[3],int(temp[1])))
  282. elif message.content.startswith(startchar+'bm2d3 '):
  283. temp=message.content.split(" ",3)
  284. await client.send_message(message.channel,bash(-3,int(temp[2]),temp[3],int(temp[1])))
  285. elif message.content.startswith(startchar+'chms '):
  286. temp=message.content.split(" ",3)
  287. await client.send_message(message.channel,chms(int(temp[1]),int(temp[2]),temp[3],startchars[str(message.server)]["bmslim"]))
  288. elif message.content.startswith(startchar+'chmsd2 '):
  289. temp=message.content.split(" ",3)
  290. await client.send_message(message.channel,chms(-2,int(temp[2]),temp[3],int(temp[1])))
  291. elif message.content.startswith(startchar+'skip'):
  292. startchars[str(message.server)]["skip"]+=1
  293. elif message.content.startswith(startchar+'something '):
  294. temp=message.content[len(startchar)+10:]
  295. starts=[]
  296. start=-1
  297. end=-1
  298. detect=0
  299. for i in range(len(temp)):
  300. if temp[i]=="(":
  301. starts.append(i)
  302. detect=0
  303. elif temp[i]==")":
  304. start=starts.pop()
  305. detect=1
  306. elif temp[i] in "^:!" and detect:
  307. end=i-1
  308. break
  309. ret=""
  310. if end>-1:
  311. if temp[end+1]=="^":
  312. ret=temp[:start]+temp[start+1:end]+temp[end+2:]
  313. elif temp[end+1]=="!":
  314. ret=temp[:start]+temp[end+2:]
  315. elif temp[end+1]==":":
  316. ret=temp[:end+1]+temp[start:end+1]+temp[end+2:]
  317. await client.send_message(message.channel,startchar+'something '+ret)
  318. else:
  319. command=False
  320. if command:
  321. #print(startchars,end="\n\n")
  322. print("In:",message.server,message.channel)
  323. print("By:",message.author)
  324. print("Is:",message.content)
  325. startchars[str(message.server)]["lms"]=message.content
  326. print(message.content)
  327. def bash(n,t,s,lim=5):
  328. def seqred(s2,li,trigger):
  329. nonlocal rows
  330. d=[False]*len(s2)
  331. for i in range(rows):
  332. x=s2[li]
  333. for j in range(li-1,-1,-1):
  334. if d[j]:
  335. continue
  336. y=s2[j]
  337. if y[i]<x[i]:
  338. x=y
  339. else:
  340. d[j]=True
  341. if j==trigger:
  342. return i
  343. if trigger>-1:
  344. return rows
  345. return d
  346. if n>10:
  347. n=10
  348. s=s.replace("(","").split(")")[:-1]
  349. if len(s)==0:
  350. return
  351. s2=[]
  352. if s[0]=="":
  353. s2=[[]]*len(s)
  354. else:
  355. for i in s:
  356. l=list(map(int,i.split(",")))
  357. s2.append(l)
  358. l=s2[-1]
  359. lim2=lim
  360. if l[0]>0:
  361. rows=len(l)
  362. while l[rows-1]==0:
  363. rows-=1
  364. d=seqred(s2,len(s2)-1,-1)
  365. bri=-1
  366. for i in range(len(s2)-2,-1,-1):
  367. if not d[i]:
  368. bri=i
  369. break
  370. if n<0:
  371. print(lim)
  372. lim-=bri
  373. print(lim)
  374. lim//=len(s2)-bri-1
  375. print(lim)
  376. n2=lim
  377. if n==-3:
  378. n2=10
  379. else:
  380. n2=n
  381. if n2>0:
  382. br=s2[bri]
  383. dt=[(v[0]-v[1] if i<rows-1 else 0)for i,v in enumerate(zip(l,br))]
  384. #c=[[1]*len(l)]
  385. c=[]
  386. for i in range(bri,len(s2)-1):
  387. r=seqred(s2,i,bri)
  388. c.append([(1 if i<r else 0) for i in range(0,len(l))])
  389. sx=[s2[bri:-1]]
  390. for i in range(1,n2):
  391. sx.append([[y+x*z for x,y,z in zip(c[i],v,dt)] for i,v in enumerate(sx[-1])])
  392. s2=s2[:-1]
  393. for i in range(1,n2):
  394. s2+=sx[i]
  395. else:
  396. s2=s2[:bri]
  397. if t<-1:
  398. t+=1
  399. else:
  400. s2=s2[:-1]
  401. t+=1
  402. if n==-3:
  403. s2=s2[:lim2]
  404. print(str(t)+":"+str(s2))
  405. shrink=len(s2) and len(s2[0])>1
  406. for i in s2:
  407. if i[-1]!=0:
  408. shrink=False
  409. break
  410. if shrink:
  411. s2=[i[:-1] for i in s2]
  412. s3=["("+",".join([str(y) for y in x])+")" for x in s2]
  413. prefix="!bm2"
  414. if t==-1:
  415. prefix=""
  416. if n==-1:
  417. return prefix+"d "+str(t)+" "+"".join(s3)
  418. elif n==-2:
  419. return prefix+"d2 "+str(lim2)+" "+str(t)+" "+"".join(s3)
  420. elif n==-3:
  421. return prefix+"d3 "+str(lim2)+" "+str(t)+" "+"".join(s3)
  422. return prefix+" "+str(n)+" "+str(t)+" "+"".join(s3)
  423. def chms(n,t,s,lim=5):
  424. def seqred(s2,li,trigger):
  425. nonlocal rows
  426. d=[False]*len(s2)
  427. for i in range(rows):
  428. x=s2[li]
  429. for j in range(li-1,-1,-1):
  430. if d[j]:
  431. continue
  432. y=s2[j]
  433. if y[i]<x[i]:
  434. x=y
  435. else:
  436. d[j]=True
  437. if j==trigger:
  438. return i
  439. if trigger>-1:
  440. return rows
  441. return d
  442. if n>10:
  443. n=10
  444. s=s.replace("(","").split(")")[:-1]
  445. if len(s)==0:
  446. return
  447. s2=[]
  448. if s[0]=="":
  449. s2=[[]]*len(s)
  450. else:
  451. for i in s:
  452. l=list(map(int,i.split(",")))
  453. s2.append(l)
  454. l=s2[-1]
  455. lim2=lim
  456. if l[0]>0:
  457. rows=len(l)
  458. while l[rows-1]==0:
  459. rows-=1
  460. d=seqred(s2,len(s2)-1,-1)
  461. bri=-1
  462. for i in range(len(s2)-2,-1,-1):
  463. if not d[i]:
  464. bri=i
  465. break
  466. if n<0:
  467. print(lim)
  468. lim-=bri
  469. print(lim)
  470. lim//=len(s2)-bri-1
  471. print(lim)
  472. n2=lim
  473. if n==-3:
  474. n2+=1
  475. else:
  476. n2=n
  477. if n2>0:
  478. br=s2[bri]
  479. dt=[(v[0]-v[1] if i<rows-1 else 0)for i,v in enumerate(zip(l,br))]
  480. dt[rows-1]=l[rows-1]-br[rows-1]-1
  481. #c=[[1]*len(l)]
  482. c=[]
  483. for i in range(bri,len(s2)-1):
  484. r=seqred(s2,i,bri)
  485. c.append([(1 if i<r else 0) for i in range(0,len(l))])
  486. sx=[s2[bri:-1]]
  487. for i in range(1,n2**2):
  488. sx.append([[y+x*z for x,y,z in zip(c[i],v,dt)] for i,v in enumerate(sx[-1])])
  489. s2=s2[:-1]
  490. c=0
  491. print(",",dt[rows-1],bri,len(s2))
  492. strange=dt[rows-1]==0 and bri==len(s2)-1
  493. for i in range(1,n2):
  494. if strange:
  495. c+=i
  496. else:
  497. c+=1
  498. s2+=sx[c]
  499. else:
  500. s2=s2[:bri]
  501. if t<-1:
  502. t+=1
  503. else:
  504. s2=s2[:-1]
  505. t+=1
  506. if n==-3:
  507. s2=s2[:lim]
  508. print(str(t)+":"+str(s2))
  509. shrink=len(s2) and len(s2[0])>1
  510. for i in s2:
  511. if i[-1]!=0:
  512. shrink=False
  513. break
  514. if shrink:
  515. s2=[i[:-1] for i in s2]
  516. s3=["("+",".join([str(y) for y in x])+")" for x in s2]
  517. prefix="!chms"
  518. if t==-1:
  519. prefix=""
  520. if n==-1:
  521. return prefix+"d "+str(t)+" "+"".join(s3)
  522. elif n==-2:
  523. return prefix+"d2 "+str(lim2)+" "+str(t)+" "+"".join(s3)
  524. elif n==-3:
  525. return prefix+"d3 "+str(lim2)+" "+str(t)+" "+"".join(s3)
  526. return prefix+" "+str(n)+" "+str(t)+" "+"".join(s3)
  527. def check(message,limit,nopings,start):
  528. looping=message.count(start+"echo")+message.count(start+"say")+message.count(start+"ssay")+message.count(start+"annoy")+message.count(start+"wait")+message.count(start+"format")+message.count(start+"replace")+message.count(start+"load")>limit
  529. pings=message.count("@") and nopings
  530. output=0
  531. if looping:output+=1
  532. if pings:output+=2
  533. return output
  534. def escape(x):
  535. return x.replace("*","\\*").replace("_","\\_").replace("@","\\@")
  536. def store(x,s):
  537. global last
  538. last=x
  539. startchars[s]["lms"]=x
  540. return last
  541. try:
  542. #client.run('SimplefArtsucksSimplefArtsucks')
  543. client.run('SimplefArtsucksSimplefArtsucks')
  544. except KeyboardInterrupt:
  545. with open("cifbot.txt","w") as f:
  546. print(startchars)
  547. pickle.dump(startchars,f,pickle.HIGHEST_PROTOCOL)
  548. print("Dump complete")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement