Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. import requests
  2. import hashlib
  3. import random
  4. import time
  5. import json
  6. import urllib
  7.  
  8. session = requests.Session()
  9.  
  10. class MusicallyFame2():
  11.  
  12. #Function to get siugnature
  13. def get_signature(self, signing_server, signature_data):
  14. payload = {"data": json.dumps(signature_data)}
  15. response = session.get(signing_server, data = payload)
  16. try:
  17. return json.loads(response.text)["signature"]
  18. except ValueError:
  19. return "signature not received"
  20.  
  21. #function to generate get request Id
  22. def get_unique_id(self):
  23. request_id = hashlib.md5(str(random.random())).hexdigest()
  24. request_id = request_id[:8]+"-"+request_id[8:12]+"-"+request_id[12:16]+"-"+request_id[16:20]+"-"+request_id[20:]
  25. return request_id
  26.  
  27. #function for time stamp
  28. def get_time_stamp(self):
  29. a = time.time()*1000
  30. return "%.0f"%a
  31.  
  32.  
  33. # def register_user():
  34. magic_obj = MusicallyFame2()
  35.  
  36. # getting request id
  37. request_id = magic_obj.get_unique_id()
  38. #getting time stamp
  39. timestamp = magic_obj.get_time_stamp()
  40. #common headers
  41. headers = {
  42. "os": "android 4.1.2",
  43. "X-Requested-With": "XMLHttpRequest",
  44. "User-Agent": "Musical.ly/2016020601 (Android; LAVA LAVA 4.1.2;rv:16)",
  45. "language": "en_US",
  46. "build": "2016020601",
  47. "Connection": "close",
  48. "network": "WiFi",
  49. "mobile": "LAVA Iris 501",
  50. "version": "4.7.5",
  51. # "X-Request-Sign2": request_signature,
  52. "X-Request-ID": request_id,
  53. "Host": "www.musical.ly",
  54. "Accept-Encoding": "gzip",
  55. }
  56. # setting headers to current session
  57. session.headers = headers
  58. signing_server = "http://45.55.203.163:8888/sign"
  59. #preparing signature data
  60. signature_data = {"app":{"-r":"Gvt1","os":"android 4.1.2","method":"POST","url":"https:\/\/www.musical.ly\/rest\/v2\/users\/register","X-Request-ID":request_id,"version":"4.7.5"},"ostype":"and","imei":"51a4454f","mac":"4C:3C:16:82:EE:F3","model":"SM-G730V","sdk":"19","serviceTime":timestamp}
  61. print signature_data
  62. #receiving signature data
  63. request_signature = magic_obj.get_signature(signing_server, signature_data)
  64. #update header
  65. session.headers["X-Request-Sign2"] = request_signature
  66. #prepare data for POST request
  67. handle = "test25krishna"
  68. email = handle+"@gmail.com"
  69. password = handle[::-1]
  70. user = '''{"handle":"%s","email":"%s","password":"%s"}'''%(handle,email,password)
  71. post_url = "http://www.musical.ly/rest/v2/users/register"
  72. BOUNDARY = "27c8b11a-9b7e-4849-a665-7f1a04edf2b7"
  73. data = (
  74. """
  75. --%(boundary)s
  76. Content-Disposition: form-data; name="user"
  77. Content-Type: application/json; charset=utf-8
  78. Content-Length: %(content_length)s
  79. \r\n%(user)s
  80. --%(boundary)s--
  81. """ % {
  82. "boundary" : BOUNDARY,
  83. "content_length" : len(user),
  84. "user" : user
  85. }).replace("\n", "\r\n") # HTTP uses DOS-style line endings.
  86.  
  87.  
  88. #update current headers
  89. session.headers["Content-Type"] = "multipart/mixed; boundary=\"%s\"" % BOUNDARY
  90. session.headers["MIME-Version"] = "1.0"
  91. session.headers["Host"] = "www.musical.ly"
  92.  
  93. #make a post request
  94.  
  95. response = session.post(post_url, data = data, headers=session.headers)
  96. print session.headers
  97. print data
  98. print response.content
  99. print response.status_code
  100.  
  101.  
  102. # register_user()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement