import requests
from bs4 import BeautifulSoup

from transformers.agents import Tool


TEXT_DOWNLOAD_DESCRIPTION = (
    "This is a tool that downloads a file from a `url` and returns the text contained in the tile."
)


class TextDownloadTool(Tool):
    name = "text_downloader"
    inputs= {"url": {"type": "string", "description": "url to download file from"}}
    output_type= "string"
    description = TEXT_DOWNLOAD_DESCRIPTION

    def forward(self, url):
        return BeautifulSoup(requests.get(url).text, features="html.parser").get_text()