def auth(self, facebook_id, facebook_token): data = {"facebook_id": str(facebook_id), "facebook_token": facebook_token} result = self._session.post( self._url('/auth'), json=data, proxies=self._proxies).json() if 'token' not in result: raise errors.RequestError("Couldn't authenticate") self._token = result['token'] self._session.headers.update({"X-Auth-Token": str(result['token'])}) return result
def auth(self, facebook_id, facebook_token): data = {"token": facebook_token} result = requests.post(self._full_url('/v2/auth/login/facebook'), json=data, proxies=self._proxies, headers=constants.HEADERS) if result.status_code == 200: json_result = result.json() if 'api_token' not in json_result['data']: raise errors.RequestError("Couldn't authenticate") else: self._token = json_result['data']['api_token'] self._headers["X-Auth-Token"] = str(self._token) self._session.headers.update(self._headers) return json_result['data'] else: err = "Couldn't authenticate request status code: " + str( result.status_code) raise errors.RequestError(err)
def _request(self, method, url, data={}): if not hasattr(self, '_token'): raise errors.InitializationError result = self._session.request(method, self._url( url), json=data, proxies=self._proxies) while result.status_code == 429: blocker = threading.Event() blocker.wait(0.01) result = self._session.request(method, self._url( url), data=data, proxies=self._proxies) if result.status_code < 200 or result.status_code >= 300: raise errors.RequestError(result.status_code) if result.status_code == 201 or result.status_code == 204: return {} return result.json()
def _request(self, method, url, data=None, params=None): if not hasattr(self, '_token'): raise errors.InitializationError result = self._session.request( method, self._full_url(url), json=data, params=params, proxies=self._proxies, ) if result.status_code == 429: raise errors.RateLimitError # while result.status_code == 429: # blocker = threading.Event() # blocker.wait(0.01) # result = self._session.request(method, self._full_url( # url), data=data, params=params, proxies=self._proxies) if result.status_code < 200 or result.status_code >= 300: raise errors.RequestError(result.status_code) if result.status_code == 201 or result.status_code == 204: return {} return result.json()
def superlike(self, user): result = self._post("/like/{}/super".format(user)) if 'limit_exceeded' in result and result['limit_exceeded']: raise errors.RequestError("Superlike limit exceeded") return result
def like(self, user): ans = self._get("/like/{}".format(user)) if 'rate_limited_until' in ans: raise errors.RequestError('Like limit exceeded') return ans