Advertisement
Guest User

Untitled

a guest
Nov 5th, 2016
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. import sys
  2. import re
  3. import requests
  4. import pickle
  5. from getpass import getpass
  6.  
  7. def getuserstatus(session=''):
  8. status = 'Guest'
  9. user1 = 'Guest'
  10. if session == '':
  11. session = requests.session()
  12. with open('cookies') as f:
  13. cookies = requests.utils.cookiejar_from_dict(pickle.load(f))
  14. session = requests.session()
  15. session.cookies = cookies
  16. del session.cookies['c_visitor']
  17. headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0',
  18. 'Connection': 'keep-alive'}
  19. site = session.get('https://www.crunchyroll.com/acct/membership', headers=headers, verify=True).text
  20. #open('tempfile','w').write(site.encode('UTF-8'))
  21. if re.search(re.escape(' ga(\'set\', \'dimension5\', \'registered\');'), site):
  22. status = 'Free Member'
  23. elif re.search(re.escape(' ga(\'set\', \'dimension6\', \'premium\');'), site):
  24. if re.search(re.escape(' ga(\'set\', \'dimension6\', \'premiumplus\');'), site):
  25. status = 'Premium+ Member'
  26. else:
  27. status = 'Premium Member'
  28. if status != 'Guest':
  29. user1 = re.findall('<a href=\"/user/(.+)\" ', site).pop()
  30. return [status,user1]
  31.  
  32. def login(username, password):
  33. headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0',
  34. 'Connection': 'keep-alive'}
  35. session = requests.session()
  36. res_get = session.get('https://www.crunchyroll.com/login', headers=headers)
  37.  
  38. s = re.search('name="login_form\\[_token\\]" value="([^"]*)"', res_get.text)
  39. if s is None:
  40. print 'CSRF token not found'
  41. sys.exit()
  42. token = s.group(1)
  43.  
  44. payload = {'login_form[redirect_url]': '/',
  45. 'login_form[name]': username,
  46. 'login_form[password]': password,
  47. 'login_form[_token]': token}
  48.  
  49. res_post = session.post('https://www.crunchyroll.com/login', data=payload, headers=headers, allow_redirects = False)
  50. if res_post.status_code != 302:
  51. print 'Login failed'
  52. sys.exit()
  53.  
  54. for c in session.cookies:
  55. c.expires = 9999999999 # Saturday, November 20th 2286, 17:46:39 (GMT)
  56.  
  57. del session.cookies['c_visitor']
  58.  
  59. userstatus = getuserstatus(session)
  60. if username != '' and userstatus[1] == 'Guest':
  61. print 'Login failed.'
  62. sys.exit()
  63. else:
  64. print 'Login as '+userstatus[0]+' successfully.'
  65. pickle.dump(requests.utils.dict_from_cookiejar(session.cookies), open('cookies', 'w'))
  66. with open('cookies', 'w') as f:
  67. pickle.dump(requests.utils.dict_from_cookiejar(session.cookies), f)
  68.  
  69. if __name__ == '__main__':
  70. try:
  71. if sys.argv[1][0] == 'y':
  72. username = raw_input(u'Username: ')
  73. password = getpass('Password(don\'t worry the password are typing but hidden:')
  74. except IndexError:
  75. username = ''
  76. password = ''
  77. login(username, password)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement