コード例 #1
0
    def get_feed_result_document(self, feed_id, **kwargs) -> str:
        """
        Returns the decrypted, unpacked FeedResponse

         **Usage Plan:**

        ======================================  ==============
        Rate (requests per second)               Burst
        ======================================  ==============
        0.0222                                  10
        ======================================  ==============


        Args:
            feed_id: str
            **kwargs:

        Returns:
            str: The feed results' contents
        """
        response = GetFeedDocumentResponse(
            **self._request(fill_query_params(kwargs.pop('path'), feed_id),
                            params=kwargs,
                            add_marketplace=False).json())
        url = response.payload.get('url')
        decrypted = decrypt_aes(
            requests.get(url).content,
            response.payload.get('encryptionDetails').get('key'),
            response.payload.get('encryptionDetails').get(
                'initializationVector'))

        if 'compressionAlgorithm' in response.payload:
            return zlib.decompress(bytearray(decrypted),
                                   15 + 32).decode('iso-8859-1')
        return decrypted.decode('iso-8859-1')
コード例 #2
0
 def decrypt_report_document(url, initialization_vector, key, encryption_standard, payload):
     """
     Decrypts and unpacks a report document, currently AES encryption is implemented
     """
     if encryption_standard == 'AES':
         decrypted = decrypt_aes(requests.get(url).content, key, initialization_vector)
         if 'compressionAlgorithm' in payload:
             return zlib.decompress(bytearray(decrypted), 15 + 32).decode('iso-8859-1')
         return decrypted.decode('iso-8859-1')
     raise SellingApiException([{
         'message': 'Only AES decryption is implemented. Contribute: https://github.com/saleweaver/python-sp-api'
     }])
コード例 #3
0
    def get_feed_result_document(self, feed_id, **kwargs):
        response = GetFeedDocumentResponse(
            **self._request(fill_query_params(kwargs.pop('path'), feed_id),
                            params=kwargs,
                            add_marketplace=False).json())
        url = response.payload.get('url')
        decrypted = decrypt_aes(
            requests.get(url).content,
            response.payload.get('encryptionDetails').get('key'),
            response.payload.get('encryptionDetails').get(
                'initializationVector'))

        if 'compressionAlgorithm' in response.payload:
            return zlib.decompress(bytearray(decrypted),
                                   15 + 32).decode('iso-8859-1')
        return decrypted.decode('iso-8859-1')
コード例 #4
0
 def decrypt_report_document(url, initialization_vector, key,
                             encryption_standard):
     """
     Decrypts a report document, currently AES encryption is implemented
     :param url:
     :param initialization_vector:
     :param key:
     :param encryption_standard:
     :return:
     """
     if encryption_standard == 'AES':
         return decrypt_aes(
             requests.get(url).content, key,
             initialization_vector).decode('iso-8859-1')
     raise SellingApiException([{
         'message':
         'Only AES decryption is implemented. Contribute: https://github.com/saleweaver/python-sp-api'
     }])