Spaces:
Running
Running
| from abc import ABC, abstractmethod | |
| from shortener_tool import ShortenerTool | |
| from advanced_scrape_tool import AdvancedScrapingTool | |
| from crewai_tools import ScrapeElementFromWebsiteTool | |
| class Merchant(): | |
| def __init__(self): | |
| pass | |
| def get_template(self, main_cupom, cupom_1, store = None) -> str: | |
| pass | |
| def keep_css_selectors(self) -> list[str]: | |
| return ['body'] | |
| def shorten_url(self, url: str) -> str: | |
| pass | |
| def get_scraper_tool(self): | |
| return ScrapeElementFromWebsiteTool() | |
| class NaturaMerchant(Merchant): | |
| def __init__(self, natura_api_token: str): | |
| super().__init__() | |
| self.shortener_tool = ShortenerTool(natura_api_token=natura_api_token) | |
| def get_scraper_tool(self): | |
| return AdvancedScrapingTool() | |
| def get_template(self, main_cupom, cupom_1, store = None) -> str: | |
| return f""" | |
| ###Template: | |
| {{Description}}. {{Title}} | |
| (ENTREGA FEITA PELA PRÓPRIA NATURA) | |
| Preço original: ~{{ORIGINAL PRICE}}~ | |
| *HOJE: {{CUPOM DISCOUNTED PRICE}} — {{TOTAL DISCOUNT PERCENTAGE}}% OFF* | |
| 🎟️ CUPOM: {main_cupom.upper()} {'ou ' + cupom_1.upper() if cupom_1.upper() else ''} | |
| 🛒 Compre aqui: {{short_url}} | |
| ⚠️ Faça login com o mesmo email e senha que já usa para comprar na Natura! | |
| ###End Template | |
| """ | |
| def keep_css_selectors(self) -> list[str]: | |
| return ['h1.text-2xl', '#product-price', '.pt-4'] | |
| def shorten_url(self, url: str) -> str: | |
| return self.shortener_tool.run(url) | |
| class MercadoLivreMerchant(Merchant): | |
| def get_template(self, main_cupom, cupom_1, store = None) -> str: | |
| return f""" | |
| ###Template: | |
| {{Description}}. {{Title}} | |
| (MERCADO LIVRE - {store.upper()} OFICIAL) | |
| Preço original: ~{{ORIGINAL PRICE}}~ | |
| *HOJE: {{CUPOM DISCOUNTED PRICE}} — {{TOTAL DISCOUNT PERCENTAGE}}% OFF* | |
| 🎟️ CUPOM: {main_cupom.upper()} | |
| 🛒 Compre aqui: {{short_url}} | |
| ⚠️ Selecione a loja oficial {store.upper()} | |
| ###End Template | |
| """ | |
| def keep_css_selectors(self) -> list[str]: | |
| return ['.rl-card-featured'] | |
| def shorten_url(self, url: str) -> str: | |
| return url |