Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import string
- import random
- import mechanize
- import requests
- import imaplib
- import email
- import re
- import time
- from faker import Factory
- NUM_ACCOUNTS = 10
- def processMailbox(M):
- M.select()
- typ, data = M.search(None, 'UnSeen', 'FROM', 'noreply@pokemon.com')
- mails = data[0].split()
- print "There are %i accounts to verify!" % len(mails)
- for num in mails:
- typ, data = M.fetch(num, '(RFC822)')
- msg = email.message_from_string(data[0][1])
- if msg.is_multipart():
- for payload in msg.get_payload():
- manipulatePayload(payload)
- break
- else:
- manipulatePayload(msg)
- def manipulatePayload(payload):
- m=re.search('https://club\.pokemon\.com/us/.*', str(payload.get_payload(None,True)))
- newURL = m.group(0).rstrip(".")
- print("Sending confirmation request to " + newURL)
- tried = 0
- br = mechanize.Browser()
- while tried <= 3:
- try:
- br.open(newURL)
- print 'Confirmation Successful!'
- break
- except:
- tried += 1
- def generateStr(numChars):
- return ''.join(random.choice(string.ascii_lowercase + string.digits) for x in range(numChars))
- def verifyAccounts():
- M = imaplib.IMAP4_SSL('imap.gmail.com')
- try:
- M.login('pokemongomapsteam@gmail.com', "PokemonPassword")
- except imaplib.IMAP4.error:
- print("LOGIN FAILED")
- rv, mailboxes = M.list()
- if rv == 'OK' :
- print("Selecting Mailbox Inbox")
- processMailbox(M)
- M.close()
- M.logout()
- def createAccount(fake):
- myPassword = generateStr(10)
- myAccount = 'PokeMapper' + generateStr(5)
- print 'Creating Account for ' + myAccount + ' with password ' + myPassword
- br = mechanize.Browser()
- tried = 0
- while tried < 5:
- try:
- br.open("https://club.pokemon.com/us/pokemon-trainer-club/parents/sign-up")
- print 'Signup Opened'
- break
- except:
- tried += 1
- form = br.select_form("verify-age")
- # These are the form controls
- #
- # csrfmiddlwaretoken -> already set
- # dob -> 1998-03-12
- # country -> ['US']
- dob = br.form.find_control("dob")
- country = br.form.find_control("country")
- dob.value = "1992-03-23"
- tried = 0
- while tried < 5:
- try:
- print 'Attempting to submit DOB'
- br.submit()
- print 'DOB submitted'
- break;
- except:
- tried += 1
- form = br.select_form("create-account")
- two_word_name = "false"
- while(two_word_name == "false"):
- fake_name = fake.name()
- try:
- first_name, last_name = fake_name.split()
- two_word_name = "true"
- except:
- two_word_name = "false"
- print first_name, last_name
- myEmail = "pokemongomapsteam+" + generateStr(5) + "@gmail.com"
- username = br.form.find_control("username")
- password = br.form.find_control("password")
- confirm_password = br.form.find_control("confirm_password")
- email = br.form.find_control("email")
- confirm_email = br.form.find_control("confirm_email")
- terms = br.form.find_control("terms")
- username.value = myAccount
- password.value = myPassword
- confirm_password.value = myPassword
- email.value = myEmail
- confirm_email.value = myEmail
- terms.items[0].selected = True
- while tried < 5:
- print 'Attempting to create account with email ' + myEmail
- try:
- br.submit()
- br.close()
- print 'Successfully created account with email ' + myEmail
- with open("accounts.csv", "a") as account_file:
- account_file.write("%s,%s,%s\n" % (myAccount, myPassword, myEmail))
- break
- except:
- tried += 1
- for i in range(NUM_ACCOUNTS):
- createAccount(Factory.create())
- verifyAccounts()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement