File size: 1,916 Bytes
3c7d0f6
 
 
ffd6997
 
 
3c7d0f6
ffd6997
3c7d0f6
 
ffd6997
3c7d0f6
 
ffd6997
3c7d0f6
 
ffd6997
 
3c7d0f6
ffd6997
 
3c7d0f6
ffd6997
3c7d0f6
 
 
ffd6997
 
 
 
 
 
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
44
45
46
47
import os
import requests
from crewai.tools import BaseTool
from dotenv import load_dotenv

load_dotenv()

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

    def _run(self, original_url: str) -> str:
        api_url = "https://ncf-apigw.prd.naturacloud.com/url-shortener/links"
        headers = {
            "accept": "*/*",
            "accept-language": "pt-BR,pt;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
            "authorization": f"Bearer {self.natura_api_token}",
            "content-type": "application/json",
            "priority": "u=1, i",
            "sec-ch-ua": "\"Microsoft Edge\";v=\"141\", \"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"141\"",
            "sec-ch-ua-mobile": "?0",
            "sec-ch-ua-platform": "\"Windows\"",
            "sec-fetch-dest": "empty",
            "sec-fetch-mode": "cors",
            "sec-fetch-site": "cross-site",
            "x-api-key": f"{os.environ["NATURA_X_API_KEY"]}",
            "Referer": "https://www.minhaloja.natura.com/"
        }
        payload = {
            "url": original_url,
            "domain": 1
        }

        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