Skip to content

Instantly share code, notes, and snippets.

@abhshkdz
Last active September 8, 2015 22:41
Show Gist options
  • Save abhshkdz/5de377398e6a775804f8 to your computer and use it in GitHub Desktop.
Save abhshkdz/5de377398e6a775804f8 to your computer and use it in GitHub Desktop.
OnePlus Two invite queue script
# Used to work before OnePlus added Captcha
import requests
import string
import random
import time
import json
import re
mailinator_api_token = ''
# appears in the share url -- https://oneplus.net/invites?kolid=02URMD
oneplus_referral_code = ''
# original email id used for OnePlus invite
user_email = ''
while True:
try:
print '-- Sending OnePlus confirmation email'
email = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(16))
cb = int(round(time.time() * 1000))
url = 'https://invites.oneplus.net/index.php?r=share/signup&success_jsonpCallback=success_jsonpCallback&email='+email+'%40mailinator.com&koid='+oneplus_referral_code+'&_='+str(cb)
res = requests.get(url)
time.sleep(5)
print '-- Fetching Mailinator inbox'
mailinator_inbox = 'https://api.mailinator.com/api/inbox?to='+email+'&token='+mailinator_api_token
res = requests.get(mailinator_inbox)
data = json.loads(res.text)
if not data['messages']:
continue
else:
email_id = data['messages'][0]['id']
print email_id
print '-- Fetching Mailinator email'
mailinator_email = 'https://api.mailinator.com/api/email?id='+email_id+'&token='+mailinator_api_token
res = requests.get(mailinator_email)
data = json.loads(res.text)
content = data['data']['parts'][0]['body']
confirmation_url = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', content)[0].rstrip('.')
print confirmation_url
res = requests.get(confirmation_url)
print '-- Fetching current rank'
url = 'https://invites.oneplus.net/index.php?r=share/signup&success_jsonpCallback=success_jsonpCallback&email='+user_email+'&_='+str(cb)
res = requests.get(url)
data = json.loads(res.text[22:-1])
print data['data']['rank']
except (KeyError, ValueError):
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment