def __invoke_collection_api(self, method): uri = "{0}/api/v3.0/site/{1}/collection/{2}/".format(Domain.quill(self), self.site.data.id, method) data = self.__get_payload() headers = {"Content-Type": "application/json", "Accepts": "application/json"} response = requests.post(uri, params={"sync": 1}, data=json.dumps(data), headers=headers) return response
def sync_user(self, user_id): url = '{0}/api/v3_0/user/{1}/refresh'.format(Domain.quill(self), user_id) data = {'lftoken': self.build_livefyre_token()} headers = {'Content-type': 'application/json'} response = requests.post(url=url, data=data, headers=headers) if response.status_code >= 400: raise ApiException(response.status_code) return self
def set_user_sync_url(self, url_template): assert '{id}' in url_template, 'url_template should have {id}.' url = Domain.quill(self)+'/' data = {'actor_token': self.build_livefyre_token(), 'pull_profile_url' : url_template} headers = {'Content-type': 'application/json'} response = requests.post(url=url, data=data, headers=headers) if response.status_code >= 400: raise ApiException(response.status_code)
def get_timeline_stream(cursor, is_next): url = PersonalizedStream.STREAM_BASE_URL.format(Domain.bootstrap(cursor.core)) + PersonalizedStream.TIMELINE_PATH headers = get_lf_token_header(cursor.core) params = {'resource': cursor.data.resource, 'limit': cursor.data.limit} if is_next: params['since'] = cursor.data.cursor_time else: params['until'] = cursor.data.cursor_time response = requests.get(url, params = params, headers = headers) return evaluate_response(response)
def get_collection_content(self): if pyver >= 3.0: article_bytes = str(self.data.article_id).encode("utf-8") else: article_bytes = bytes(str(self.data.article_id)) encoded_article_id = base64.b64encode(article_bytes).decode("utf-8") url = "{0}/bs3/{1}/{2}/{3}/init".format( Domain.bootstrap(self), self.site.network.data.name, self.site.data.id, encoded_article_id ) response = requests.get(url=url) if response.status_code <= 400: return response.json() raise ApiException(response.status_code)
def test_bootstrap(self): bootstrap_domain_ssl = "https://{0}.bootstrap.fyre.co".format(self.network.network_name) domain = Domain.bootstrap(self.network) self.assertEqual(bootstrap_domain_ssl, domain) domain = Domain.bootstrap(self.site) self.assertEqual(bootstrap_domain_ssl, domain) domain = Domain.bootstrap(self.collection) self.assertEqual(bootstrap_domain_ssl, domain) bootstrap_domain = "http://bootstrap.{0}".format(self.network.data.name) self.network.ssl = False domain = Domain.bootstrap(self.network) self.assertEqual(bootstrap_domain, domain) domain = Domain.bootstrap(self.site) self.assertEqual(bootstrap_domain, domain) domain = Domain.bootstrap(self.collection) self.assertEqual(bootstrap_domain, domain)
def test_quill(self): quill_domain_ssl = "https://{0}.quill.fyre.co".format(self.network.network_name) domain = Domain.quill(self.network) self.assertEqual(quill_domain_ssl, domain) domain = Domain.quill(self.site) self.assertEqual(quill_domain_ssl, domain) domain = Domain.quill(self.collection) self.assertEqual(quill_domain_ssl, domain) quill_domain = "http://quill.{0}".format(self.network.data.name) self.network.ssl = False domain = Domain.quill(self.network) self.assertEqual(quill_domain, domain) domain = Domain.quill(self.site) self.assertEqual(quill_domain, domain) domain = Domain.quill(self.collection) self.assertEqual(quill_domain, domain)
def get_url(core): return PersonalizedStream.BASE_URL.format(Domain.quill(core))