from itertools import islice from ..utils import check_pkg class Duckduckgo: """ Duckduckgo API Retriever """ def __init__(self, query): check_pkg('duckduckgo_search') from duckduckgo_search import DDGS self.ddg = DDGS() self.query = query def search(self, max_results=5): """ Performs the search :param query: :param max_results: :return: """ try: search_response = self.ddg.text(self.query, region='wt-wt', max_results=max_results) except Exception as e: print(f"Error: {e}. Failed fetching sources. Resulting in empty response.") search_response = [] return search_response