File size: 2,023 Bytes
3c7d0f6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

import os
import requests
from crewai.tools import BaseTool

class ShortenerTool(BaseTool):
    name: str = "URL Shortener Tool"
    description: str = "Generates a short version of a given URL using an external API."

    def _run(self, original_url: str) -> str:
        api_url = "https://sales-mgmt-cb-bff-apigw.prd.naturacloud.com/cb-bff-cms/cms/shortener"
        headers = {
            "accept": "*/*",
            "accept-language": "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7",
            "authorization": f"Bearer {os.getenv('NATURA_API_TOKEN')}", # Get token from env
            "content-type": "application/json",
            "origin": "https://minhaloja.natura.com",
            "referer": "https://minhaloja.natura.com/",
            "sec-ch-ua": '"Not)A;Brand";v="8", "Chromium";v="138", "Google Chrome";v="138"' , # Escaped quotes
            "sec-ch-ua-mobile": "?0",
            "sec-ch-ua-platform": '"Windows"' , # Escaped quotes
            "sec-fetch-dest": "empty",
            "sec-fetch-mode": "cors",
            "sec-fetch-site": "cross-site",
            "siteid": "CBBrazil",
            "tenantid": "brazil-natura",
            "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
        }
        payload = {"url": original_url}

        try:
            response = requests.post(api_url, headers=headers, json=payload)
            response.raise_for_status()  # Raise an exception for HTTP errors
            short_url_data = response.json()
            return short_url_data.get("short", original_url) # Return original_url if short not found
        except requests.exceptions.RequestException as e:
            print(f"Warning: Error generating short URL for {original_url}: {e}. Returning original URL.")
            return original_url
        except ValueError:
            print(f"Warning: Invalid JSON response from shortener API for {original_url}. Returning original URL.")
            return original_url