Advertisement
Guest User

Untitled

a guest
May 10th, 2019
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.20 KB | None | 0 0
  1. main.py
  2. import discord,os,random,base64,datetime,time,variables,asyncio,probability,wikipedia,traveldicts,func,safaridicts
  3. client = discord.Client()
  4. @client.event
  5. async def on_ready():
  6. print("I'm in")
  7. print(client.user)
  8. @client.event
  9. async def on_message(message):
  10. with open('saved.txt','r') as f:
  11. lines = f.read().split('\n')
  12. cctexts = []
  13. ccnames = []
  14. arnames = []
  15. artexts = []
  16. for x in lines:
  17. arglist = x.split(' ',2)
  18. try:
  19. if arglist[0] == 'cc':
  20. ccnames.append(arglist[1])
  21. cctexts.append(arglist[2])
  22. else:
  23. arnames.append(arglist[1])
  24. artexts.append(arglist[2])
  25. except:
  26. print('Null')
  27. if message.author.bot or len(message.content) == 0:
  28. return
  29. if message.content[0] == '&':
  30. command = message.content[1:]
  31. callword = command.split(' ')[0].strip()
  32. try:
  33. args = command.split(' ',1)[1].strip()
  34. except:
  35. args = ' '
  36. def check(callist):
  37. if callword in callist:
  38. return True
  39. else:
  40. return False
  41. def staff():
  42. if message.guild.get_role(573982745835995148) in message.author.roles:
  43. return True
  44. else:
  45. return False
  46. if check(['say']) and staff():
  47. await message.channel.send(args)
  48. await message.delete()
  49. elif check(['remotesay','rsay']) and staff():
  50. channel = message.channel_mentions[0]
  51. if args.startswith('<#{}>'.format(channel.id)):
  52. content = args.split(' ',1)[1]
  53. await channel.send(content)
  54. elif check(ccnames):
  55. await message.channel.send(cctexts
  56. [ccnames.index(callword)])
  57. elif check(['pin']) and staff():
  58. msg = await message.channel.send(args)
  59. await message.delete()
  60. await msg.pin()
  61. elif check(['topic']) and staff():
  62. await message.channel.edit(topic=args)
  63. await message.delete()
  64. elif check(['channame']) and staff():
  65. await message.channel.edit(name=args)
  66. await message.delete()
  67. elif check(['roleid']) and staff():
  68. try:
  69. role = discord.utils.get(message.guild.roles, name=args)
  70. roleid = role.id
  71. await message.channel.send('Role ID For ' + args + ': ' + str(roleid))
  72. except:
  73. await message.channel.send('That is not the full name of a role!')
  74. elif check(['channelid']) and staff():
  75. try:
  76. channel = message.channel_mentions[0]
  77. chanid = channel.id
  78. await message.channel.send('Channel ID For <#' + str(chanid) + '>: ' + str(chanid))
  79. except:
  80. await message.channel.send('Channel Not Found')
  81. elif check(['userid']) and staff():
  82. try:
  83. user = discord.utils.get(message.guild.members, name=args)
  84. await message.channel.send('User ID For ' + args + ': ' + str(user.id))
  85. except:
  86. await message.channel.send('That is not the full name of a role!')
  87. elif check(['unpin']) and staff():
  88. pins = await message.channel.pins()
  89. for x in pins:
  90. await x.unpin()
  91. await message.delete()
  92. elif check(['b64','base64']):
  93. if args.split(' ')[0] == 'enc':
  94. force = args[3:]
  95. msg = base64.b64encode(force.encode()).decode("utf-8")
  96. else:
  97. try:
  98. msg = base64.b64decode(args.encode()).decode("utf-8")
  99. except:
  100. msg = base64.b64encode(args.encode()).decode("utf-8")
  101. await message.channel.send(msg)
  102. elif check(['poll']) and staff():
  103. await message.add_reaction('👍')
  104. await message.add_reaction('👎')
  105. elif check(['randint']) and staff():
  106. try:
  107. num1 = int(args.split('-',1)[0])
  108. num2 = int(args.split('-',1)[1]) + 1
  109. randnum = random.randint(num1,num2)
  110. msg = 'Random Number From ' + args + ': ' + str(randnum)
  111. except:
  112. msg = 'There was something wrong! Check format (&randint #-#)'
  113. finally:
  114. await message.channel.send(msg)
  115. elif check(['choose']) and staff():
  116. choice = probability.Choose(args)
  117. await message.channel.send(choice.choice)
  118. elif check(['shuffle']) and staff():
  119. shuffled = probability.Shuffle(args)
  120. await message.channel.send(shuffled.shufled)
  121. elif check(['pickn']) and staff():
  122. pickn = probability.PickN(args)
  123. await message.channel.send(pickn.pickn)
  124. elif check(['purge','prune']) and staff():
  125. await message.delete()
  126. prune = await message.channel.purge(limit=int(args))
  127. msg = 'Deleted {} message(s)'.format(len(prune))
  128. mesg = await message.channel.send(msg)
  129. await asyncio.sleep(5)
  130. await mesg.delete()
  131. elif check(['timer','stopwatch']) and message.author not in variables.stopwatchlist:
  132. variables.stopwatchlist.append(message.author)
  133. start = time.time()
  134. await message.channel.send('Timer Started! Use &{} to end the timer'.format(callword))
  135. def check(m):
  136. return m.content == '&{}'.format(callword) and m.channel == message.channel
  137. await client.wait_for('message', check=check)
  138. stop = time.time()
  139. diff = stop - start
  140. rawtime = datetime.datetime.utcfromtimestamp(diff)
  141. formatted = rawtime.strftime('Time: %H:%M:%S')
  142. await message.channel.send(formatted)
  143. variables.stopwatchlist.remove(message.author)
  144. elif check(['replace']) and staff():
  145. arglist = args.split(' ',3)
  146. skey = arglist[0]
  147. rkey = arglist[1]
  148. string = arglist[2]
  149. string2 = string.replace(skey,rkey)
  150. await message.channel.send(string2)
  151. elif check(['scramble']) and staff():
  152. phrase = args.strip(' ').lower()
  153. letterlist = []
  154. for x in phrase:
  155. letterlist.append(x)
  156. newll = random.sample(letterlist,len(letterlist))
  157. msg = ''.join(newll)
  158. await message.channel.send(msg)
  159. elif check(['calc','calculator','calculate','math','maths']) and staff():
  160. try:
  161. import calc
  162. msg = calc.calc(command[5:])
  163. await message.channel.send(args + ' = ' + msg)
  164. except:
  165. await message.channel.send('Calculator is currently down')
  166. print('calc down' + str(datetime.datetime.now()))
  167. elif check(['nick','botnick','botname']) and staff():
  168. newnick = command[4:].strip()
  169. await message.guild.me.edit(nick=newnick)
  170. elif check(['lower']) and staff():
  171. await message.channel.send(args.lower())
  172. elif check(['addmember']) and staff():
  173. person = 0
  174. for x in message.guild.members:
  175. if x.name.startswith(args):
  176. person = x
  177. break
  178. if person == 0:
  179. return
  180. if message.channel.overwrites_for(person).read_messages != True and person != None:
  181. overwrite = discord.PermissionOverwrite()
  182. overwrite.read_messages = True
  183. await message.channel.set_permissions(person,overwrite=overwrite)
  184. await message.delete()
  185. elif check(['addrole']) and staff():
  186. for x in message.guild.roles:
  187. if x.name.startswith(args):
  188. person = x
  189. break
  190. if message.channel.overwrites_for(person).read_messages != True and person != None:
  191. overwrite = discord.PermissionOverwrite()
  192. overwrite.read_messages = True
  193. await message.channel.set_permissions(person,overwrite=overwrite)
  194. await message.delete()
  195. elif check(['removemember']) and staff():
  196. for x in message.guild.members:
  197. if x.name.startswith(args):
  198. person = x
  199. break
  200. if message.channel.overwrites_for(person).read_messages == True and person != None:
  201. await message.channel.set_permissions(person,overwrite=None)
  202. await message.delete()
  203. elif check(['removerole']) and staff():
  204. for x in message.guild.roles:
  205. if x.name.startswith(args):
  206. person = x
  207. break
  208. if message.channel.overwrites_for(person).read_messages == True and person != None:
  209. await message.channel.set_permissions(person,overwrite=None)
  210. await message.delete()
  211. elif check(['role']) and staff():
  212. arglist = args.split(' ',2)
  213. for x in arglist:
  214. arglist[arglist.index(x)] = x.strip()
  215. if arglist[0].startswith('<!@'):
  216. person = message.guild.get_member(int(arglist[0][4:22]))
  217. else:
  218. person = 0
  219. for x in message.guild.roles:
  220. if x.name.lower().startswith(arglist[1].lower()) and arglist[0].lower().strip() == 'in':
  221. person = x
  222. break
  223. if person == 0:
  224. for x in message.guild.members:
  225. if x.name.lower().startswith(arglist[0].lower()):
  226. person = x
  227. break
  228. if person == 0:
  229. await message.channel.send('Could not find {}'.format(arglist[0]))
  230. return
  231. if person in message.guild.roles:
  232. if len(arglist) <= 2:
  233. return
  234. rolestrlist = args.split(' ',2)[2].split(',')
  235. if person in message.guild.members:
  236. if len(arglist) <= 1:
  237. return
  238. rolestrlist = args.split(' ',1)[1].split(',')
  239. for x in range(0,len(rolestrlist)):
  240. rolestrlist[x] = rolestrlist[x].strip()
  241. rolelist = []
  242. for x in rolestrlist:
  243. if x[0] in ['+','-']:
  244. checkvar = 0
  245. for y in message.guild.roles:
  246. if y.name.lower().startswith(x[1:].lower().strip()):
  247. checkvar = 1
  248. rolelist.append(y)
  249. break
  250. if checkvar == 0:
  251. await message.channel.send('Could not find {}'.format(x[1:]))
  252. return
  253. break
  254. else:
  255. checkvar = 0
  256. for y in message.guild.roles:
  257. if y.name.lower().startswith(x.strip().lower()):
  258. checkvar = 1
  259. rolelist.append(y)
  260. break
  261. if checkvar == 0:
  262. await message.channel.send('Could not find {}'.format(x))
  263. return
  264. break
  265. for x in range(0,len(rolestrlist)):
  266. rolestr = rolestrlist[x].strip()
  267. if rolestr[0] == '+':
  268. if person in message.guild.roles:
  269. for y in person.members:
  270. await y.add_roles(rolelist[x])
  271. else:
  272. await person.add_roles(rolelist[x])
  273. elif rolestr[0] == '-':
  274. if person in message.guild.roles:
  275. for y in person.members:
  276. await y.remove_roles(rolelist[x])
  277. else:
  278. await person.remove_roles(rolelist[x])
  279. else:
  280. if person in message.guild.roles:
  281. for y in person.members:
  282. if rolelist[x] in y.roles:
  283. await y.remove_roles(rolelist[x])
  284. else:
  285. await y.add_roles(rolelist[x])
  286. else:
  287. if rolelist[x] in person.roles:
  288. await person.remove_roles(rolelist[x])
  289. else:
  290. await person.add_roles(rolelist[x])
  291. elif check(['lockdown']) and staff():
  292. if message.channel.overwrites_for(message.guild.default_role).send_messages != False:
  293. overwrite = message.channel.overwrites_for(message.guild.default_role)
  294. overwrite.send_messages = False
  295. else:
  296. overwrite = message.channel.overwrites_for(message.guild.default_role)
  297. overwrite.send_messages = None
  298. await message.channel.set_permissions(message.guild.default_role,overwrite=overwrite)
  299. elif check(['wiki']):
  300. result = wikipedia.search(args)[0]
  301. page = wikipedia.page(result)
  302. embed = discord.Embed(title=page.title,url=page.url,description=wikipedia.summary(page,sentences=3))
  303. embed.set_thumbnail(url=page.images[0])
  304. embed.set_footer(text="Provided by Wikipedia, the free internet encyclopedia")
  305. await message.channel.send(embed=embed)
  306. elif check(['go']) and message.channel.id in traveldicts.safari_ids.values() and func.capitalize(args) in traveldicts.safari_ids.keys():
  307. for x in traveldicts.safari_ids.keys():
  308. if traveldicts.safari_ids[x] == message.channel.id:
  309. location = x
  310. break
  311. def check(m):
  312. return m.author == message.author
  313. await message.channel.purge(check=check)
  314. want = func.capitalize(args)
  315. wantid = traveldicts.safari_ids[want]
  316. if want in traveldicts.safari_moves[location]:
  317. wantchan = client.get_channel(wantid)
  318. overwrite = discord.PermissionOverwrite(read_messages=True)
  319. await wantchan.set_permissions(message.author,overwrite=overwrite)
  320. await message.channel.set_permissions(message.author,overwrite=None)
  321. elif check(['adventure']):
  322. for x,y in traveldicts.safari_ids.items():
  323. if y == message.channel.id:
  324. location = x
  325. break
  326. if location in traveldicts.safari_adventures.keys():
  327. locationid = traveldicts.safari_adventures[location]
  328. await message.channel.set_permissions(message.author,overwrite=None)
  329. await client.get_channel(locationid).set_permissions(message.author,overwrite=discord.PermissionOverwrite(read_messages=True))
  330. def check(m):
  331. return m.author == message.author
  332. await message.channel.purge(check=check)
  333. elif check(['resetsaf']) and staff():
  334. for x,y in traveldicts.safari_ids.items():
  335. async for z in client.get_channel(y).history():
  336. await z.delete()
  337. loclist = traveldicts.safari_moves[x]
  338. loctextlist = []
  339. await client.get_channel(y).send(traveldicts.safari_pictures[x])
  340. for a in loclist:
  341. loctextlist.append('To go to **{0}**, use `&go {0}`.'.format(a))
  342. if x in traveldicts.safari_adventures.keys():
  343. loctextlist.append('There is an adventure here! Use `&adventure` to start it!')
  344. loctext = '\n'.join(loctextlist)
  345. await client.get_channel(y).send(loctext)
  346. overdict = client.get_channel(y).overwrites
  347. for b in overdict.keys():
  348. if b in message.guild.members:
  349. await client.get_channel(y).set_permissions(b,overwrite=None)
  350. await client.get_channel(y).set_permissions(message.guild.default_role,overwrite=discord.PermissionOverwrite(read_messages=False))
  351. elif check(safaridicts.commands.keys()):
  352. if safaridicts.commands[callword][0] == message.channel.id:
  353. def check(m):
  354. return m.author == message.author
  355. await message.channel.purge(check=check)
  356. await message.channel.set_permissions(message.author,overwrite=None)
  357. await client.get_channel(safaridicts.commands[callword][1]).set_permissions(message.author,read_messages=True)
  358. elif check(['kick']) and staff():
  359. for x in message.guild.members:
  360. if x.name.lower().startswith(args.lower()):
  361. await message.channel.send('Please confirm by using &confirmkick. If you wish to not kick, use &declinekick')
  362. def check(m):
  363. return m.content in ['&declinekick','&confirmkick'] and m.author == message.author and m.channel == message.channel
  364. confdecmsg = await client.wait_for('message',check=check,timeout=600.0)
  365. if confdecmsg.content == '&confirmkick':
  366. await x.kick()
  367. await message.channel.send('{0.name} was kicked'.format(x))
  368. break
  369. else:
  370. await message.channel.send('Nobody kicked')
  371. break
  372. elif check(['ban']) and staff():
  373. for x in message.guild.members:
  374. if x.name.lower().startswith(args.lower()):
  375. await message.channel.send('Please confirm by using &confirmban. If you wish to not kick, use &declinenban')
  376. def check(m):
  377. return m.content in ['&declineban','&confirmban'] and m.author == message.author and m.channel == message.channel
  378. confdecmsg = await client.wait_for('message',check=check,timeout=600.0)
  379. if confdecmsg.content == '&confirmban':
  380. await x.ban()
  381. await message.channel.send('{0.name} was banned'.format(x))
  382. break
  383. else:
  384. await message.channel.send('Nobody Banned')
  385. break
  386. elif check(['addperms']) and staff() and len(args.split(',')) > 1:
  387. arglist = args.split(',')
  388. name = arglist[0].strip()
  389. target = 0
  390. for x in message.guild.roles:
  391. if x.name.lower().startswith(name.lower()):
  392. target = x
  393. break
  394. if target == 0:
  395. for x in message.guild.members:
  396. if x.name.lower().startswith(name.lower()):
  397. target = x
  398. break
  399. if target == 0:
  400. await message.channel.send('Could not find {}'.format(name))
  401. try:
  402. overwrite = message.channel.overwrites_for(target)
  403. except:
  404. overwrite = discord.PermissionOverwrite()
  405. arglist.pop(0)
  406. for x in arglist:
  407. if x.strip().lower().split('=')[0] in ['read_messages','send_messages','manage_messages','add_reactions','embed_links','attach_files','read_message_history'] and x.strip().lower().split('=')[1] in ['true','false','none']:
  408. options = {'true':True,'false':False,'none':None}
  409. perm = x.strip().lower().split('=')[0].lower()
  410. value = options[x.lower().strip().split('=')[1].lower()]
  411. if perm == 'read_messages':
  412. overwrite.read_messages = value
  413. elif perm == 'send_messages':
  414. overwrite.send_messages = value
  415. elif perm == 'manage_messages':
  416. overwrite.manage_messages = alue
  417. elif perm == 'add_reactions':
  418. overwrite.add_reactions = value
  419. elif perm == 'read_message_history':
  420. overwrite.read_message_history = value
  421. elif perm == 'embed_links':
  422. overwrite.embed_links = value
  423. elif perm == 'attach_files':
  424. overwrite.attach_files = value
  425. await message.channel.set_permissions(target,overwrite=overwrite)
  426. await message.delete()
  427. elif check(['nes']) and staff():
  428. await message.channel.set_permissions(message.guild.default_role,read_messages=False)
  429. elif check(['randomstring']) and staff():
  430. charlist = []
  431. for x in '1234567890qwertyuiopasdfghjklzxcvbnm':
  432. charlist.append(x)
  433. strlist = []
  434. for x in range(0,6):
  435. strlist.append(random.choice(charlist))
  436. await message.channel.send(''.join(strlist))
  437. elif check(['addcc']):
  438. with open('saved.txt','a') as f:
  439. f.write('\ncc ' + args)
  440. elif check(['delcc']):
  441. with open('saved.txt','r') as f:
  442. lines = f.read().split('\n')
  443. for x in lines:
  444. if x.startswith('cc ' + args):
  445. lines.remove(x)
  446. break
  447. newsaved = '\n'.join(lines)
  448. with open('saved.txt','w') as f:
  449. f.write(newsaved)
  450. if message.content.lower() in arnames:
  451. await message.channel.send(artexts[arnames.index(message.content.lower())])
  452. @client.event
  453. async def on_message_edit(before,after):
  454. embed = discord.Embed(title='Edited Message',description='{0.mention} edited a message'.format(after.author))
  455. embed.add_field(name='Before',value=str(before.content),inline=False)
  456. embed.add_field(name='After',value=str(after.content),inline=False)
  457. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  458. @client.event
  459. async def on_message_delete(message):
  460. embed = discord.Embed(title='Deleted Message',description=message.author.mention+' Deleted a message')
  461. embed.add_field(name='Content:',value=message.content,inline=False)
  462. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  463. @client.event
  464. async def on_member_update(before,after):
  465. if before.nick != after.nick:
  466. embed = discord.Embed(title='Nickname Change',description=before.mention+' changed their nickname')
  467. embed.add_field(name='Before:',value=before.nick)
  468. embed.add_field(name='After:',value=after.nick)
  469. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  470. elif before.roles != after.roles:
  471. check = 0
  472. for x in before.roles:
  473. if x not in after.roles:
  474. role = x
  475. check = 1
  476. break
  477. if check == 1:
  478. embed = discord.Embed(title='Removed Role',description=before.mention + ' had the `{}` role taken'.format(role.name))
  479. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  480. else:
  481. for x in after.roles:
  482. if x not in before.roles:
  483. role = x
  484. check = 1
  485. break
  486. if check == 1:
  487. embed = discord.Embed(title='Added Role',description=before.mention + ' had the `{}` role given'.format(role.name))
  488. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  489. @client.event
  490. async def on_member_join(member):
  491. await member.guild.system_channel.send(member.mention + ', welcome to the server!')
  492. msg = await client.get_channel(575659588767186964).send('{}, please say "agree" to verify yourself.'.format(member.mention))
  493. def check(m):
  494. return m.author == member and m.channel == client.get_channel(575659588767186964)
  495. message = await client.wait_for('message',check=check)
  496. await message.author.add_roles(client.get_role(573994619835121743))
  497. await msg.delete()
  498. await message.delete()
  499. @client.event
  500. async def on_member_remove(member):
  501. await member.guild.system_channel.send('**{}** has left the server :frowning:'.format(member))
  502. @client.event
  503. async def on_guild_channel_delete(channel):
  504. embed = discord.Embed(title='Channel Deleted',description=channel.name + ' was deleted')
  505. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  506. @client.event
  507. async def on_guild_channel_create(channel):
  508. embed = discord.Embed(title='Channel Created',description=channel.mention + ' was created')
  509. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  510. @client.event
  511. async def on_guild_channel_update(before,after):
  512. if before.name != after.name:
  513. embed = discord.Embed(title='Channel Name Changed',description=after.mention+' had the name changed')
  514. embed.add_field(name='Before',value=before.name,inline=False)
  515. embed.add_field(name='After',value=after.name,inline=False)
  516. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  517. @client.event
  518. async def on_guild_role_create(role):
  519. embed = discord.Embed(title='Role Created',description=role.mention + ' was created')
  520. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  521. @client.event
  522. async def on_guild_role_delete(role):
  523. embed = discord.Embed(title='Role Deleted',description=role.name + ' was deleted')
  524. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  525. @client.event
  526. async def on_guild_role_update(before,after):
  527. if before.name != after.name:
  528. embed = discord.Embed(title='Role Name Changed',description=after.mention+' had the name changed')
  529. embed.add_field(name='Before',value=before.name,inline=False)
  530. embed.add_field(name='After',value=after.name,inline=False)
  531. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  532. @client.event
  533. async def on_member_ban(guild,user):
  534. await guild.system_channel.send('**{}** was kicked out'.format(user))
  535. embed = discord.Embed(title='User Banned',description=user + ' was banned')
  536. embed.set_image(url=user.avatar_url)
  537. await client.get_channel(573998237086777364).send(content=None,embed=embed)
  538. client.run(token)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement