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))