Advertisement
Guest User

Untitled

a guest
Nov 7th, 2016
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.13 KB | None | 0 0
  1. import discord
  2. import asyncio
  3.  
  4. emailUser = '<insert your email username>' # gmail username
  5. emailPass = '<insert your gmail password>' # gmail password
  6. roleName = '<insert your role name>' # name of the role you'd like to award to verifiers
  7. botToken = '<insert your token>' # token given to app
  8.  
  9. client = discord.Client()
  10.  
  11.  
  12. def send_email(user, pwd, recipient, subject, body):
  13. import smtplib
  14.  
  15. gmail_user = user
  16. gmail_pwd = pwd
  17. FROM = user
  18. TO = recipient if type(recipient) is list else [recipient]
  19. SUBJECT = subject
  20. TEXT = body
  21.  
  22. # Prepare actual message
  23. message = """From: %s\nTo: %s\nSubject: %s\n\n%s
  24. """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
  25. try:
  26. server = smtplib.SMTP("smtp.gmail.com", 587)
  27. server.ehlo()
  28. server.starttls()
  29. server.login(gmail_user, gmail_pwd)
  30. server.sendmail(FROM, TO, message)
  31. server.close()
  32. print('successfully sent the mail')
  33. except:
  34. print('failed to send mail')
  35.  
  36.  
  37. @client.event
  38. async def on_ready():
  39. print('Logged in as')
  40. print(client.user.name)
  41. print(client.user.id)
  42. print('------')
  43.  
  44. @client.event
  45. async def on_message(message):
  46. if message.content.startswith('!verifyme') and message.server is not None:
  47. role = None
  48. for i in message.server.roles:
  49. if i.name == roleName:
  50. role = i
  51. print(role)
  52. msg = 'What is your RPI email?'
  53. await client.send_message(message.author, msg)
  54. res = await client.wait_for_message(timeout=120.0, author=message.author)
  55. email = res.content
  56. if role is not None:
  57. splitEmail = email.split('@')
  58. if len(splitEmail) == 2 and splitEmail[1] == 'rpi.edu':
  59. msg = 'Sure :3, now verifying ' + email
  60. await client.send_message(message.author, msg)
  61. import os
  62. import binascii
  63. verifToken = binascii.b2a_hex(os.urandom(15)).decode("utf-8")
  64. title = 'RPI Discord Verification Email'
  65. msg = 'Send this token to me on discord: ' + verifToken
  66. send_email(emailUser, emailPass, email, title, msg)
  67. msg = 'Email sent! Please send the code back :)'
  68. await client.send_message(message.author, msg)
  69. res = await client.wait_for_message(timeout=120.0, author=message.author)
  70. if res is None:
  71. await client.send_message(message.author, 'Oops, looks like you timed out. Try verifying again later!')
  72. elif res.content == verifToken:
  73. await client.add_roles(message.author,role)
  74. await client.send_message(message.author, 'Woah, that was correct! Congrats on being verified')
  75. else:
  76. await client.send_message(message.author, 'Oops, looks like you were wrong. Try again later!')
  77. else:
  78. await client.send_message(message.author, 'Oops, please use an /rpi/ email!')
  79. else:
  80. await client.send_message(message.author, 'To verify, please send: !verifyme <rpi_email_address>')
  81.  
  82. client.run(botToken)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement