From 90a88c74c1ee895d16a682187475da514cd3dfe1 Mon Sep 17 00:00:00 2001 From: kevincaires Date: Sat, 3 Sep 2022 13:30:16 -0300 Subject: [PATCH] ADD filter for phrase method . --- utils/news_paper.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/utils/news_paper.py b/utils/news_paper.py index db6258b..a0c0297 100644 --- a/utils/news_paper.py +++ b/utils/news_paper.py @@ -10,16 +10,16 @@ class News: Get the information in IBGE API. """ _url = f'{GOOGLE_NEWS["url"]}top-headlines?'\ - f'sources={GOOGLE_NEWS["source"]}'\ + f'sources={",".join(GOOGLE_NEWS["sources"])}'\ f'&apiKey={GOOGLE_NEWS["token"]}' def __init__(self, quantity: int=5) -> None: """ Constructor. """ - self.quantity = quantity + self.quantity = int(quantity) - def _get_and_resolve_news(self) -> list: + def news(self) -> list: """ Get the information based in self.quantity attribute. """ @@ -32,8 +32,16 @@ class News: return content['articles'][:self.quantity] - def news(self) -> list: + def filter(self, phrase: str) -> list: """ - Get news in target based. + Filter content by keywords. """ - return self._get_and_resolve_news() + _url = f'{self._url}&q={phrase if phrase else ""}' + _response = requests.get(url=_url) + content, status = _response.json(), _response.status_code + + if not status == 200: + logger.error(content) + raise Exception(content) + + return content['articles'][:self.quantity]